From 03f763ab57c042a721246abb86f526f17a2da93d Mon Sep 17 00:00:00 2001 From: Yvv Date: Tue, 3 Nov 2026 05:42:32 +0100 Subject: [PATCH] =?UTF-8?q?console=20:=20graduation=20d'Yvv,=20la=20mont?= =?UTF-8?q?=C3=A9e=20se=20rejoue=20=C3=A0=20chaque=20survol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Consigne d'Yvv du 03/11, mot pour mot dans docs/consignes-yvv.md (avec celles du 29/09) : « Au rollover, numérique monte à 3/4, économie monte à 1/2, citoyenne monte à 2/3. Les curseurs restent. Si on rollover à nouveau ils refont leur montée. Et le pavé correspondant s'affiche bien sûr au même rollover. » - survol à la souris, focus au clavier ou tap : le curseur repart d'en bas et monte en 1,1 s à son cran (0,75 / 0,50 / 0,667), puis il y reste ; le panneau de l'axe s'affiche au même geste (aria-selected et tabindex suivent) - au premier geste, la rotation s'arrête pour de bon ; les autres curseurs restent là où ils sont dessinés, jamais survolés compris - un défilement au doigt parti d'un curseur ne compte plus comme survol - flèches du clavier : la montée part avec sa transition rapide - remplace les choix d'interprétation de 230f79a (curseurs poussés en haut, rotation qui reprend, panneau au clic seulement) - avant tout geste, l'animation du 29/09 est inchangée ; sous prefers-reduced-motion, mêmes crans sans transition Co-Authored-By: Claude Opus 5.5 --- app/components/home/HomeConsole.vue | 188 +++++++++++++++++----------- docs/consignes-yvv.md | 48 +++++++ 2 files changed, 163 insertions(+), 73 deletions(-) create mode 100644 docs/consignes-yvv.md diff --git a/app/components/home/HomeConsole.vue b/app/components/home/HomeConsole.vue index 8004d73..2429c52 100644 --- a/app/components/home/HomeConsole.vue +++ b/app/components/home/HomeConsole.vue @@ -2,10 +2,10 @@
@@ -30,17 +30,17 @@ type="button" role="tab" class="fader" - :class="{ 'fader--active': axis.key === active, 'fader--lifting': axis.key === hot }" + :class="{ 'fader--active': axis.key === active, 'fader--rising': rising.has(axis.key) }" :style="{ '--hue': `var(${axis.hue})`, '--level': levels[axis.key] ?? 0, '--i': i }" :data-axis="axis.key" :aria-selected="axis.key === active" :aria-controls="`panel-${uid}`" :tabindex="axis.key === active ? 0 : -1" - @click="choose(axis.key)" - @pointerenter="hoverKey = axis.key; lift(axis.key)" + @pointerdown="lastPointer = $event.pointerType" + @pointerenter="onEnter($event, axis.key)" @pointerleave="hoverKey = null" - @focus="focusKey = axis.key; lift(axis.key)" - @blur="focusKey = null" + @focus="onFocus($event, axis.key)" + @click="onClick($event, axis.key)" >