@starterlib/tokens 0.8.0 → 0.9.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.
@@ -2,19 +2,26 @@
2
2
  Regenerer : pnpm tokens:css */
3
3
 
4
4
  /* Reglages de composant, a poser par l'application la ou elle veut :
5
- --st-commande-hauteur (defaut : var(--st-cible-tactile-min))
5
+ --st-commande-hauteur (defaut : var(--st-hauteur-commande-defaut))
6
6
  --st-commande-rayon (defaut : var(--st-rayon-md))
7
7
  --st-surface-rayon (defaut : var(--st-rayon-md))
8
- --st-tableau-cellule-bloc (defaut : var(--st-espacement-3))
9
- --st-tableau-cellule-ligne (defaut : var(--st-espacement-3))
10
- --st-tableau-largeur-case (defaut : 3rem)
11
- --st-calendrier-jour-taille (defaut : var(--st-cible-tactile-min))
12
- --st-anim-chargement (defaut : une duree propre a chaque indicateur)
13
- --st-anim-respiration (defaut : 1600ms)
8
+ --st-carte-rayon (defaut : var(--st-rayon-lg))
9
+ --st-tableau-cellule-bloc (defaut : var(--st-espacement-0))
10
+ --st-tableau-cellule-ligne (defaut : calc(var(--st-densite-cellule-ligne) + var(--st-espacement-1)))
11
+ --st-tableau-largeur-case (defaut : var(--st-espacement-12))
12
+ --st-calendrier-jour-taille (defaut : var(--st-calendrier-jour-defaut))
13
+ --st-anim-chargement (defaut : var(--st-cadence-vive) ou var(--st-cadence-normale))
14
+ --st-anim-respiration (defaut : var(--st-cadence-respiration))
15
+ --st-coquille-largeur-navigation (defaut : var(--st-largeur-navigation))
16
+ --st-separateur-marge (defaut : var(--st-espacement-4))
17
+ --st-champ-largeur-libelle (defaut : var(--st-largeur-champ-md))
18
+ --st-liste-hauteur-max (defaut : 18rem)
14
19
  Voir le README de @starterlib/tokens. */
15
20
 
16
21
  :root {
17
22
  color-scheme: light;
23
+ --st-affichage-si-clair: inline;
24
+ --st-affichage-si-sombre: none;
18
25
  --st-espacement-0: 0;
19
26
  --st-espacement-1: 0.25rem;
20
27
  --st-espacement-2: 0.5rem;
@@ -28,6 +35,10 @@
28
35
  --st-espacement-16: 4rem;
29
36
  --st-espacement-20: 5rem;
30
37
  --st-espacement-24: 6rem;
38
+ --st-espacement-demi: 0.125rem;
39
+ --st-espacement-1-5: 0.375rem;
40
+ --st-espacement-2-5: 0.625rem;
41
+ --st-espacement-3-5: 0.875rem;
31
42
  --st-rayon-none: 0;
32
43
  --st-rayon-xs: 0.125rem;
33
44
  --st-rayon-sm: 0.25rem;
@@ -35,165 +46,298 @@
35
46
  --st-rayon-lg: 0.75rem;
36
47
  --st-rayon-xl: 1rem;
37
48
  --st-rayon-pleine: 9999px;
38
- --st-ombre-none: none;
39
- --st-ombre-sm: 0 1px 2px 0 rgb(0 0 0 / 0.06);
40
- --st-ombre-md: 0 2px 6px -1px rgb(0 0 0 / 0.10), 0 1px 3px -1px rgb(0 0 0 / 0.06);
41
- --st-ombre-lg: 0 8px 20px -4px rgb(0 0 0 / 0.12), 0 3px 8px -3px rgb(0 0 0 / 0.07);
42
- --st-ombre-xl: 0 20px 40px -8px rgb(0 0 0 / 0.16);
43
49
  --st-duree-instantane: 0ms;
44
50
  --st-duree-rapide: 120ms;
45
51
  --st-duree-normale: 200ms;
46
52
  --st-duree-lente: 320ms;
53
+ --st-duree-longue: 480ms;
47
54
  --st-courbe-standard: cubic-bezier(0.2, 0, 0, 1);
48
55
  --st-courbe-entrant: cubic-bezier(0, 0, 0, 1);
49
56
  --st-courbe-sortant: cubic-bezier(0.3, 0, 1, 1);
57
+ --st-deplacement-court: 0.25rem;
58
+ --st-deplacement-moyen: 0.5rem;
59
+ --st-deplacement-long: 1rem;
60
+ --st-cadence-vive: 900ms;
61
+ --st-cadence-normale: 1400ms;
62
+ --st-cadence-respiration: 1600ms;
63
+ --st-cadence-min: 600ms;
50
64
  --st-plan-base: 0;
51
- --st-plan-contenuEleve: 10;
65
+ --st-plan-contenu-eleve: 10;
52
66
  --st-plan-entete: 100;
53
- --st-plan-tiroir: 200;
54
67
  --st-plan-superposition: 300;
55
- --st-plan-dialogue: 400;
56
- --st-plan-infobulle: 500;
57
68
  --st-plan-notification: 600;
58
- --st-rupture-sm: 480px;
59
- --st-rupture-md: 768px;
60
- --st-rupture-lg: 1024px;
61
- --st-rupture-xl: 1280px;
62
- --st-rupture-2xl: 1536px;
63
- --st-police-base: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
64
- --st-police-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
69
+ --st-plan-evitement: 700;
70
+ --st-police-base: 'Inter Variable', 'Inter Repli', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
71
+ --st-police-mono: 'JetBrains Mono Variable', 'JetBrains Mono Repli', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
72
+ --st-taille-2xs: 0.6875rem;
65
73
  --st-taille-xs: 0.75rem;
66
74
  --st-taille-sm: 0.875rem;
67
75
  --st-taille-md: 1rem;
68
76
  --st-taille-lg: 1.125rem;
69
77
  --st-taille-xl: 1.25rem;
70
78
  --st-taille-2xl: 1.5rem;
71
- --st-taille-3xl: 1.875rem;
72
- --st-taille-4xl: 2.25rem;
79
+ --st-taille-3xl: 2rem;
80
+ --st-taille-4xl: 2.5rem;
81
+ --st-taille-5xl: 3rem;
82
+ --st-taille-6xl: 3.5rem;
83
+ --st-interligne-2xs: 0.875rem;
84
+ --st-interligne-xs: 1rem;
85
+ --st-interligne-sm: 1.25rem;
86
+ --st-interligne-md: 1.5rem;
87
+ --st-interligne-lg: 1.75rem;
88
+ --st-interligne-xl: 1.75rem;
89
+ --st-interligne-2xl: 2rem;
90
+ --st-interligne-3xl: 2.5rem;
91
+ --st-interligne-4xl: 3rem;
92
+ --st-interligne-5xl: 3.5rem;
93
+ --st-interligne-6xl: 4rem;
73
94
  --st-graisse-normale: 400;
74
95
  --st-graisse-moyenne: 500;
75
96
  --st-graisse-semi: 600;
76
97
  --st-graisse-grasse: 700;
77
- --st-interligne-serre: 1.25;
78
- --st-interligne-normal: 1.5;
79
- --st-interligne-large: 1.75;
98
+ --st-interlettrage-serre: -0.01em;
99
+ --st-interlettrage-normal: normal;
100
+ --st-interlettrage-large: 0.02em;
101
+ --st-interlettrage-capitales: 0.05em;
102
+ --st-interlettrage-etiquette: 0.04em;
103
+ --st-interlettrage-surtitre: 0.1em;
104
+ --st-approche-lg: -0.005em;
105
+ --st-approche-xl: -0.01em;
106
+ --st-approche-2xl: -0.015em;
107
+ --st-approche-3xl: -0.02em;
108
+ --st-approche-4xl: -0.025em;
109
+ --st-approche-6xl: -0.03em;
110
+ --st-chiffres-alignes: tabular-nums lining-nums;
111
+ --st-chiffres-references: tabular-nums lining-nums slashed-zero;
80
112
  --st-epaisseur-fine: 1px;
113
+ --st-epaisseur-intermediaire: 1.5px;
81
114
  --st-epaisseur-moyenne: 2px;
82
115
  --st-epaisseur-forte: 3px;
83
- --st-mesure-etroite: 45ch;
84
- --st-mesure-normale: 70ch;
116
+ --st-epaisseur-epaisse: 4px;
117
+ --st-epaisseur-capillaire: 1px;
118
+ --st-largeur-etroite: 45ch;
119
+ --st-largeur-normale: 70ch;
120
+ --st-largeur-page: 90rem;
121
+ --st-largeur-navigation: 16rem;
122
+ --st-largeur-rail: 4.5rem;
123
+ --st-largeur-carte-auth: 28.125rem;
124
+ --st-largeur-dialogue-sm: 24rem;
125
+ --st-largeur-dialogue-md: 32rem;
126
+ --st-largeur-dialogue-lg: 48rem;
127
+ --st-largeur-tiroir: 28rem;
128
+ --st-largeur-menu: 12rem;
129
+ --st-largeur-couche: 28rem;
130
+ --st-largeur-champ-sm: 8rem;
131
+ --st-largeur-champ-md: 12rem;
132
+ --st-largeur-champ-lg: 16rem;
133
+ --st-largeur-colonne: 18rem;
134
+ --st-hauteur-commande-sm: 2rem;
135
+ --st-hauteur-commande-md: 2.25rem;
136
+ --st-hauteur-commande-lg: 2.5rem;
137
+ --st-hauteur-commande-xl: 2.75rem;
138
+ --st-hauteur-commande-2xl: 3.25rem;
139
+ --st-focus-epaisseur: var(--st-epaisseur-moyenne);
140
+ --st-focus-decalage: var(--st-epaisseur-moyenne);
141
+ --st-focus-lisere: var(--st-epaisseur-moyenne);
85
142
  --st-cible-tactile-min: 44px;
86
143
  --st-cible-min: 24px;
87
- --st-couleur-fond: #f7f8fa;
88
- --st-couleur-surface: #ffffff;
89
- --st-couleur-surface-elevee: #ffffff;
90
- --st-couleur-surface-enfoncee: #eef1f5;
91
- --st-couleur-surface-survol: #eef1f5;
92
- --st-couleur-texte: #141920;
93
- --st-couleur-texte-discret: #4d5868;
94
- --st-couleur-texte-desactive: #94a1b2;
95
- --st-couleur-texte-inverse: #ffffff;
96
- --st-couleur-bordure: #dde2e9;
97
- --st-couleur-bordure-forte: #6b7889;
98
- --st-couleur-anneau-focus: #255eeb;
99
- --st-couleur-primaire: #1d4ed8;
100
- --st-couleur-primaire-survol: #1e40af;
101
- --st-couleur-sur-primaire: #ffffff;
102
- --st-couleur-primaire-discret: #eff5ff;
103
- --st-couleur-sur-primaire-discret: #1e3a8a;
104
- --st-couleur-succes: #15803d;
105
- --st-couleur-sur-succes: #ffffff;
106
- --st-couleur-succes-discret: #d7f5e3;
107
- --st-couleur-sur-succes-discret: #0a3d1e;
108
- --st-couleur-avertissement: #a16207;
109
- --st-couleur-sur-avertissement: #ffffff;
110
- --st-couleur-avertissement-discret: #fdf0d5;
111
- --st-couleur-sur-avertissement-discret: #432a06;
112
- --st-couleur-danger: #b91c1c;
113
- --st-couleur-danger-survol: #991b1b;
114
- --st-couleur-sur-danger: #ffffff;
115
- --st-couleur-danger-discret: #fde2e2;
116
- --st-couleur-sur-danger-discret: #4c1010;
117
- }
118
-
119
- :root[data-theme='sombre'] {
120
- color-scheme: dark;
121
- --st-couleur-fond: #0b0e13;
122
- --st-couleur-surface: #141920;
123
- --st-couleur-surface-elevee: #232a34;
124
- --st-couleur-surface-enfoncee: #0b0e13;
125
- --st-couleur-surface-survol: #232a34;
126
- --st-couleur-texte: #eef1f5;
127
- --st-couleur-texte-discret: #c3ccd7;
128
- --st-couleur-texte-desactive: #6b7889;
129
- --st-couleur-texte-inverse: #0b0e13;
130
- --st-couleur-bordure: #39414e;
131
- --st-couleur-bordure-forte: #6b7889;
132
- --st-couleur-anneau-focus: #93bbfd;
133
- --st-couleur-primaire: #93bbfd;
134
- --st-couleur-primaire-survol: #bfd6fe;
135
- --st-couleur-sur-primaire: #0b0e13;
136
- --st-couleur-primaire-discret: #1e3a8a;
137
- --st-couleur-sur-primaire-discret: #dbe8fe;
138
- --st-couleur-succes: #7fd6a4;
139
- --st-couleur-sur-succes: #0b0e13;
140
- --st-couleur-succes-discret: #0a3d1e;
141
- --st-couleur-sur-succes-discret: #d7f5e3;
142
- --st-couleur-avertissement: #f3c969;
143
- --st-couleur-sur-avertissement: #0b0e13;
144
- --st-couleur-avertissement-discret: #432a06;
145
- --st-couleur-sur-avertissement-discret: #fdf0d5;
146
- --st-couleur-danger: #f3a3a3;
147
- --st-couleur-danger-survol: #fde2e2;
148
- --st-couleur-sur-danger: #0b0e13;
149
- --st-couleur-danger-discret: #4c1010;
150
- --st-couleur-sur-danger-discret: #fde2e2;
144
+ --st-couleur-fond: light-dark(#f8f9ff, #070d14);
145
+ --st-couleur-surface: light-dark(#ffffff, #151b23);
146
+ --st-couleur-surface-elevee: light-dark(#ffffff, #2b3139);
147
+ --st-couleur-surface-enfoncee: light-dark(#e9eefa, #070d14);
148
+ --st-couleur-surface-conteneur-bas: light-dark(#eff4ff, #0e141c);
149
+ --st-couleur-surface-conteneur-haut: light-dark(#e3e8f4, #323941);
150
+ --st-couleur-surface-survol: light-dark(#e9eefa, #2b3139);
151
+ --st-couleur-surface-survol-elevee: light-dark(#e9eefa, #383f49);
152
+ --st-couleur-surface-courante-elevee: light-dark(#e9eefa, #4f565e);
153
+ --st-couleur-surface-active: light-dark(#dde3ee, #424851);
154
+ --st-couleur-surface-selection: light-dark(#f0f5fe, #08245b);
155
+ --st-couleur-surface-inverse: light-dark(#161c24, #f2f4f6);
156
+ --st-couleur-surface-marque: light-dark(#041434, #151b23);
157
+ --st-couleur-texte: light-dark(#161c24, #f2f4f6);
158
+ --st-couleur-texte-discret: light-dark(#434652, #bdc1c7);
159
+ --st-couleur-texte-attenue: light-dark(#656874, #9da2a8);
160
+ --st-couleur-texte-desactive: light-dark(#9da2a8, #7e848b);
161
+ --st-couleur-texte-inverse: light-dark(#ffffff, #070d14);
162
+ --st-couleur-texte-primaire: light-dark(#003181, #9ebef8);
163
+ --st-couleur-texte-sur-marque: light-dark(#ffffff, #f2f4f6);
164
+ --st-couleur-texte-sur-marque-discret: light-dark(#c5d8fb, #bdc1c7);
165
+ --st-couleur-bordure: light-dark(#d7dadf, #4f565e);
166
+ --st-couleur-bordure-forte: #7e848b;
167
+ --st-couleur-bordure-selection: light-dark(#1948a5, #9ebef8);
168
+ --st-couleur-anneau-focus: light-dark(#235bc8, #c5d8fb);
169
+ --st-couleur-lisere-focus: light-dark(#ffffff, #151b23);
170
+ --st-couleur-selection: light-dark(#c5d8fb, #113781);
171
+ --st-couleur-sur-selection: light-dark(#070d14, #ffffff);
172
+ --st-couleur-primaire: light-dark(#003181, #9ebef8);
173
+ --st-couleur-primaire-survol: light-dark(#1948a5, #c5d8fb);
174
+ --st-couleur-primaire-actif: light-dark(#08245b, #e0eafc);
175
+ --st-couleur-sur-primaire: light-dark(#ffffff, #070d14);
176
+ --st-couleur-primaire-discret: light-dark(#f0f5fe, #08245b);
177
+ --st-couleur-sur-primaire-discret: light-dark(#08245b, #e0eafc);
178
+ --st-couleur-primaire-attenue: light-dark(#dae2ff, #113781);
179
+ --st-couleur-sur-primaire-attenue: light-dark(#001848, #e0eafc);
180
+ --st-couleur-accent: light-dark(#7d5e0d, #ccbc9a);
181
+ --st-couleur-accent-survol: light-dark(#654b04, #e0d6c3);
182
+ --st-couleur-sur-accent: light-dark(#ffffff, #070d14);
183
+ --st-couleur-accent-discret: light-dark(#eee9df, #362600);
184
+ --st-couleur-sur-accent-discret: light-dark(#362600, #eee9df);
185
+ --st-couleur-information: light-dark(#156c90, #a0c4d7);
186
+ --st-couleur-sur-information: light-dark(#ffffff, #070d14);
187
+ --st-couleur-information-discret: light-dark(#f1f6f9, #022d3f);
188
+ --st-couleur-sur-information-discret: light-dark(#022d3f, #e1ebf2);
189
+ --st-couleur-succes: light-dark(#12773d, #a0caaa);
190
+ --st-couleur-sur-succes: light-dark(#ffffff, #070d14);
191
+ --st-couleur-succes-discret: light-dark(#f1f7f2, #013316);
192
+ --st-couleur-sur-succes-discret: light-dark(#013316, #e1ede3);
193
+ --st-couleur-avertissement: light-dark(#995515, #dbb59a);
194
+ --st-couleur-sur-avertissement: light-dark(#ffffff, #070d14);
195
+ --st-couleur-avertissement-discret: light-dark(#f9f4f0, #401f00);
196
+ --st-couleur-sur-avertissement-discret: light-dark(#401f00, #f3e7df);
197
+ --st-couleur-danger: light-dark(#b71824, #f5a69f);
198
+ --st-couleur-danger-survol: light-dark(#960c19, #facac5);
199
+ --st-couleur-danger-actif: light-dark(#760711, #fce3e0);
200
+ --st-couleur-sur-danger: light-dark(#ffffff, #070d14);
201
+ --st-couleur-danger-discret: light-dark(#fef2f1, #530208);
202
+ --st-couleur-sur-danger-discret: light-dark(#530208, #fce3e0);
203
+ --st-couleur-danger-discret-courant: light-dark(#fce3e0, #300304);
204
+ --st-couleur-positif: light-dark(#005a2b, #a0caaa);
205
+ --st-couleur-negatif: light-dark(#161c24, #f2f4f6);
206
+ --st-ombre-none: none;
207
+ --st-ombre-repos: 0 1px 2px 0 rgb(0 0 0 / 0.05);
208
+ --st-ombre-survol: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
209
+ --st-ombre-surelevee: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
210
+ --st-ombre-flottante: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
211
+ --st-ombre-modale: 0 16px 32px -8px light-dark(rgb(7 13 20 / 0.14), rgb(0 0 0 / 0.48)), 0 32px 64px -16px light-dark(rgb(7 13 20 / 0.2), rgb(0 0 0 / 0.56));
212
+ --st-voile: light-dark(rgb(7 13 20 / 0.48), rgb(0 0 0 / 0.64));
213
+ --st-couleur-ombre: light-dark(rgb(0 0 0 / 0.2), rgb(0 0 0 / 0.6));
214
+ --st-hauteur-commande-defaut: var(--st-hauteur-commande-xl);
215
+ --st-densite-cellule-bloc: var(--st-espacement-3);
216
+ --st-densite-cellule-ligne: var(--st-espacement-3);
217
+ --st-densite-texte-taille: var(--st-taille-md);
218
+ --st-densite-texte-interligne: var(--st-interligne-md);
219
+ --st-densite-ligne: var(--st-hauteur-commande-2xl);
220
+ --st-calendrier-jour-defaut: var(--st-hauteur-commande-xl);
151
221
  }
152
222
 
223
+ /* Theme : la preference du systeme, puis l'attribut, qui l'emporte dans les deux
224
+ sens. Sur la racine comme sur un conteneur : un ilot [data-theme] rend ses
225
+ descendants dans son theme. */
153
226
  @media (prefers-color-scheme: dark) {
154
- :root:not([data-theme='clair']) {
227
+ :root {
155
228
  color-scheme: dark;
156
- --st-couleur-fond: #0b0e13;
157
- --st-couleur-surface: #141920;
158
- --st-couleur-surface-elevee: #232a34;
159
- --st-couleur-surface-enfoncee: #0b0e13;
160
- --st-couleur-surface-survol: #232a34;
161
- --st-couleur-texte: #eef1f5;
162
- --st-couleur-texte-discret: #c3ccd7;
163
- --st-couleur-texte-desactive: #6b7889;
164
- --st-couleur-texte-inverse: #0b0e13;
165
- --st-couleur-bordure: #39414e;
166
- --st-couleur-bordure-forte: #6b7889;
167
- --st-couleur-anneau-focus: #93bbfd;
168
- --st-couleur-primaire: #93bbfd;
169
- --st-couleur-primaire-survol: #bfd6fe;
170
- --st-couleur-sur-primaire: #0b0e13;
171
- --st-couleur-primaire-discret: #1e3a8a;
172
- --st-couleur-sur-primaire-discret: #dbe8fe;
173
- --st-couleur-succes: #7fd6a4;
174
- --st-couleur-sur-succes: #0b0e13;
175
- --st-couleur-succes-discret: #0a3d1e;
176
- --st-couleur-sur-succes-discret: #d7f5e3;
177
- --st-couleur-avertissement: #f3c969;
178
- --st-couleur-sur-avertissement: #0b0e13;
179
- --st-couleur-avertissement-discret: #432a06;
180
- --st-couleur-sur-avertissement-discret: #fdf0d5;
181
- --st-couleur-danger: #f3a3a3;
182
- --st-couleur-danger-survol: #fde2e2;
183
- --st-couleur-sur-danger: #0b0e13;
184
- --st-couleur-danger-discret: #4c1010;
185
- --st-couleur-sur-danger-discret: #fde2e2;
229
+ --st-affichage-si-clair: none;
230
+ --st-affichage-si-sombre: inline;
186
231
  }
187
232
  }
188
233
 
189
- @media (prefers-reduced-motion: reduce) {
234
+ [data-theme='sombre'] {
235
+ color-scheme: dark;
236
+ --st-affichage-si-clair: none;
237
+ --st-affichage-si-sombre: inline;
238
+ }
239
+
240
+ [data-theme='clair'] {
241
+ color-scheme: light;
242
+ --st-affichage-si-clair: inline;
243
+ --st-affichage-si-sombre: none;
244
+ }
245
+
246
+ /* Un ilot re-pose la couleur du texte : `color` s'herite RESOLUE, et le texte d'un
247
+ ilot sombre heriterait sinon l'encre claire de la page. */
248
+ :where([data-theme]):not(:root) {
249
+ color: var(--st-couleur-texte);
250
+ }
251
+
252
+ ::selection {
253
+ color: var(--st-couleur-sur-selection);
254
+ background: var(--st-couleur-selection);
255
+ }
256
+
257
+ /* Densite : un MODE, sur la racine ou sur une zone. Aucune densite ne descend
258
+ sous la cible tactile sur un ecran tactile. */
259
+ [data-densite='confortable'] {
260
+ --st-hauteur-commande-defaut: var(--st-hauteur-commande-xl);
261
+ --st-densite-cellule-bloc: var(--st-espacement-3);
262
+ --st-densite-cellule-ligne: var(--st-espacement-3);
263
+ --st-densite-texte-taille: var(--st-taille-md);
264
+ --st-densite-texte-interligne: var(--st-interligne-md);
265
+ --st-densite-ligne: var(--st-hauteur-commande-2xl);
266
+ --st-calendrier-jour-defaut: var(--st-hauteur-commande-xl);
267
+ }
268
+
269
+ [data-densite='dense'] {
270
+ --st-hauteur-commande-defaut: var(--st-hauteur-commande-md);
271
+ --st-densite-cellule-bloc: var(--st-espacement-2);
272
+ --st-densite-cellule-ligne: var(--st-espacement-3);
273
+ --st-densite-texte-taille: var(--st-taille-sm);
274
+ --st-densite-texte-interligne: var(--st-interligne-sm);
275
+ --st-densite-ligne: var(--st-hauteur-commande-xl);
276
+ --st-calendrier-jour-defaut: var(--st-hauteur-commande-md);
277
+ }
278
+
279
+ [data-densite='compacte'] {
280
+ --st-hauteur-commande-defaut: var(--st-hauteur-commande-sm);
281
+ --st-densite-cellule-bloc: var(--st-espacement-1);
282
+ --st-densite-cellule-ligne: var(--st-espacement-2);
283
+ --st-densite-texte-taille: var(--st-taille-xs);
284
+ --st-densite-texte-interligne: var(--st-interligne-xs);
285
+ --st-densite-ligne: var(--st-hauteur-commande-md);
286
+ --st-calendrier-jour-defaut: var(--st-hauteur-commande-sm);
287
+ }
288
+
289
+ @media (pointer: coarse) {
290
+ :root,
291
+ [data-densite] {
292
+ --st-hauteur-commande-defaut: var(--st-hauteur-commande-xl);
293
+ --st-calendrier-jour-defaut: var(--st-cible-tactile-min);
294
+ }
295
+ }
296
+
297
+ /* Un filet d'un vrai pixel d'ecran sur les dalles haute densite. */
298
+ @media (min-resolution: 2dppx) {
190
299
  :root {
300
+ --st-epaisseur-capillaire: 0.5px;
301
+ }
302
+ }
303
+
304
+ /* Mouvement reduit (01 §6, 03 P5) : la preference du systeme, sauf quand la
305
+ personne a choisi le mouvement complet (data-mouvement sur <html>, pose par
306
+ StMouvement) ; puis l'attribut, qui l'impose — sur la racine ou sur une zone.
307
+ Durees et deplacements a zero ; les cadences restent, un indicateur d'attente
308
+ ne se fige jamais. `:where(:root)` : la regle pese (0,1,0), comme les autres. */
309
+ @media (prefers-reduced-motion: reduce) {
310
+ :where(:root):not([data-mouvement='complet']) {
191
311
  --st-duree-rapide: 0ms;
192
312
  --st-duree-normale: 0ms;
193
313
  --st-duree-lente: 0ms;
314
+ --st-duree-longue: 0ms;
315
+ --st-deplacement-court: 0rem;
316
+ --st-deplacement-moyen: 0rem;
317
+ --st-deplacement-long: 0rem;
194
318
  }
195
319
  }
196
320
 
321
+ [data-mouvement='reduit'] {
322
+ --st-duree-rapide: 0ms;
323
+ --st-duree-normale: 0ms;
324
+ --st-duree-lente: 0ms;
325
+ --st-duree-longue: 0ms;
326
+ --st-deplacement-court: 0rem;
327
+ --st-deplacement-moyen: 0rem;
328
+ --st-deplacement-long: 0rem;
329
+ }
330
+
331
+ /* Gel d'une image : au changement de theme ou de langue, rien ne transite le temps
332
+ d'un rendu (StTheme et StLangue posent data-gel sur <html>). Place apres le
333
+ mouvement : un mouvement complet choisi ne leve pas le gel. */
334
+ [data-gel] {
335
+ --st-duree-rapide: 0ms;
336
+ --st-duree-normale: 0ms;
337
+ --st-duree-lente: 0ms;
338
+ --st-duree-longue: 0ms;
339
+ }
340
+
197
341
  /* WCAG 2.4.11 : un arret de tabulation ne remonte jamais sous l'en-tete collant.
198
342
  `--st-hauteur-entete` est posee sur <html> par st-app-shell, qui mesure
199
343
  son en-tete ; sans coquille, le repli vaut zero et rien ne change. */
@@ -201,52 +345,200 @@ html {
201
345
  scroll-padding-block-start: var(--st-hauteur-entete, 0px);
202
346
  }
203
347
 
204
- /* Contraste renforce : le filet decoratif devient un filet fort, et le texte
205
- discret redevient du texte. Les deux jetons restent des ALIAS du theme
206
- courant, clair ou sombre. */
348
+ /* Rythme vertical d'un formulaire, porte par le CONTENEUR (lot 200) : les champs du
349
+ socle n'ont plus de marge externe, pour qu'un champ pose dans une ligne de
350
+ reglage ou un popover ne traine pas 20 px qu'il n'a pas choisis. */
351
+ .st-formulaire {
352
+ display: grid;
353
+ gap: var(--st-espacement-5);
354
+ }
355
+
356
+ /* Texte pour les seuls lecteurs d'ecran (« , 5 non lus » d'un lien de navigation) : la classe
357
+ est PUBLIEE ici, dans la feuille que l'hote charge deja. Emise dans la portee emulee de chaque
358
+ composant, elle n'atteignait jamais un element ecrit dans le gabarit de l'APPELANT, dont le
359
+ texte s'affichait en clair (constats A1099, A1082, lot 156). `.st-vh-focalisable` : masquee
360
+ tant qu'elle ne contient pas le focus (un lien d'evitement) ; `:where()` garde le poids d'une
361
+ classe, comme toute la feuille. */
362
+ .st-vh,
363
+ .st-vh-focalisable:where(:not(:focus-within)) {
364
+ position: absolute;
365
+ width: 1px;
366
+ height: 1px;
367
+ padding: 0;
368
+ margin: -1px;
369
+ overflow: hidden;
370
+ clip-path: inset(50%);
371
+ white-space: nowrap;
372
+ border: 0;
373
+ }
374
+
375
+ /* Contrat avec le CDK : ses surfaces (menus, popovers, infobulles, tiroirs,
376
+ dialogues) s'empilent par l'ordre du DOM dans ce conteneur, qui lit le plan. */
377
+ .cdk-overlay-container {
378
+ z-index: var(--st-plan-superposition);
379
+ }
380
+
381
+ /* Contraste renforce : alias du theme courant, clair ou sombre (01 §7.1). */
207
382
  @media (prefers-contrast: more) {
208
- :root[data-theme],
209
- :root:not([data-theme]) {
210
- --st-couleur-bordure: var(--st-couleur-bordure-forte);
211
- --st-couleur-texte-discret: var(--st-couleur-texte);
383
+ :root {
384
+ --st-couleur-bordure: #7e848b;
385
+ --st-couleur-bordure-forte: light-dark(#434652, #bdc1c7);
386
+ --st-couleur-texte-discret: light-dark(#161c24, #f2f4f6);
387
+ --st-couleur-texte-attenue: light-dark(#434652, #bdc1c7);
388
+ --st-couleur-texte-desactive: light-dark(#656874, #9da2a8);
389
+ --st-couleur-surface-survol: light-dark(#dde3ee, #424851);
390
+ --st-couleur-surface-survol-elevee: light-dark(#dde3ee, #424851);
391
+ --st-couleur-surface-courante-elevee: light-dark(#d7dadf, #4f565e);
392
+ --st-couleur-surface-conteneur-haut: light-dark(#dde3ee, #424851);
393
+ --st-couleur-succes: light-dark(#07602f, #a0caaa);
394
+ --st-couleur-avertissement: light-dark(#783f03, #dbb59a);
395
+ --st-focus-epaisseur: var(--st-epaisseur-forte);
212
396
  }
213
397
  }
214
398
 
215
- /* Impression : les jetons clairs, quel que soit le theme choisi a l'ecran. Un
216
- fond sombre imprime est une page noire. */
399
+ /* Contraste force : les roles vers les couleurs systeme, aucune ombre (01 §7.2). */
400
+ @media (forced-colors: active) {
401
+ :root {
402
+ --st-couleur-fond: Canvas;
403
+ --st-couleur-surface: Canvas;
404
+ --st-couleur-surface-elevee: Canvas;
405
+ --st-couleur-surface-enfoncee: Canvas;
406
+ --st-couleur-surface-conteneur-bas: Canvas;
407
+ --st-couleur-surface-conteneur-haut: Canvas;
408
+ --st-couleur-surface-survol: Canvas;
409
+ --st-couleur-surface-survol-elevee: Canvas;
410
+ --st-couleur-surface-courante-elevee: Canvas;
411
+ --st-couleur-surface-active: Canvas;
412
+ --st-couleur-surface-selection: Canvas;
413
+ --st-couleur-surface-inverse: Canvas;
414
+ --st-couleur-surface-marque: Canvas;
415
+ --st-couleur-lisere-focus: Canvas;
416
+ --st-couleur-primaire-discret: Canvas;
417
+ --st-couleur-primaire-attenue: Canvas;
418
+ --st-couleur-accent-discret: Canvas;
419
+ --st-couleur-information-discret: Canvas;
420
+ --st-couleur-succes-discret: Canvas;
421
+ --st-couleur-avertissement-discret: Canvas;
422
+ --st-couleur-danger-discret: Canvas;
423
+ --st-couleur-danger-discret-courant: Canvas;
424
+ --st-couleur-texte: CanvasText;
425
+ --st-couleur-texte-discret: CanvasText;
426
+ --st-couleur-texte-attenue: CanvasText;
427
+ --st-couleur-texte-inverse: CanvasText;
428
+ --st-couleur-texte-sur-marque: CanvasText;
429
+ --st-couleur-texte-sur-marque-discret: CanvasText;
430
+ --st-couleur-negatif: CanvasText;
431
+ --st-couleur-bordure: CanvasText;
432
+ --st-couleur-bordure-forte: CanvasText;
433
+ --st-couleur-accent: CanvasText;
434
+ --st-couleur-accent-survol: CanvasText;
435
+ --st-couleur-information: CanvasText;
436
+ --st-couleur-succes: CanvasText;
437
+ --st-couleur-avertissement: CanvasText;
438
+ --st-couleur-danger: CanvasText;
439
+ --st-couleur-danger-survol: CanvasText;
440
+ --st-couleur-danger-actif: CanvasText;
441
+ --st-couleur-positif: CanvasText;
442
+ --st-couleur-sur-primaire-discret: CanvasText;
443
+ --st-couleur-sur-primaire-attenue: CanvasText;
444
+ --st-couleur-sur-accent-discret: CanvasText;
445
+ --st-couleur-sur-information-discret: CanvasText;
446
+ --st-couleur-sur-succes-discret: CanvasText;
447
+ --st-couleur-sur-avertissement-discret: CanvasText;
448
+ --st-couleur-sur-danger-discret: CanvasText;
449
+ --st-couleur-texte-desactive: GrayText;
450
+ --st-couleur-primaire: LinkText;
451
+ --st-couleur-primaire-survol: LinkText;
452
+ --st-couleur-primaire-actif: LinkText;
453
+ --st-couleur-texte-primaire: LinkText;
454
+ --st-couleur-selection: Highlight;
455
+ --st-couleur-bordure-selection: Highlight;
456
+ --st-couleur-anneau-focus: Highlight;
457
+ --st-couleur-sur-selection: HighlightText;
458
+ --st-ombre-none: none;
459
+ --st-ombre-repos: none;
460
+ --st-ombre-survol: none;
461
+ --st-ombre-surelevee: none;
462
+ --st-ombre-flottante: none;
463
+ --st-ombre-modale: none;
464
+ --st-epaisseur-capillaire: 1px;
465
+ }
466
+ }
467
+
468
+ /* Impression : le theme clair et son encre, quel que soit le theme a l'ecran ou
469
+ dans un ilot (01 §7.3). Un fond sombre imprime est une page noire. */
217
470
  @media print {
218
- :root[data-theme],
219
- :root:not([data-theme]) {
471
+ :root,
472
+ [data-theme] {
220
473
  color-scheme: light;
221
- --st-couleur-fond: #f7f8fa;
222
- --st-couleur-surface: #ffffff;
223
- --st-couleur-surface-elevee: #ffffff;
224
- --st-couleur-surface-enfoncee: #eef1f5;
225
- --st-couleur-surface-survol: #eef1f5;
226
- --st-couleur-texte: #141920;
227
- --st-couleur-texte-discret: #4d5868;
228
- --st-couleur-texte-desactive: #94a1b2;
229
- --st-couleur-texte-inverse: #ffffff;
230
- --st-couleur-bordure: #dde2e9;
231
- --st-couleur-bordure-forte: #6b7889;
232
- --st-couleur-anneau-focus: #255eeb;
233
- --st-couleur-primaire: #1d4ed8;
234
- --st-couleur-primaire-survol: #1e40af;
235
- --st-couleur-sur-primaire: #ffffff;
236
- --st-couleur-primaire-discret: #eff5ff;
237
- --st-couleur-sur-primaire-discret: #1e3a8a;
238
- --st-couleur-succes: #15803d;
239
- --st-couleur-sur-succes: #ffffff;
240
- --st-couleur-succes-discret: #d7f5e3;
241
- --st-couleur-sur-succes-discret: #0a3d1e;
242
- --st-couleur-avertissement: #a16207;
243
- --st-couleur-sur-avertissement: #ffffff;
244
- --st-couleur-avertissement-discret: #fdf0d5;
245
- --st-couleur-sur-avertissement-discret: #432a06;
246
- --st-couleur-danger: #b91c1c;
247
- --st-couleur-danger-survol: #991b1b;
248
- --st-couleur-sur-danger: #ffffff;
249
- --st-couleur-danger-discret: #fde2e2;
250
- --st-couleur-sur-danger-discret: #4c1010;
474
+ --st-affichage-si-clair: inline;
475
+ --st-affichage-si-sombre: none;
476
+ }
477
+
478
+ :root {
479
+ --st-couleur-fond: #ffffff;
480
+ --st-couleur-surface-survol: #ffffff;
481
+ --st-couleur-surface-active: #ffffff;
482
+ --st-couleur-surface-selection: #ffffff;
483
+ --st-couleur-surface-conteneur-bas: #ffffff;
484
+ --st-couleur-surface-conteneur-haut: #ffffff;
485
+ --st-couleur-texte: #070d14;
486
+ --st-couleur-bordure: #9da2a8;
487
+ --st-couleur-bordure-forte: #60676f;
488
+ --st-couleur-succes: #07602f;
489
+ --st-couleur-avertissement: #783f03;
490
+ --st-couleur-danger: #960c19;
491
+ --st-couleur-information: #0b5776;
492
+ --st-couleur-primaire-discret: #ffffff;
493
+ --st-couleur-primaire-attenue: #ffffff;
494
+ --st-couleur-accent-discret: #ffffff;
495
+ --st-couleur-information-discret: #ffffff;
496
+ --st-couleur-succes-discret: #ffffff;
497
+ --st-couleur-avertissement-discret: #ffffff;
498
+ --st-couleur-danger-discret: #ffffff;
499
+ --st-ombre-repos: none;
500
+ --st-ombre-survol: none;
501
+ --st-ombre-surelevee: none;
502
+ --st-ombre-flottante: none;
503
+ --st-ombre-modale: none;
504
+ --st-voile: transparent;
505
+ --st-epaisseur-capillaire: 1px;
506
+ --st-taille-2xs: 8pt;
507
+ --st-taille-xs: 8pt;
508
+ --st-taille-sm: 9pt;
509
+ --st-taille-md: 10.5pt;
510
+ --st-taille-lg: 12pt;
511
+ --st-taille-xl: 13pt;
512
+ --st-taille-2xl: 15pt;
513
+ --st-taille-3xl: 18pt;
514
+ --st-taille-4xl: 22pt;
515
+ --st-taille-5xl: 28pt;
516
+ --st-taille-6xl: 32pt;
251
517
  }
518
+
519
+ .st-hors-impression {
520
+ display: none !important;
521
+ }
522
+
523
+ /* Impression EXCLUSIVE (lot 263) : un composant qui la demande (les codes de secours) pose
524
+ l'attribut sur <html> le temps du dialogue, et seule sa region s'imprime ; tout ce qui n'est
525
+ ni elle, ni dedans, ni l'un de ses ancetres disparait. Poids nul (:where) comme le reste de
526
+ la feuille ; !important l'emporte sur l'affichage des composants. */
527
+ :where(
528
+ :root[data-st-impression-exclusive]
529
+ body
530
+ *:not([data-st-imprimable], [data-st-imprimable] *, :has([data-st-imprimable]))
531
+ ) {
532
+ display: none !important;
533
+ }
534
+ }
535
+
536
+ @media not print {
537
+ .st-impression-seulement {
538
+ display: none !important;
539
+ }
540
+ }
541
+
542
+ @page {
543
+ margin: 16mm 14mm;
252
544
  }