@zevra/ui 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -143,20 +143,25 @@ export type Animation =
143
143
  | 'dot-active'
144
144
  | 'progress'
145
145
 
146
- /** Les neuf animations du paquet, nommées. ⚠️ Elles sont pilotées AU
147
- * DÉFILEMENT et réservées à la vitrine : le chrome applicatif n'anime rien.
148
- * `prefers-reduced-motion` les coupe toutes, globalement, depuis base.css.
146
+ /** Les neuf animations du paquet, nommées — plus un dosage. ⚠️ Elles sont
147
+ * pilotées AU DÉFILEMENT et réservées à la vitrine : le chrome applicatif
148
+ * n'anime rien. `prefers-reduced-motion` les coupe toutes, globalement,
149
+ * depuis base.css.
149
150
  *
150
- * `option` échelonne les entrées d'une même rangée (`pop`, rangs 2 à 6) ou
151
+ * `option` échelonne les entrées d'une même rangée (`pop`, rangs 2 à 6),
151
152
  * donne le coin d'arrivée (`converge` : tr, bl, br — le défaut vient du
152
- * haut-gauche). Passée à une autre animation, elle est ignorée. */
153
+ * haut-gauche), ou DOSE l'entrée (`rise` + « doux » : douze pixels au
154
+ * lieu de trente-deux, pour les blocs des pages intérieures — la home
155
+ * garde l'entrée pleine). Passée à une autre animation, elle est
156
+ * ignorée. */
153
157
  export function anim(
154
158
  nom: Animation,
155
- option?: 2 | 3 | 4 | 5 | 6 | 'tr' | 'bl' | 'br',
159
+ option?: 2 | 3 | 4 | 5 | 6 | 'tr' | 'bl' | 'br' | 'doux',
156
160
  ): string {
157
161
  if (nom === 'pop' && typeof option === 'number') return `zv-anim-pop zv-anim-pop--${option}`
158
- if (nom === 'converge' && typeof option === 'string')
162
+ if (nom === 'converge' && (option === 'tr' || option === 'bl' || option === 'br'))
159
163
  return `zv-anim-converge zv-anim-converge--${option}`
164
+ if (nom === 'rise' && option === 'doux') return 'zv-anim-rise zv-anim-rise--doux'
160
165
  return `zv-anim-${nom}`
161
166
  }
162
167
 
package/src/motion.css CHANGED
@@ -2,7 +2,11 @@
2
2
  * Dépend de tokens.css. Relevé dans `maquettes/Motion.html`, qui les nomme
3
3
  * et fixe leurs plages de défilement.
4
4
  *
5
- * NEUF, PAS UNE DE PLUS. Les règles de la passation :
5
+ * NEUF, PAS UNE DE PLUS — plus un DOSAGE. La micro-entrée des blocs
6
+ * (.zv-anim-rise--doux, arbitrée le 25/08/2026, DECISIONS.md) n'est pas un
7
+ * dixième mouvement : c'est zv-rise à douze pixels, pour les pages
8
+ * intérieures où l'entrée pleine de la home lasserait à la longue.
9
+ * Les règles de la passation :
6
10
  * · un seul type de mouvement par scène, plus le flottement continu ;
7
11
  * · les entrées se font toujours vers le HAUT, jamais latéralement ;
8
12
  * · aucun mouvement sur la typographie une fois posée ;
@@ -85,6 +89,24 @@
85
89
  animation-range: contain 10% contain 45%;
86
90
  }
87
91
 
92
+ /* 3 bis · Le même mouvement, DOSÉ pour les blocs des pages intérieures :
93
+ * douze pixels au lieu de trente-deux, une plage plus courte — le
94
+ * bloc est posé avant que l'œil ait fini d'arriver, et une visite
95
+ * répétée ne le remarque plus. Se pose AVEC zv-anim-rise, dont il ne
96
+ * change que l'amplitude et la plage. La home garde l'entrée
97
+ * pleine : c'est elle la signature, le doux est le quotidien. */
98
+ @keyframes zv-rise-doux {
99
+ from {
100
+ opacity: 0;
101
+ transform: translateY(12px);
102
+ }
103
+ }
104
+
105
+ .zv-anim-rise--doux {
106
+ animation-name: zv-rise-doux;
107
+ animation-range: contain 5% contain 30%;
108
+ }
109
+
88
110
  /* 4 · Entrée des glyphes produit dans leur scène : montée et grossissement. */
89
111
  @keyframes zv-glyph-in {
90
112
  from {