console : l'animation monte l'axe en avant à son cran
ci/woodpecker/push/woodpecker Pipeline was successful

Avant tout geste, l'axe mis en avant par la rotation monte à sa graduation
(numérique 0,75, économique 0,50, citoyenne 0,667) au lieu de 0,87-0,93 ;
les deux autres gardent leur dérive basse. L'animation et la main donnent
les mêmes niveaux, et un curseur figé au premier geste ne reste plus
au-dessus de son cran. Décision d'orch (03/11, 05h51), consignée dans
docs/consignes-yvv.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-11-03 05:56:29 +01:00
co-authored by Claude Opus 5.5
parent 03f763ab57
commit 64e714c1dd
2 changed files with 10 additions and 8 deletions
+7 -7
View File
@@ -134,8 +134,9 @@ const current = computed(() => props.axes.find(a => a.key === active.value) ?? p
// ── Motion ────────────────────────────────────────────────────────────── // ── Motion ──────────────────────────────────────────────────────────────
// Yvv's instructions, word for word: docs/consignes-yvv.md (29/09 and 03/11). // Yvv's instructions, word for word: docs/consignes-yvv.md (29/09 and 03/11).
// //
// Before any gesture (29/09): the cursors move on their own, slowly; each one // Before any gesture (29/09): the cursors move on their own, slowly; the low
// drifts, and every few beats another axis is pushed up towards émancipation. // ones drift, and every few beats another axis is pushed up to its own
// graduation (03/11), the level the hand gives it.
// SSR renders every cursor at the bottom, so the first move is the rise. // SSR renders every cursor at the bottom, so the first move is the rise.
// //
// The visitor's hand takes over for good (03/11): from the first hover, // The visitor's hand takes over for good (03/11): from the first hover,
@@ -166,13 +167,12 @@ let timer: ReturnType<typeof setInterval> | undefined
function place() { function place() {
props.axes.forEach((axis, i) => { props.axes.forEach((axis, i) => {
const isActive = axis.key === active.value // The axis put forward goes up to its own graduation, as under the hand
if (reduced.value) { if (axis.key === active.value) {
levels[axis.key] = isActive ? 0.94 : 0.3 levels[axis.key] = GRADUATION[axis.key] ?? 0.75
return return
} }
const wave = Math.sin(beat * 0.9 + i * 2.1) levels[axis.key] = reduced.value ? 0.3 : 0.3 + 0.14 * Math.sin(beat * 0.9 + i * 2.1)
levels[axis.key] = isActive ? 0.87 + 0.06 * wave : 0.3 + 0.14 * wave
}) })
} }
+3 -1
View File
@@ -43,6 +43,8 @@ Ce que fait le code :
- Le panneau de l'axe s'affiche au même geste. - Le panneau de l'axe s'affiche au même geste.
- Les autres curseurs ne bougent pas. Un curseur jamais touché reste là où il était. - Les autres curseurs ne bougent pas. Un curseur jamais touché reste là où il était.
- Un nouveau survol rejoue la montée. - Un nouveau survol rejoue la montée.
- Avant tout geste, l'animation du 29/09 est inchangée. - Avant tout geste, l'animation du 29/09 continue : la rotation et la dérive des curseurs bas. L'axe
mis en avant monte à son cran, et non plus vers 0,9. C'est une décision d'orch du 03/11 à 05h51, qui
découle de la graduation : l'animation et la main donnent les mêmes niveaux.
- Sous `prefers-reduced-motion`, il n'y a aucune transition, mais les crans sont les mêmes. - Sous `prefers-reduced-motion`, il n'y a aucune transition, mais les crans sont les mêmes.
- Un défilement au doigt qui part d'un curseur ne compte pas comme un survol. - Un défilement au doigt qui part d'un curseur ne compte pas comme un survol.