Design system, i18n et la recette visuelle
Les tokens : une seule source de vérité visuelle
Le principe appliquĂ© sur cette plateforme (et sa refonte lumineuse en une heure le prouve) : aucune couleur, espacement ou rayon en dur dans les composants â tout vit en CSS custom properties (--c-primary, --sp-4, --radius-md). Un composant consomme des tokens ; un thĂšme est un jeu de valeurs. Changer d'identitĂ© visuelle = changer un fichier ; le mode sombre = un data-theme qui rebinde les mĂȘmes noms.
Au-dessus des tokens, la hiĂ©rarchie atomic design dĂ©jĂ croisĂ©e : atoms â molecules â organisms, avec la rĂšgle d'accĂšs (stores/API rĂ©servĂ©s aux Ă©tages hauts). Le projet copilot utilise NuxtUI + Tailwind 4 â mĂȘmes principes, bibliothĂšque industrialisĂ©e : on configure le thĂšme, on compose les composants fournis, on ne rĂ©invente pas un datepicker.
i18n : la discipline du jour 1
La leçon apprise sur les deux projets : l'internationalisation ne se rattrape pas, elle se commence. Les rÚgles :
- zéro chaßne UI en dur : tout passe par
t('quiz.check')â et cette plateforme a un test qui Ă©choue si les locales fr/en divergent (la symĂ©trie des clĂ©s, vĂ©rifiĂ©e en CI) ; - la locale du contenu est indĂ©pendante de la locale de l'UI (un cours de khmer dans une UI française) â deux axes, pas un ;
- les pluriels, dates et nombres passent par les API i18n (
{n} résultat(s)géré par la lib, pas par desif).
La recette visuelle : l'Ćil outillĂ©
Le maillon final observĂ© dans l'Ă©quipe copilot : le design se recette comme le code. Des tickets de retours visuels prĂ©cis (« palette fuchsia non conforme », « gap + position toggle »), des specs avec maquettes opposables, et des suites E2E qui verrouillent les parcours â pendant que la revue visuelle humaine se concentre sur ce que les tests ne voient pas : la cohĂ©rence, le rythme, le ressenti. Le design system rĂ©duit drastiquement la surface de cette recette : un composant corrigĂ© est corrigĂ© partout.
« Aucune couleur en dur dans les composants » permetâŠ