Espacement

Le DSFR propose un système de dimension d'espacement et de marge qui s’appuie sur les multiples de 8 (le système “8 point grid”).

Règles d’espacement

Ce système d’espacement permet de garantir une homogénéité, cohérence et consistance des interfaces conçues. Cela dans le but d'améliorer l’UX et de faciliter la conception et le développement.

Nous utilisons des multiples de 4px pour définir les marges, auxquels s’ajoutent les espacements de -6px, -2px, 2px, et 6px afin de gérer tous les cas de figure les plus courants.

Espacement horizontaux

Modélisation des espacements horizontaux

Espacement verticaux

modélisation des espacements verticaux

Dans le code, les espacements sont exprimés en Rem. Voici la correspondance des pixels en Rem.

La nomenclature “v” indique un multiple de 4 et “w” un multiple de 8 (la nomenclature en "w" est dépréciée).

La nomenclature “n” indique un espacement négatif, et la valeur “0” ne requiert pas d'unité.

Correspondance des espacements
Nom (token) Espace en rem Espace en pixel
n8v -2 -32
n7v -1.75 -28
n6v -1.5 -24
n5v -1.25 -20
n4v -1 -16
n3v -0.75 -12
n2v -0.5 -8
n1-5v -0.375 -6
n1v -0.25 -4
n0-5v -0.125 -2
0 0 0
0-5v 0.125 2
1v 0.25 4
1-5v 0.375 6
2v 0.5 8
3v 0.75 12
4v 1 16
5v 1.25 20
6v 1.5 24
7v 1.75 28
8v 2 32
9v 2.25 36
10v 2.5 40
11v 2.75 44
12v 3 48
13v 3.25 52
14v 3.5 56
15v 3.75 60
16v 4 64
17v 4.25 68
18v 4.5 72
19v 4.75 76
20v 5 80
21v 5.25 84
22v 5.5 88
23v 5.75 92
24v 6 96
25v 6.25 100
26v 6.5 104
27v 6.75 108
28v 7 112
29v 7.25 116
30v 7.5 120
31v 7.75 124
32v 8 128

Titres et paragraphes

Les espacements sous les titres et les paragraphes de texte - margin-bottom - sont :

espacements des titres et paragraphes
éléments Token / px / rem
Titres (h1 - h6) 6v / 24px / 1,5rem
Titres alternatifs 8v / 32 px / 2rem
paragraphes de texte (xl - xs) 6v / 24px / 1,5rem

Voir le détail sur la documentation de la Typographie

Règles d’utilisation

Espacement

Chaque partie de l'interface utilisateur doit être intentionnellement conçue, y compris l'espace vide entre les éléments. Les espacements permettent de :

Créer des relations

  • Utilisez des espacements faibles entre plusieurs composants pour signaler qu’ils sont liés, ou font partie d’un même groupe (exemple : champs de formulaire) ;
  • Utilisez des espacements importants pour mettre en évidence un élément indépendant du reste de la page (exemple : call to action).

Créer des hiérarchies

  • Augmentez les espacements autour d’un composant clé de votre page permet d’améliorer sa visibilité.

Classes CSS

Des classes utilitaires sont présentes au sein du DSFR afin de mettre en place ces espacements de manière simplifiée. Il est de ce fait possible par exemple, d’ajouter un espacement en bas d’un bloc de 40 pixels par exemple, en utilisant la classe .fr-mb-10v.

Ces classes existent pour les propriétés de padding et de margin, pour les directions top, right, bottom et left.

Propriété de padding et margin

nomenclature des marges
Valeur possible Diminutif de la valeur Exemple
Margin m fr-m-1v correspond a une marge externe (margin) de 1v sur tous les cotés
Padding p fr-p-1v correspond a une marge interne (padding) de 1v sur tous les cotés

Propriété de direction : top, bottom, right, left

nomenclature des directions
Valeur possible Diminutif de la valeur Exemple
Top t fr-mt-1v correspond a une margin top de 1v
Bottom b fr-mb-1v correspond a une margin bottom de 1v
Left l fr-ml-1v correspond a une margin left de 1v
Right r fr-mr-1v correspond a une margin right de 1v
Top + bottom y fr-my-1v correspond a une margin top et bottom de 1v
Left+right x fr-mx-1v correspond a une margin left et right de 1v
Top + Bottom + Left + Right fr-m-1v correspond a une margin de tous les coté de 1v

Propriété de point de rupture : md

nomenclature du point de rupture
Valeur possible Diminutif de la valeur Exemple
md md fr-mt-md-1v correspond a une margin top de 1v  à partir du point de rupture md.

Valeurs spéciales

nomenclature des valeurs spéciales
Valeur possible Diminutif de la valeur Exemple
négative n fr-m-n1v correspond a une margin négative de tous les cotés de 1v. fr-mb-n1v correspond a une margin bottom négatif de - 1v
nulle 0 fr-m-0 correspond à une marge à 0 de tous les cotés.
auto auto fr-m-auto correspond à une marge "auto" de tous les cotés.
Proposer une amélioration

Aidez-nous à améliorer la documentation en laissant vos retours, questions ou commentaires sur GitHub.