ADR 003
StatutStatus ActifActive
DateDate 2026-05-28
DécideursDecision makers Design System Lead, Tech Lead

ADR-003 — Choix de Style Dictionary pour la compilation des tokens

Date : 2026-05-28 Statut : ✅ Actif Décideurs : Design System Lead, Tech Lead Type: contract Chemin logique: decisions/ADR-003-style-dictionary.md Lecture avant: AGENTS.md, DESIGN.md, .claude/rules/development.md, decisions/ADR-001-trois-niveaux-tokens.md Relations: style-dictionary/config.json, tokens/primitives.json, tokens/semantic.json, tokens/component.json, .claude/rules/tokens-system.md


Contexte

L'ADR-001 établit que les tokens sont définis en JSON dans trois fichiers sources. Ces fichiers JSON ne sont pas consommables directement par les plateformes cibles :

PlateformeFormat attendu
Web (CSS)Custom Properties --ds-* dans des fichiers .css
JavaScriptConstantes ES6 exportables
iOSClasse Swift DesignTokens
AndroidFichiers XML colors.xml et dimens.xml

La question posée était :

Comment transformer une source de vérité JSON unique en sorties multi-plateformes de manière reproductible, versionnable et automatisable en CI/CD ?

Contraintes :


Décision

Adoption de Style Dictionary (Amazon) comme pipeline de compilation des tokens.

La configuration dans style-dictionary/config.json déclare :

Chaque plateforme dispose de son transformGroup natif — Style Dictionary gère les transformations de nommage, de valeur et de format sans code personnalisé.

Le filtre par attribut level (primitive / semantic / component) permet de générer des fichiers CSS séparés par couche, ce qui évite de charger les tokens primitifs dans les applications qui n'en ont pas besoin.


Alternatives rejetées

AlternativeRaison du rejet
Scripts de transformation maisonMaintenance permanente, aucune gestion des transformations de valeur (px → pt pour iOS, hex → rgba, etc.), pas de support communautaire. Reinventer une roue déjà bien faite.
Theo (Salesforce)Projet en maintenance minimale depuis 2022. Moins de formats de sortie natifs. Communauté significativement plus petite.
DiezArchitecture plus complexe (serveur de tokens, SDK par plateforme). Overkill pour un projet qui veut rester proche des standards W3C. Moins adapté à une intégration CI simple.
Export direct depuis Tokens Studio (Figma)Couplage à Figma comme source de vérité. Rompt la souveraineté numérique — la source devient Figma, pas le repo. Les agents n'ont pas accès à Figma. Pas automatisable sans plugin payant.
Compilation manuelle lors du buildNon reproductible. Chaque développeur obtient des sorties potentiellement différentes selon son environnement. Incompatible avec un CI/CD fiable.

Conséquences

Pour les développeurs :

Pour les agents IA :

du JSON source — un agent peut prédire le nom CSS d'un token à partir de son chemin JSON

Pour la CI/CD :

tokens orphelins, fantômes et valeurs en dur

Pour Figma / Tokens Studio :

la même source de vérité sans duplication

Coût accepté :

nécessitent un transform custom si le comportement par défaut ne suffit pas


Incidents ou déclencheurs

Aucun incident en production. Décision prise lors de la mise en place de l'architecture initiale. Style Dictionary est utilisé par Salesforce, Adobe, GitHub et Shopify pour le même besoin — validation externe suffisante pour écarter le risque d'adoption.

← ADR-002 ADR-004 →