Réglages

Apparence

Thème

Couleurs

Primary — tonique
Neutre — gris / slate

Typographie

Titres
Corps

2 · Brand

Quelle palette du catalogue joue quel rôle. Le seul endroit à éditer pour rebrander un projet.

primary
violet
neutral
slateBlue
success
green
warning
orange
danger
red
info
blue
Le cœur du système. Changer la tonique = éditer une ligne dans scripts/generate-theme.js, puis npm run theme.
const BRAND = {
  primary: 'turquoise',   // était 'violet'
  neutral: 'slateBlue', success: 'green', …
};
Ni le contrat de rôle, ni les composants ne bougent. Tous les boutons, liens et états actifs de l'app suivent.

Les polices

Même principe que les couleurs : le brand désigne quelle pile du catalogue joue les titres (heading), le corps (body) et le code (mono). Titres et corps portent volontairement deux polices distinctes. Changer l'une, c'est une ligne — BRAND_FONT dans scripts/generate-theme.js.

heading
inter
Le vif renard brun saute — 0123
body
jetbrainsMono
Le vif renard brun saute — 0123
mono
jetbrainsMono
Le vif renard brun saute — 0123

Sans cette couche

Si un rôle sémantique pointait directement sur une palette (role.primary.main → {color.violet.600}), rebrander obligerait à réécrire chaque rôle, en light ET en dark. Des dizaines d'éditions à la main, avec la certitude d'en oublier une.

Couleurs catégorielles

Teintes distinguables pour graphiques, avatars et tags.

1
2
3
4
5
6

Elles ne suivent volontairement pas le contrat de rôle (seulement main + tint) : ce ne sont pas des rôles sémantiques, juste des couleurs qu'on doit pouvoir différencier les unes des autres.