Fondations
Typographie
Une seule famille pour tout Forme : Aeonik pour le corps et les titres,
Aeonik Mono pour le code. Les fichiers woff2 sont auto-hébergés dans
/public/fonts ; tu ne charges rien depuis un CDN. Les familles se
réfèrent par token — jamais par nom littéral.
font-family: var(--font-family-body); /* Aeonik */ font-family: var(--font-family-heading); /* Aeonik */ font-family: var(--font-family-code); /* Aeonik Mono */
--font-size-*. Toute taille de texte vient d'un cran de cette échelle
(ou d'un rôle sémantique qui l'emballe). Pas de font-size arbitraire.
Échelle --font-size-*
Douze crans, du plus petit au plus grand. Chaque ligne est rendue à sa taille réelle.
Rôles sémantiques --text-*
Chaque rôle emballe une taille, une graisse et un interligne cohérents. On réfère un rôle plutôt
qu'un cran brut dès qu'un sens existe (titre, corps, libellé) : c'est le niveau d'abstraction du
quotidien. Les balises h1…h6,
p, small, code
sont déjà câblées sur ces rôles par le thème.
Chaque rôle expose trois sous-tokens :
--text-heading-1-size,
--text-heading-1-weight,
--text-heading-1-leading.
Interligne & graisses
L'interligne (leading) et la graisse (weight) sont portés par le rôle, pas fixés à
la main : réfère --text-body-leading et
--text-heading-2-weight plutôt qu'un nombre. Aeonik est fournie en
Regular et Medium (préchargées) ; ne simule jamais une graisse absente en gras synthétique.
✓ À faire
Réfère un cran de l'échelle ou, mieux, un rôle sémantique :
font-size: var(--font-size-lg) ou
var(--text-heading-2-size).
✕ À éviter
Écrire font-size: 15px (interdit) ou toute valeur hors échelle. La
cohérence typographique inter-apps en dépend.