Espaces de noms et chemins pointillés
La règle
Section intitulée « La règle »Le chemin pointillé global d’un jeton = $namespace + le chemin imbriqué à l’intérieur du fichier.
tokens/color.json "$namespace": "color" primary.default.value = "#2B4C7C" → Le chemin complet : color.primary.default
tokens/z-index.json "$namespace": "zIndex" modal.value = 1050 → Le chemin complet : zIndex.modalToutes les références trans-fichiers (ref, les tokenRefs des specs, les then.tokens des cas) doivent être écrites en chemins complets.
Les trois cas de figure des espaces de noms
Section intitulée « Les trois cas de figure des espaces de noms »1. Par défaut : déduction à partir du nom du fichier
Section intitulée « 1. Par défaut : déduction à partir du nom du fichier »En l’absence de déclaration de $namespace, l’espace de noms est déduit du nom du fichier, découpé selon les - (namespaceFromFileName) : la première partie est conservée telle quelle, et chaque partie suivante voit sa première lettre mise en majuscule.
| Nom du fichier | Résultat de la déduction |
|---|---|
color.json |
color |
z-index.json |
zIndex |
typography.json |
typography |
color-dark.json |
colorDark (la valeur déduite, mais en pratique inutilisée) |
La déduction n’est qu’un repli — les fichiers sombres déclareront toujours explicitement un $namespace aligné avec celui du fichier clair (voir ci-dessous).
2. La déclaration explicite
Section intitulée « 2. La déclaration explicite »$namespace est écrit directement :
{ "$namespace": "zIndex", "modal": { "value": 1050 } }Le fichier sombre doit déclarer explicitement le même $namespace que le fichier clair, sinon les clés de surcharge ne retomberaient pas sur le même chemin :
{ "$namespace": "color", "$dark": true, "primary": { "default": { "value": "#3D649E" } } }C’est ainsi que la surcharge sombre de color.primary.default peut être fusionnée correctement sur le même chemin que la clé claire.
3. La chaîne vide : les clés de premier niveau sont les espaces de noms
Section intitulée « 3. La chaîne vide : les clés de premier niveau sont les espaces de noms »components.json déclare "$namespace": "", si bien que les clés de premier niveau sont les espaces de noms des composants, et les chemins complets sont directement button.height.medium, input.borderRadius :
{ "$namespace": "", "$type": "dimension", "button": { "height": { "medium": { "value": "40px" } } }}Les effets concrets des espaces de noms
Section intitulée « Les effets concrets des espaces de noms »dist/docs/tokens.mdest découpé en sections##par espaces de noms de premier niveau (button / color / motion / zIndex …)- L’étape resolve fait la détection des doublons sur les chemins complets : un même chemin apparaissant dans deux fichiers clairs lève directement une erreur
- La fusion du mode sombre fait correspondre les clés de surcharge sur les chemins complets
- Chaque cible construit la structure imbriquée en découpant le chemin en segments (Android
object Color, Swiftenum Color, CLH_COLOR_*)
Un exemple complet
Section intitulée « Un exemple complet »color.primary.active ← color.jsonbutton.height.medium ← components.json (l'espace de noms est la chaîne vide)typography.fontSize.base ← typography.jsonzIndex.modal ← z-index.json (explicite)motion.easing.easeInOut ← motion.json (imbrication de groupes)La page Référence des jetons permet de parcourir tous les jetons par espace de noms.
Copyright © 2024-2026 FengMo WenXue