graph TD
Figma["Figma / Tokens Studio"] -->|Export JSON| Src["Source unique de vérité : tokens.json"]
Src --> SD["Style Dictionary Compiler"]
SD -->|Compile| CSS["web: variables.css"]
SD -->|Compile| SCSS["web-build: variables.scss"]
SD -->|Compile| Swift["iOS: DesignTokens.swift"]
SD -->|Compile| Kotlin["Android: DesignTokens.kt"]
style Src fill:#2aa198,color:#fff,stroke:none
style SD fill:#268bd2,color:#fff,stroke:none
style CSS fill:#859900,color:#fff,stroke:none
style SCSS fill:#859900,color:#fff,stroke:none
style Swift fill:#cb4b16,color:#fff,stroke:none
style Kotlin fill:#b58900,color:#fff,stroke:none
Design Tokens & Système de Variables
L’atome de liaison entre Design et Tech
Un design token est un nom symbolique (un alias) qui stocke une valeur graphique brute. C’est le contrat immuable entre le Design et la Tech, éliminant définitivement les valeurs codées en dur (hard-coding).
Pourquoi tokeniser ?
Dans un projet moderne, propager des valeurs brutes comme #268bd2 ou 16px directement dans le code pose trois problèmes majeurs :
- Maintenance complexe : Si l’identité de marque change, il faut traquer et remplacer chaque occurrence.
- Manque d’intention :
#268bd2ne dit pas pourquoi cette couleur est là. Est-ce un bouton principal ? Un lien ? Une bordure d’alerte ? - Incohérence multi-plateforme : Le Web (CSS), iOS (Swift) et Android (Compose) parlent des syntaxes différentes.
Les tokens résolvent ces problèmes en centralisant toutes les décisions de design dans une Source Unique de Vérité (généralement un fichier JSON) et en la compilant automatiquement pour toutes les cibles.
- Consistance : Les mêmes espacements et couleurs sont partagés par toutes les équipes.
- Agilité : Un changement de marque se déploie en quelques minutes sur toutes les applications.
- Thématisation : Le mode sombre ou les thèmes alternatifs se résument à changer un jeu de tokens sémantiques.
Les 3 niveaux de spécificité
Pour assurer flexibilité et maintenance, les design tokens sont organisés en trois niveaux hiérarchiques :
La valeur brute. Il liste tous les choix disponibles dans le système de design, sans leur attribuer de rôle.
Exemple :
color-blue-500\(\rightarrow\)#268bd2spacing-base\(\rightarrow\)16px
L’intention de design. Il donne un rôle à une primitive. C’est ici que réside toute la puissance de thématisation.
Exemple :
color-action-primary\(\rightarrow\){color-blue-500}spacing-layout-padding\(\rightarrow\){spacing-base}
La portée restreinte. Il lie un token sémantique à un composant unique. Il est utilisé pour les micro-ajustements.
Exemple :
button-primary-bg\(\rightarrow\){color-action-primary}card-border-radius\(\rightarrow\)12px
Si vous décidez de passer votre bouton principal en vert pour une campagne, vous changez l’alias color-action-primary sans modifier la primitive color-blue-500. Tout le système s’adapte sans casser la cohérence.
Tokeniser la Couleur, la Typographie et l’Espace
Toutes les propriétés visuelles de l’interface peuvent être tokenisées.
🎨 Les couleurs
Comme vu dans le cours sur les Couleurs, le choix des couleurs s’appuie sur la physique et la perception humaine (CIELAB). En tokenisation, on associe les variations de luminosité (\(L^*\)) à des échelles de primitives numériques (ex: 100 à 900) pour assurer un contraste constant et le respect des normes WCAG.
✍️ La typographie
En complément du cours sur les Polices, la typographie est tokenisée selon ses propriétés clés (familles, graisses, hauteurs de ligne) ou les axes de polices variables (MONO, CASL, wght). On crée des ensembles sémantiques comme font-heading-main.
📏 L’espacement
La grille de 8px étudiée dans le cours sur la Disposition est tokenisée sous forme de multiplicateurs. Plutôt que d’écrire des valeurs arbitraires, on structure l’échelle selon la loi de Gestalt avec des alias simples : spacing-s, spacing-m, spacing-l.
Du Design au Code : Le Pipeline
Comment les tokens passent-ils de Figma au code de production ? C’est le rôle du pipeline de compilation (souvent géré par Style Dictionary d’Amazon).
Atelier interactif : Le Pipeline de Tokens
Modifiez les décisions de design ci-dessous pour voir comment Style Dictionary compile instantanément les tokens pour le Web (CSS, SCSS), iOS (Swift) et Android (Jetpack Compose).
// En attente de compilation.../* En attente de compilation... */// En attente de compilation...// En attente de compilation...// En attente de compilation...