Variables - Le clic sur un chip de variable insère désormais au curseur du dernier champ focus (sujet OU corps), pas seulement dans le corps. On capture la position via onSelect/onClick/onKeyUp/onBlur et on utilise mousedown + preventDefault sur les chips pour que le focus ne quitte pas le champ ciblé avant l'insertion. Le label sous les chips indique en live quel champ est ciblé. - OffsetInput (étape Cadence) : composant string-controlled qui accepte les états intermédiaires "" et "-" pour ne plus avoir le 0 fantôme quand on efface pour ressaisir un offset négatif. Mobile - Bottom nav (Annuler/Continuer) sticky en bas sur mobile, en flux normal sur desktop. Safe-area inset respectée. - Header du wizard : back button compact (icône seule sous sm), compteur d'étape toujours visible, stepper centré. - Card padding adaptatif (p-5 sm:p-7 lg:p-9). - Step 3 — sélecteur d'étape : scroll horizontal sur mobile (au lieu de wrap), évite l'effet escalier avec 5 étapes. - Step 3 — body textarea : min-h adaptatif (180px mobile, 260px sm+). - CadenceTimeline : rail horizontal masqué sous lg ; en mobile, ligne verticale fine entre les nœuds (cohérent identité ◆) ; bouton retirer visible en permanence sur mobile (les hover-only ne marchent pas tactile). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
Rubis Sur l'Ongle — landing page + futur SaaS
Languages
TypeScript
95.1%
Astro
3.8%
JavaScript
0.7%
CSS
0.2%