Espacement
Une échelle d'espacement fixe pour garantir la cohérence des marges, paddings et gaps entre tous les composants et pages.
Règle fondamentale
On n'utilise que les valeurs de l'échelle, jamais de valeurs intermédiaires comme 10px ou 18px.
padding: 10px 18px
Valeurs hors échelle
padding: var(--ds-space-8) var(--ds-space-16)
Tokens de l'échelle
L'échelle est basée sur des multiples de 4, c'est le standard de l'industrie (Material, Atlassian, Carbon). Chaque valeur a un rôle précis. Même usage = même token.
Échelle d'espacement
6 valeurs disponibles, de 4px à 48px. Chacune correspond à un usage spécifique.
Do & Don't
-
Utiliser uniquement
var(--ds-space-*) - Même usage = même token sur tous les produits
-
Combiner deux tokens pour des besoins composés (
space-8 space-16) -
Utiliser
gapplutôt quemargindans les layouts flex/grid - Choisir le token en fonction du rôle, pas de la valeur visuelle
-
Utiliser
margin: 10pxou toute valeur hors échelle -
Inventer une valeur intermédiaire comme
12pxou20px -
Mélanger
marginetgapsans cohérence -
Utiliser
padding: 0pour compenser un mauvais espacement parent - Choisir un token différent pour le même usage selon le composant
Règles
Utiliser uniquement les valeurs de l'échelle. Éviter les valeurs intermédiaires comme 10px, 18px...
Même usage = même spacing. Un padding de card est toujours --ds-space-24.
Préférer gap à margin dans les layouts flex et grid, plus prévisible et sans effets de collapse.
Un composant ne gère que son espacement interne. L'espacement entre composants appartient au layout parent.