Aller au contenu
§9.2

Design System

Les fondations visuelles du projet. Tout ce qui suit est lu depuis src/styles/tokens.css et src/styles/motion.css : la page ne redéclare aucune valeur, elle affiche celles qui sont réellement appliquées.

A

Couleurs

Chaque paire texte/surface a été passée au détecteur Impeccable avant d'entrer dans les tokens. Trois candidates ont été rejetées pour échec WCAG AA et remplacées : le vermillon de marque à 4,0:1 sur le papier, le blanc sur ce même vermillon à 4,2:1, et l'orange d'avertissement à 4,3:1.

Surfaces

--paper

Fond de page

--surface

Carte en relief

--surface-2

Zone encastrée, en-tête de tableau

--rule

Filet, bordure de champ

Encre

--ink

Texte principal

--ink-secondary

Texte secondaire, chapô

--ink-muted

Légende, métadonnée

Signal

--signal

Vermillon de marque — graphique et grand texte

--signal-aa

Variante AA — texte courant, aplat sous du blanc

États

--success

Confirmation

--warning

Avertissement

--error

Erreur, destruction

--info

Information neutre

B

Typographie

Display — Archivo

Titres et chiffres

Corps — IBM Plex Sans

La mesure d'un paragraphe est plafonnée à 68 caractères par le token --content-max. Au-delà, l'œil perd la ligne en revenant à la gauche du bloc. Ni Inter, ni Geist : deux polices que tout le secteur emploie, et dont la neutralité ne dit plus rien.

Mono — IBM Plex Mono

--signal-aa: #be2f16; /* 4.7:1 sur --paper */

C

Espacements

Échelle d'espacement
TokenValeurUsage
--space-14pxÉcart entre icône et label
--space-28pxPadding minimal d'un conteneur bordé
--space-312pxPadding de cellule de tableau
--space-416pxGouttière mobile
--space-624pxPadding de carte, gouttière tablette
--space-832pxÉcart entre blocs d'une même section
--space-1248pxPadding de carte large
--space-1664pxRespiration verticale de section, mobile
--space-2496pxRespiration verticale de section, desktop
--space-32128pxSéparation de chapitre
D

Rayons et élévation

Rayons
TokenValeurUsage
--radius-none0pxFilets, tableaux, aplats pleine largeur
--radius (sm/md/lg)0.15 / 0.2 / 0.25remBoutons, champs, cartes
--radius-full9999pxPastilles d'état, avatars uniquement

--shadow-sm

L'élévation se mérite. Par défaut, un filet suffit.

--shadow-md

L'élévation se mérite. Par défaut, un filet suffit.

--shadow-lg

L'élévation se mérite. Par défaut, un filet suffit.

E

Grille

Tokens de grille
TokenValeurUsage
--container-page1440pxLargeur maximale de page
--content-max68chMesure d'un paragraphe (§3.1 E)
--gutter24pxGouttière de grille
--columns12Colonnes de la grille de composition
F

Motion

Sous prefers-reduced-motion: reduce, toutes les durées tombent à 0,01 ms et toutes les distances à 0 px, en un seul endroit. Aucun composant n'a à s'en occuper, et rien ne reste bloqué à mi-transition.

Tokens de motion
TokenValeurUsage
--duration-instant90msChangement d'état d'un contrôle
--duration-fast160msSurvol, focus
--duration-base240msApparition, ouverture d'overlay
--duration-slow420msTransition de layout
--duration-slower700msSéquence orchestrée
--ease-outcubic-bezier(0.22, 1, 0.36, 1)Entrées
--ease-incubic-bezier(0.64, 0, 0.78, 0)Sorties
--ease-in-outcubic-bezier(0.65, 0, 0.35, 1)Transformations
--stagger-base70msDécalage entre éléments d'une liste
--travel-md16pxDistance de déplacement par défaut
G

Contrôles et états

Boutons

DéfautSecondaireContourErreur

Champs

Format d'adresse non reconnu.