@starterlib/tokens 0.5.0 → 0.7.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.
package/README.md CHANGED
@@ -26,6 +26,42 @@ les controles natifs, les barres de defilement et le remplissage automatique
26
26
  restent dans le bon theme meme quand l'utilisateur force un theme contraire a
27
27
  son systeme.
28
28
 
29
+ Elle obeit aussi a la PERSONNE, pas seulement au theme :
30
+
31
+ - `prefers-contrast: more` — le filet decoratif devient le filet fort, et le
32
+ texte discret redevient du texte, par alias du theme courant ;
33
+ - `@media print` — les jetons clairs, quel que soit le theme a l'ecran ;
34
+ - `html { scroll-padding-block-start: var(--st-hauteur-entete, 0px) }` — la
35
+ hauteur que `st-app-shell` mesure sur son en-tete collant, pour qu'un arret de
36
+ tabulation ne remonte jamais dessous (WCAG 2.4.11). Sans coquille, zero.
37
+
38
+ ## Points de rupture
39
+
40
+ Un partiel Sass, engendre comme la feuille, et la meme echelle en TypeScript :
41
+
42
+ ```scss
43
+ @use '@starterlib/tokens/styles/ruptures' as rupture;
44
+
45
+ .grille {
46
+ @include rupture.depuis('lg') {
47
+ grid-template-columns: 1fr 3fr;
48
+ }
49
+ }
50
+ // aussi : rupture.$rupture-lg (64rem), rupture.$ruptures (la carte)
51
+ ```
52
+
53
+ ```ts
54
+ import { RUPTURES } from '@starterlib/tokens';
55
+
56
+ inject(BreakpointObserver).observe(RUPTURES.lg.requete); // '(min-width: 64rem)'
57
+ RUPTURES.lg.px; // 1024
58
+ ```
59
+
60
+ En `rem`, mobile d'abord : une requete de media en rem suit la taille de police
61
+ choisie par la personne dans son navigateur, la ou des px l'ignoreraient. Une
62
+ valeur ecrite a la main la ou l'echelle existe est un defaut, et le socle se le
63
+ garde (`pnpm test` sur `ui`).
64
+
29
65
  Le theme se force par attribut, et l'attribut l'emporte dans les deux sens :
30
66
 
31
67
  ```html
@@ -40,13 +76,58 @@ import { themes, contraste, echelles } from '@starterlib/tokens';
40
76
 
41
77
  - `themes.clair` et `themes.sombre` : couleurs semantiques.
42
78
  - `echelles` : espacement, typographie, rayons, ombres, durees, plans.
79
+ - `RUPTURES` : les points de rupture en px, en rem et en requete de media.
43
80
  - `contraste(a, b)` : rapport WCAG, employe par les tests du depot.
44
81
 
82
+ ## Niveau 3 — reglages de composant
83
+
84
+ Les quelques valeurs qu'une application peut poser sans forker une feuille de
85
+ style. Elles sont listees en commentaire en tete de la feuille engendree, et dans
86
+ `jetonsDeComposant` cote TypeScript.
87
+
88
+ ```css
89
+ /* Toute l'application */
90
+ :root {
91
+ --st-commande-rayon: var(--st-rayon-pleine);
92
+ }
93
+
94
+ /* Ou une zone seulement */
95
+ .tableau-dense {
96
+ --st-tableau-cellule-bloc: var(--st-espacement-1);
97
+ }
98
+ ```
99
+
100
+ | Reglage | Defaut | Pour |
101
+ | ----------------------------- | -------------------------- | ------------------------------------------ |
102
+ | `--st-commande-hauteur` | `--st-cible-tactile-min` | hauteur minimale des boutons et des champs |
103
+ | `--st-commande-rayon` | `--st-rayon-md` | identite de marque |
104
+ | `--st-surface-rayon` | `--st-rayon-md` | carte, dialogue, menu, popover |
105
+ | `--st-tableau-cellule-bloc` | `--st-espacement-3` | densite verticale d'un tableau |
106
+ | `--st-tableau-cellule-ligne` | `--st-espacement-3` | densite horizontale |
107
+ | `--st-tableau-largeur-case` | `3rem` | colonne des cases a cocher |
108
+ | `--st-calendrier-jour-taille` | `--st-cible-tactile-min` | calendrier dense |
109
+ | `--st-anim-chargement` | propre a chaque indicateur | rythme d'un indicateur d'activite |
110
+ | `--st-anim-respiration` | `1600ms` | rythme sous mouvement reduit |
111
+
112
+ ⚠️ **Le socle ne les DECLARE jamais** : il les lit au point d'usage, avec un
113
+ repli. Une declaration sur l'hote d'un composant l'emporterait sur la valeur
114
+ heritee, et votre reglage n'aurait aucun effet — sans le moindre message. Une
115
+ garde du depot le verifie, et le banc en vrai navigateur verifie qu'un reglage
116
+ pose a la racine atteint bien les composants.
117
+
118
+ ⚠️ **Aucune couleur n'est ouverte ici.** Une couleur se change au niveau
119
+ semantique : deux sources de verite pour le meme bleu, et les paires de contraste
120
+ verifiees ne garantissent plus rien.
121
+
122
+ ⚠️ **Un reglage ne descend pas sous un plancher d'accessibilite.** Un jour de
123
+ calendrier reste au-dessus de la cible minimale, quoi qu'on pose.
124
+
45
125
  ## Garde de non-derive
46
126
 
47
- Le CSS est **engendre**, jamais ecrit a la main. `pnpm tokens:css:check` echoue
48
- si la feuille livree ne correspond plus aux jetons TypeScript — meme principe
49
- que le controle de contrat cote backend.
127
+ Le CSS est **engendre**, jamais ecrit a la main — la feuille comme le partiel
128
+ des ruptures. `pnpm tokens:css:check` echoue si un fichier livre ne correspond
129
+ plus aux jetons TypeScript — meme principe que le controle de contrat cote
130
+ backend.
50
131
 
51
132
  ## Accessibilite
52
133
 
@@ -124,6 +124,17 @@ const duree = {
124
124
  normale: '200ms',
125
125
  lente: '320ms',
126
126
  };
127
+ /**
128
+ * Rythme d'une attente qui dure : respiration d'un squelette sous mouvement
129
+ * reduit, va-et-vient d'une progression indeterminee.
130
+ *
131
+ * ⚠️ **Hors de l'echelle des durees, et c'est le point.** `--st-duree-*` passe a
132
+ * zero sous `prefers-reduced-motion` : un indicateur d'activite cable dessus se
133
+ * figerait, et l'ecran passerait pour bloque. Les feuilles le lisent par
134
+ * `var(--st-anim-respiration, …)`, avec un repli litteral — une application peut
135
+ * ralentir la respiration, jamais l'eteindre.
136
+ */
137
+ const respiration = '1600ms';
127
138
  const courbe = {
128
139
  standard: 'cubic-bezier(0.2, 0, 0, 1)',
129
140
  entrant: 'cubic-bezier(0, 0, 0, 1)',
@@ -154,6 +165,106 @@ const rupture = {
154
165
  };
155
166
  /** Cible tactile minimale. Sous 44 px, l'echec de pointage devient courant. */
156
167
  const cibleTactileMinimale = '44px';
168
+ /**
169
+ * Cible de pointage minimale (WCAG 2.5.8, niveau AA). C'est un PLANCHER, pas un
170
+ * confort : la cible tactile reste la regle pour ce qui se touche.
171
+ */
172
+ const cibleMinimale = '24px';
173
+ /**
174
+ * Epaisseurs de trait. Trois suffisent : un filet qui separe, un accent qui
175
+ * signale, un marqueur qui designe. Une quatrieme valeur serait un arbitraire de
176
+ * plus a tenir.
177
+ */
178
+ const epaisseur = {
179
+ fine: '1px',
180
+ moyenne: '2px',
181
+ forte: '3px',
182
+ };
183
+ /**
184
+ * Largeur de lecture. Au-dela de soixante-quinze caracteres, l'oeil perd le
185
+ * debut de la ligne suivante ; en deca de quarante-cinq, il saute trop souvent.
186
+ */
187
+ const mesure = {
188
+ etroite: '45ch',
189
+ normale: '70ch',
190
+ };
191
+
192
+ /**
193
+ * ⚠️ 16 px par rem, et non la taille de police de `html` : une requete de media
194
+ * se resout contre la taille PAR DEFAUT du navigateur, celle que la personne
195
+ * regle dans ses preferences, jamais contre une valeur posee par une feuille.
196
+ * Une personne qui lit a 20 px voit donc la rupture `lg` a 1280 px reels : la
197
+ * mise en page suit son choix, la ou des px l'ignoreraient.
198
+ */
199
+ const PIXELS_PAR_REM = 16;
200
+ function enRem(px) {
201
+ return `${(px / PIXELS_PAR_REM).toString()}rem`;
202
+ }
203
+ function lire(nom) {
204
+ const px = Number.parseInt(rupture[nom], 10);
205
+ const rem = enRem(px);
206
+ return { px, rem, requete: `(min-width: ${rem})` };
207
+ }
208
+ /**
209
+ * Les points de rupture de l'echelle, DERIVES de `rupture` : une valeur ecrite
210
+ * ici a la main pourrait diverger de celle du CSS, et c'est precisement le
211
+ * defaut F7 du plan de la coquille (`64rem` en dur la ou `rupture.lg` existait).
212
+ *
213
+ * ```ts
214
+ * inject(BreakpointObserver).observe(RUPTURES.lg.requete);
215
+ * ```
216
+ */
217
+ const RUPTURES = {
218
+ sm: lire('sm'),
219
+ md: lire('md'),
220
+ lg: lire('lg'),
221
+ xl: lire('xl'),
222
+ '2xl': lire('2xl'),
223
+ };
224
+ /**
225
+ * Le partiel Sass `_ruptures.scss`, ENGENDRE comme la feuille de jetons : un
226
+ * fichier ecrit a la main a cote du TypeScript finirait par ne plus lui
227
+ * correspondre. Meme garde de non-derive (`pnpm tokens:css:check`).
228
+ *
229
+ * Il expose une variable par rupture, la carte complete, et un mixin qui ecrit
230
+ * la requete de media, mobile d'abord :
231
+ *
232
+ * ```scss
233
+ * @use '@starterlib/tokens/styles/ruptures' as rupture;
234
+ *
235
+ * @include rupture.depuis('lg') { … }
236
+ * ```
237
+ */
238
+ function partielDesRuptures() {
239
+ const noms = Object.keys(RUPTURES);
240
+ const variables = noms.map((nom) => `$rupture-${nom}: ${RUPTURES[nom].rem}; // ${RUPTURES[nom].px.toString()}px`);
241
+ const entrees = noms.map((nom) => ` '${nom}': $rupture-${nom},`);
242
+ return `// Engendre par @starterlib/tokens — ne pas modifier a la main.
243
+ // Regenerer : pnpm tokens:css
244
+ //
245
+ // Points de rupture de l'echelle \`rupture\`, en rem : une requete de media en
246
+ // rem suit la taille de police choisie par la personne, la ou des px
247
+ // l'ignoreraient. Mobile d'abord : chaque valeur est un MINIMUM.
248
+ @use 'sass:map';
249
+
250
+ ${variables.join('\n')}
251
+
252
+ $ruptures: (
253
+ ${entrees.join('\n')}
254
+ );
255
+
256
+ // Applique les regles a partir d'une rupture : \`@include depuis('lg') { … }\`.
257
+ @mixin depuis($nom) {
258
+ @if not map.has-key($ruptures, $nom) {
259
+ @error "Rupture inconnue : #{$nom}. Admises : #{map.keys($ruptures)}.";
260
+ }
261
+
262
+ @media (min-width: map.get($ruptures, $nom)) {
263
+ @content;
264
+ }
265
+ }
266
+ `;
267
+ }
157
268
 
158
269
  /**
159
270
  * Calcul de contraste WCAG 2.1. Il vit dans les jetons, et non dans les tests,
@@ -343,6 +454,62 @@ const exemptesDeContraste = [
343
454
  * normatif, mais un separateur invisible ne separe rien. */
344
455
  const SEUIL_DE_PERCEPTIBILITE = 1.2;
345
456
 
457
+ const jetonsDeComposant = [
458
+ {
459
+ nom: '--st-commande-hauteur',
460
+ repli: 'var(--st-cible-tactile-min)',
461
+ role: 'Hauteur MINIMALE commune des boutons, champs et listes deroulantes. Une ' +
462
+ 'seule valeur pour tous : une ligne ou le champ fait 44 px et le bouton 40 ' +
463
+ 'se voit tout de suite. Sous la hauteur du contenu, la commande grandit ' +
464
+ 'plutot que de rogner son texte.',
465
+ },
466
+ {
467
+ nom: '--st-commande-rayon',
468
+ repli: 'var(--st-rayon-md)',
469
+ role: "Rayon des commandes. C'est le reglage d'identite le plus demande.",
470
+ },
471
+ {
472
+ nom: '--st-surface-rayon',
473
+ repli: 'var(--st-rayon-md)',
474
+ role: 'Rayon des surfaces qui portent du contenu : carte, dialogue, menu, popover.',
475
+ },
476
+ {
477
+ nom: '--st-tableau-cellule-bloc',
478
+ repli: 'var(--st-espacement-3)',
479
+ role: "Respiration verticale d'une cellule : c'est par elle que passe la densite.",
480
+ },
481
+ {
482
+ nom: '--st-tableau-cellule-ligne',
483
+ repli: 'var(--st-espacement-3)',
484
+ role: 'Respiration horizontale d une cellule.',
485
+ },
486
+ {
487
+ nom: '--st-tableau-largeur-case',
488
+ repli: '3rem',
489
+ role: 'Largeur de la colonne des cases a cocher ; la colonne figee suivante se decale d autant.',
490
+ },
491
+ {
492
+ nom: '--st-calendrier-jour-taille',
493
+ repli: 'var(--st-cible-tactile-min)',
494
+ role: 'Cote d une case de jour. Un calendrier dense reste au-dessus de la cible minimale.',
495
+ },
496
+ {
497
+ nom: '--st-anim-chargement',
498
+ repli: 'une duree propre a chaque indicateur',
499
+ role: "Rythme d'un indicateur d'activite. ⚠️ Hors de l'echelle des durees, qui " +
500
+ 'passe a zero sous mouvement reduit : un indicateur fige ferait croire a un ecran bloque.',
501
+ },
502
+ {
503
+ nom: '--st-anim-respiration',
504
+ repli: '1600ms',
505
+ role: 'Rythme de la respiration qui remplace le mouvement sous `prefers-reduced-motion`.',
506
+ },
507
+ ];
508
+ /** Vrai si la propriete fait partie du catalogue public. */
509
+ function estJetonDeComposant(nom) {
510
+ return jetonsDeComposant.some((jeton) => jeton.nom === nom);
511
+ }
512
+
346
513
  /**
347
514
  * Les proprietes CSS personnalisees sont ENGENDREES depuis les jetons
348
515
  * TypeScript, jamais ecrites a la main en parallele. Deux sources de verite
@@ -375,7 +542,10 @@ function cssDesEchelles() {
375
542
  ...aplatir(`${PREFIXE}-taille`, typographie.taille),
376
543
  ...aplatir(`${PREFIXE}-graisse`, typographie.graisse),
377
544
  ...aplatir(`${PREFIXE}-interligne`, typographie.interligne),
545
+ ...aplatir(`${PREFIXE}-epaisseur`, epaisseur),
546
+ ...aplatir(`${PREFIXE}-mesure`, mesure),
378
547
  ` ${PREFIXE}-cible-tactile-min: ${cibleTactileMinimale};`,
548
+ ` ${PREFIXE}-cible-min: ${cibleMinimale};`,
379
549
  ].join('\n');
380
550
  }
381
551
  function cssDuTheme(theme) {
@@ -387,15 +557,53 @@ function cssDuTheme(theme) {
387
557
  * l'attribut l'emporte dans les deux sens (un utilisateur qui choisit le
388
558
  * clair sur un systeme sombre doit obtenir le clair).
389
559
  *
560
+ * Elle porte aussi les trois derogations qui obeissent a la PERSONNE et non au
561
+ * theme : mouvement reduit (durees a zero), contraste renforce (filet fort,
562
+ * texte discret rendu comme texte), impression (jetons clairs forces) — et le
563
+ * decalage de defilement qui garde un focus hors de l'en-tete collant.
564
+ *
390
565
  * ⚠️ `color-scheme` suit le theme EFFECTIF, il n'est pas pose une fois pour
391
566
  * toutes a `light dark` : ce dernier laisse le navigateur decider seul, si bien
392
567
  * qu'un theme clair force sur un systeme sombre gardait des barres de
393
568
  * defilement, des champs natifs et un remplissage automatique sombres.
394
569
  */
570
+ /**
571
+ * Catalogue des reglages de composant, en COMMENTAIRE.
572
+ *
573
+ * ⚠️ Ils ne sont pas declares : une declaration a la racine serait masquee par
574
+ * celle d'un composant, et surtout elle laisserait croire qu'on les change ici.
575
+ * Ils se posent la ou on veut regler — racine, zone, instance.
576
+ */
577
+ function catalogueDesComposants() {
578
+ const lignes = jetonsDeComposant.map((jeton) => ` ${jeton.nom} (defaut : ${jeton.repli})`);
579
+ return `/* Reglages de composant, a poser par l'application la ou elle veut :
580
+ ${lignes.join('\n')}
581
+ Voir le README de @starterlib/tokens. */`;
582
+ }
583
+ /**
584
+ * Selecteur des DEROGATIONS de la racine : impression, contraste renforce.
585
+ *
586
+ * ⚠️ `:root` seul ne suffirait pas. Le theme sombre s'ecrit sur
587
+ * `:root[data-theme='sombre']` et sur `:root:not([data-theme='clair'])`, deux
588
+ * selecteurs de specificite (0,2,0) ; un `:root` nu ne pese que (0,1,0), et une
589
+ * derogation ecrite dessus perdrait contre eux, meme placee apres. Les deux
590
+ * formes ci-dessous couvrent chaque document — avec ou sans attribut — a
591
+ * specificite egale, et l'emportent par l'ordre.
592
+ */
593
+ const RACINE_QUEL_QUE_SOIT_LE_THEME = `:root[data-theme],
594
+ :root:not([data-theme])`;
595
+ function indenter(bloc) {
596
+ return bloc
597
+ .split('\n')
598
+ .map((ligne) => ` ${ligne}`)
599
+ .join('\n');
600
+ }
395
601
  function feuilleDeJetons() {
396
602
  return `/* Engendre par @starterlib/tokens — ne pas modifier a la main.
397
603
  Regenerer : pnpm tokens:css */
398
604
 
605
+ ${catalogueDesComposants()}
606
+
399
607
  :root {
400
608
  color-scheme: light;
401
609
  ${cssDesEchelles()}
@@ -424,6 +632,32 @@ ${cssDuTheme('sombre')
424
632
  ${PREFIXE}-duree-lente: 0ms;
425
633
  }
426
634
  }
635
+
636
+ /* WCAG 2.4.11 : un arret de tabulation ne remonte jamais sous l'en-tete collant.
637
+ \`${PREFIXE}-hauteur-entete\` est posee sur <html> par st-app-shell, qui mesure
638
+ son en-tete ; sans coquille, le repli vaut zero et rien ne change. */
639
+ html {
640
+ scroll-padding-block-start: var(${PREFIXE}-hauteur-entete, 0px);
641
+ }
642
+
643
+ /* Contraste renforce : le filet decoratif devient un filet fort, et le texte
644
+ discret redevient du texte. Les deux jetons restent des ALIAS du theme
645
+ courant, clair ou sombre. */
646
+ @media (prefers-contrast: more) {
647
+ ${indenter(RACINE_QUEL_QUE_SOIT_LE_THEME)} {
648
+ ${PREFIXE}-couleur-bordure: var(${PREFIXE}-couleur-bordure-forte);
649
+ ${PREFIXE}-couleur-texte-discret: var(${PREFIXE}-couleur-texte);
650
+ }
651
+ }
652
+
653
+ /* Impression : les jetons clairs, quel que soit le theme choisi a l'ecran. Un
654
+ fond sombre imprime est une page noire. */
655
+ @media print {
656
+ ${indenter(RACINE_QUEL_QUE_SOIT_LE_THEME)} {
657
+ color-scheme: light;
658
+ ${indenter(cssDuTheme('clair'))}
659
+ }
660
+ }
427
661
  `;
428
662
  }
429
663
 
@@ -438,5 +672,5 @@ ${cssDuTheme('sombre')
438
672
  * Generated bundle index. Do not edit.
439
673
  */
440
674
 
441
- export { PREFIXE, SEUIL_DE_PERCEPTIBILITE, cibleTactileMinimale, courbe, cssDesEchelles, cssDuTheme, duree, espacement, exemptesDeContraste, feuilleDeJetons, luminanceRelative, ombre, pairesDeContraste, plan, primitives, rapportDeContraste, rayon, respecteLeContraste, rupture, seuilExige, themeClair, themeSombre, themes, typographie, versRvb };
675
+ export { PREFIXE, RUPTURES, SEUIL_DE_PERCEPTIBILITE, cibleMinimale, cibleTactileMinimale, courbe, cssDesEchelles, cssDuTheme, duree, epaisseur, espacement, estJetonDeComposant, exemptesDeContraste, feuilleDeJetons, jetonsDeComposant, luminanceRelative, mesure, ombre, pairesDeContraste, partielDesRuptures, plan, primitives, rapportDeContraste, rayon, respecteLeContraste, respiration, rupture, seuilExige, themeClair, themeSombre, themes, typographie, versRvb };
442
676
  //# sourceMappingURL=starterlib-tokens.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"starterlib-tokens.mjs","sources":["../../../../packages/tokens/src/lib/primitives.ts","../../../../packages/tokens/src/lib/echelles.ts","../../../../packages/tokens/src/lib/contraste.ts","../../../../packages/tokens/src/lib/theme.ts","../../../../packages/tokens/src/lib/css.ts","../../../../packages/tokens/src/public-api.ts","../../../../packages/tokens/src/starterlib-tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"starterlib-tokens.mjs","sources":["../../../../packages/tokens/src/lib/primitives.ts","../../../../packages/tokens/src/lib/echelles.ts","../../../../packages/tokens/src/lib/ruptures.ts","../../../../packages/tokens/src/lib/contraste.ts","../../../../packages/tokens/src/lib/theme.ts","../../../../packages/tokens/src/lib/composants.ts","../../../../packages/tokens/src/lib/css.ts","../../../../packages/tokens/src/public-api.ts","../../../../packages/tokens/src/starterlib-tokens.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starterlib/tokens",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "Jetons de design du socle frontal starter : couleurs semantiques, echelles, contraste WCAG. Aucune dependance de rendu, Angular compris.",
5
5
  "license": "UNLICENSED",
6
6
  "sideEffects": [
@@ -0,0 +1,32 @@
1
+ // Engendre par @starterlib/tokens — ne pas modifier a la main.
2
+ // Regenerer : pnpm tokens:css
3
+ //
4
+ // Points de rupture de l'echelle `rupture`, en rem : une requete de media en
5
+ // rem suit la taille de police choisie par la personne, la ou des px
6
+ // l'ignoreraient. Mobile d'abord : chaque valeur est un MINIMUM.
7
+ @use 'sass:map';
8
+
9
+ $rupture-sm: 30rem; // 480px
10
+ $rupture-md: 48rem; // 768px
11
+ $rupture-lg: 64rem; // 1024px
12
+ $rupture-xl: 80rem; // 1280px
13
+ $rupture-2xl: 96rem; // 1536px
14
+
15
+ $ruptures: (
16
+ 'sm': $rupture-sm,
17
+ 'md': $rupture-md,
18
+ 'lg': $rupture-lg,
19
+ 'xl': $rupture-xl,
20
+ '2xl': $rupture-2xl,
21
+ );
22
+
23
+ // Applique les regles a partir d'une rupture : `@include depuis('lg') { … }`.
24
+ @mixin depuis($nom) {
25
+ @if not map.has-key($ruptures, $nom) {
26
+ @error "Rupture inconnue : #{$nom}. Admises : #{map.keys($ruptures)}.";
27
+ }
28
+
29
+ @media (min-width: map.get($ruptures, $nom)) {
30
+ @content;
31
+ }
32
+ }
@@ -1,6 +1,18 @@
1
1
  /* Engendre par @starterlib/tokens — ne pas modifier a la main.
2
2
  Regenerer : pnpm tokens:css */
3
3
 
4
+ /* Reglages de composant, a poser par l'application la ou elle veut :
5
+ --st-commande-hauteur (defaut : var(--st-cible-tactile-min))
6
+ --st-commande-rayon (defaut : var(--st-rayon-md))
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)
14
+ Voir le README de @starterlib/tokens. */
15
+
4
16
  :root {
5
17
  color-scheme: light;
6
18
  --st-espacement-0: 0;
@@ -65,7 +77,13 @@
65
77
  --st-interligne-serre: 1.25;
66
78
  --st-interligne-normal: 1.5;
67
79
  --st-interligne-large: 1.75;
80
+ --st-epaisseur-fine: 1px;
81
+ --st-epaisseur-moyenne: 2px;
82
+ --st-epaisseur-forte: 3px;
83
+ --st-mesure-etroite: 45ch;
84
+ --st-mesure-normale: 70ch;
68
85
  --st-cible-tactile-min: 44px;
86
+ --st-cible-min: 24px;
69
87
  --st-couleur-fond: #f7f8fa;
70
88
  --st-couleur-surface: #ffffff;
71
89
  --st-couleur-surface-elevee: #ffffff;
@@ -175,3 +193,60 @@
175
193
  --st-duree-lente: 0ms;
176
194
  }
177
195
  }
196
+
197
+ /* WCAG 2.4.11 : un arret de tabulation ne remonte jamais sous l'en-tete collant.
198
+ `--st-hauteur-entete` est posee sur <html> par st-app-shell, qui mesure
199
+ son en-tete ; sans coquille, le repli vaut zero et rien ne change. */
200
+ html {
201
+ scroll-padding-block-start: var(--st-hauteur-entete, 0px);
202
+ }
203
+
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. */
207
+ @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);
212
+ }
213
+ }
214
+
215
+ /* Impression : les jetons clairs, quel que soit le theme choisi a l'ecran. Un
216
+ fond sombre imprime est une page noire. */
217
+ @media print {
218
+ :root[data-theme],
219
+ :root:not([data-theme]) {
220
+ 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;
251
+ }
252
+ }
@@ -133,6 +133,17 @@ declare const duree: {
133
133
  readonly normale: "200ms";
134
134
  readonly lente: "320ms";
135
135
  };
136
+ /**
137
+ * Rythme d'une attente qui dure : respiration d'un squelette sous mouvement
138
+ * reduit, va-et-vient d'une progression indeterminee.
139
+ *
140
+ * ⚠️ **Hors de l'echelle des durees, et c'est le point.** `--st-duree-*` passe a
141
+ * zero sous `prefers-reduced-motion` : un indicateur d'activite cable dessus se
142
+ * figerait, et l'ecran passerait pour bloque. Les feuilles le lisent par
143
+ * `var(--st-anim-respiration, …)`, avec un repli litteral — une application peut
144
+ * ralentir la respiration, jamais l'eteindre.
145
+ */
146
+ declare const respiration = "1600ms";
136
147
  declare const courbe: {
137
148
  readonly standard: "cubic-bezier(0.2, 0, 0, 1)";
138
149
  readonly entrant: "cubic-bezier(0, 0, 0, 1)";
@@ -163,6 +174,65 @@ declare const rupture: {
163
174
  };
164
175
  /** Cible tactile minimale. Sous 44 px, l'echec de pointage devient courant. */
165
176
  declare const cibleTactileMinimale = "44px";
177
+ /**
178
+ * Cible de pointage minimale (WCAG 2.5.8, niveau AA). C'est un PLANCHER, pas un
179
+ * confort : la cible tactile reste la regle pour ce qui se touche.
180
+ */
181
+ declare const cibleMinimale = "24px";
182
+ /**
183
+ * Epaisseurs de trait. Trois suffisent : un filet qui separe, un accent qui
184
+ * signale, un marqueur qui designe. Une quatrieme valeur serait un arbitraire de
185
+ * plus a tenir.
186
+ */
187
+ declare const epaisseur: {
188
+ readonly fine: "1px";
189
+ readonly moyenne: "2px";
190
+ readonly forte: "3px";
191
+ };
192
+ /**
193
+ * Largeur de lecture. Au-dela de soixante-quinze caracteres, l'oeil perd le
194
+ * debut de la ligne suivante ; en deca de quarante-cinq, il saute trop souvent.
195
+ */
196
+ declare const mesure: {
197
+ readonly etroite: "45ch";
198
+ readonly normale: "70ch";
199
+ };
200
+
201
+ type NomDeRupture = keyof typeof rupture;
202
+ /** Un point de rupture, sous les trois formes qu'un code en fait. */
203
+ interface Rupture {
204
+ /** Largeur minimale en pixels CSS, telle que l'echelle la declare. */
205
+ readonly px: number;
206
+ /** La meme largeur en `rem` : l'unite des requetes de media du socle. */
207
+ readonly rem: string;
208
+ /** Requete de media prete pour `matchMedia` ou `BreakpointObserver`. */
209
+ readonly requete: string;
210
+ }
211
+ /**
212
+ * Les points de rupture de l'echelle, DERIVES de `rupture` : une valeur ecrite
213
+ * ici a la main pourrait diverger de celle du CSS, et c'est precisement le
214
+ * defaut F7 du plan de la coquille (`64rem` en dur la ou `rupture.lg` existait).
215
+ *
216
+ * ```ts
217
+ * inject(BreakpointObserver).observe(RUPTURES.lg.requete);
218
+ * ```
219
+ */
220
+ declare const RUPTURES: Readonly<Record<NomDeRupture, Rupture>>;
221
+ /**
222
+ * Le partiel Sass `_ruptures.scss`, ENGENDRE comme la feuille de jetons : un
223
+ * fichier ecrit a la main a cote du TypeScript finirait par ne plus lui
224
+ * correspondre. Meme garde de non-derive (`pnpm tokens:css:check`).
225
+ *
226
+ * Il expose une variable par rupture, la carte complete, et un mixin qui ecrit
227
+ * la requete de media, mobile d'abord :
228
+ *
229
+ * ```scss
230
+ * @use '@starterlib/tokens/styles/ruptures' as rupture;
231
+ *
232
+ * @include rupture.depuis('lg') { … }
233
+ * ```
234
+ */
235
+ declare function partielDesRuptures(): string;
166
236
 
167
237
  /**
168
238
  * Calcul de contraste WCAG 2.1. Il vit dans les jetons, et non dans les tests,
@@ -255,6 +325,53 @@ declare const exemptesDeContraste: readonly Exemption[];
255
325
  * normatif, mais un separateur invisible ne separe rien. */
256
326
  declare const SEUIL_DE_PERCEPTIBILITE = 1.2;
257
327
 
328
+ /**
329
+ * Niveau 3 — jetons de composant. Les quelques reglages qu'une application peut
330
+ * poser sans forker une feuille de style.
331
+ *
332
+ * ⚠️ **Un jeton de composant est une PROMESSE PUBLIQUE.** Il se tient aussi
333
+ * longtemps que le composant existe : le catalogue reste donc court, et chaque
334
+ * entree repond a un besoin reel — densite, identite de marque, rythme
335
+ * d'attente. Tout le reste passe par le niveau semantique, ou n'a pas a etre
336
+ * ouvert.
337
+ *
338
+ * ⚠️ **Ils ne sont PAS declares sur l'hote du composant, et c'est le coeur du
339
+ * mecanisme.** Une valeur declaree sur `:host` l'emporte sur celle qu'un ancetre
340
+ * hérite : l'application poserait son reglage a la racine, et le composant
341
+ * continuerait d'afficher le sien. Les feuilles du socle les lisent donc au
342
+ * POINT D'USAGE, avec un repli :
343
+ *
344
+ * ```scss
345
+ * min-block-size: var(--st-commande-hauteur, var(--st-cible-tactile-min));
346
+ * ```
347
+ *
348
+ * L'application, elle, les pose ou elle veut — a la racine, sur une zone, sur
349
+ * une instance :
350
+ *
351
+ * ```css
352
+ * .tableau-dense { --st-tableau-cellule-bloc: var(--st-espacement-1); }
353
+ * ```
354
+ *
355
+ * ⚠️ **Aucune couleur ici.** Une couleur se change au niveau semantique, sinon
356
+ * le meme bleu a deux sources de verite, et les paires de contraste verifiees ne
357
+ * garantissent plus rien.
358
+ *
359
+ * Une variable interne pilotee par une entree — `--st-icone-taille`,
360
+ * `--st-avatar-taille` — n'est pas un jeton de composant : elle est declaree sur
361
+ * l'hote, elle n'est pas dans ce catalogue, et elle peut changer sans preavis.
362
+ */
363
+ interface JetonDeComposant {
364
+ /** Nom complet de la propriete CSS, prefixe compris. */
365
+ readonly nom: string;
366
+ /** Ce que le socle emploie quand l'application ne pose rien. */
367
+ readonly repli: string;
368
+ /** A quoi il sert, et pour qui. */
369
+ readonly role: string;
370
+ }
371
+ declare const jetonsDeComposant: readonly JetonDeComposant[];
372
+ /** Vrai si la propriete fait partie du catalogue public. */
373
+ declare function estJetonDeComposant(nom: string): boolean;
374
+
258
375
  /**
259
376
  * Les proprietes CSS personnalisees sont ENGENDREES depuis les jetons
260
377
  * TypeScript, jamais ecrites a la main en parallele. Deux sources de verite
@@ -265,18 +382,7 @@ declare const PREFIXE = "--st";
265
382
  /** Jetons invariants : ils ne dependent pas du theme. */
266
383
  declare function cssDesEchelles(): string;
267
384
  declare function cssDuTheme(theme: NomDeTheme): string;
268
- /**
269
- * Feuille complete. Le theme clair est la valeur par defaut ; le sombre
270
- * s'applique soit par preference systeme, soit par attribut explicite, et
271
- * l'attribut l'emporte dans les deux sens (un utilisateur qui choisit le
272
- * clair sur un systeme sombre doit obtenir le clair).
273
- *
274
- * ⚠️ `color-scheme` suit le theme EFFECTIF, il n'est pas pose une fois pour
275
- * toutes a `light dark` : ce dernier laisse le navigateur decider seul, si bien
276
- * qu'un theme clair force sur un systeme sombre gardait des barres de
277
- * defilement, des champs natifs et un remplissage automatique sombres.
278
- */
279
385
  declare function feuilleDeJetons(): string;
280
386
 
281
- export { PREFIXE, SEUIL_DE_PERCEPTIBILITE, cibleTactileMinimale, courbe, cssDesEchelles, cssDuTheme, duree, espacement, exemptesDeContraste, feuilleDeJetons, luminanceRelative, ombre, pairesDeContraste, plan, primitives, rapportDeContraste, rayon, respecteLeContraste, rupture, seuilExige, themeClair, themeSombre, themes, typographie, versRvb };
282
- export type { Exemption, JetonsDeCouleur, NatureDuTexte, NiveauContraste, NomDeTheme, PaireDeContraste, Rvb };
387
+ export { PREFIXE, RUPTURES, SEUIL_DE_PERCEPTIBILITE, cibleMinimale, cibleTactileMinimale, courbe, cssDesEchelles, cssDuTheme, duree, epaisseur, espacement, estJetonDeComposant, exemptesDeContraste, feuilleDeJetons, jetonsDeComposant, luminanceRelative, mesure, ombre, pairesDeContraste, partielDesRuptures, plan, primitives, rapportDeContraste, rayon, respecteLeContraste, respiration, rupture, seuilExige, themeClair, themeSombre, themes, typographie, versRvb };
388
+ export type { Exemption, JetonDeComposant, JetonsDeCouleur, NatureDuTexte, NiveauContraste, NomDeRupture, NomDeTheme, PaireDeContraste, Rupture, Rvb };