Le displayType "grid"
Props spécifiques au grid#
Les props propres au displayType="grid" sont les suivantes, et sont donc sans effet en displayType="flex" :
| Props | Type ou valeurs autorisées | Valeur par défaut |
|---|---|---|
| gridTemplateColumns | string | none |
| gridTemplateRows | string | none |
| gridGap | none, xs, sm, md, lg, xl | none |
- La props
gridTemplateColumnspermet de remplir la propriété CSSgrid-template-columns: pour créer une grille de 4 colonnes dont la première doit prendre le plus d'espace possible (sans écraser les 3 autres colonnes), on pourra donc définirgridTemplateColumns="1fr auto auto auto". Plus de détails sur la propriété CSSgrid-template-columns. - La props
gridTemplateRowspermet de remplir la propriété CSSgrid-template-rows: pour créer une grille de 3 lignes dont la dernière doit prendre le plus d'espace possible (sans écraser les 2 autres lignes), on pourra donc définirgridTemplateRows="auto auto 1fr". Plus de détails sur la propriété CSSgrid-template-rows. - La props
gridGappermet de remplir la propriété CSSgap: voir la doc sur le GridGap pour plus de détails.
Alignement des enfants#
Une fois votre grille créée, il est indispensable de réfléchir à l'alignements des enfants à l'intérieur de leurs "cellules" respectives. Les enfants peuvent être alignés sur deux dimensions :
- Sur l'axe horizontal (x) avec
justifyItems, qui permet de remplir la propriété CSSjustify-items; - Sur l'axe vertical (y) avec
alignItems, qui permet de remplir la propriété CSSalign-itemscommune audisplayType="flex".
| Props | Type ou valeurs autorisées | Valeur par défaut |
|---|---|---|
| justifyItems | stretch, center, start, end | center |
| alignItems | stretch, center, flex-start, flex-end, baseline | flex-start |
Les valeurs du justifyItems#
- Le
stretchétire l'enfant sur toute la largeur de la cellule. - Le
centercentre horizontalement l'enfant dans la cellule. - Le
startplace l'enfant sur la gauche de la cellule. - Le
endplace l'enfant sur la droite de la cellule.
Les valeurs du alignItems#
- Le
stretchétire l'enfant sur toute la hauteur de la cellule. - Le
centercentre verticalement l'enfant dans la cellule. - Le
flex-startplace l'enfant en haut de la cellule. - Le
flex-endplace l'enfant en bas de la cellule. - Le
baselinealigne les enfants à partir du texte qu'ils contiennent : avec des textes de différentes tailles, cette propriété est particulièrement utile pour que les différents textes semblent placés sur une même ligne de lecture.
caution
Ne pas confondre la props alignItems citée ci-dessus (qui contrôle l'alignement des enfants) avec la props align tout court (qui contrôle l'alignement de tout le composant InternalGrid par rapport à son parent).
Exemples#
InternalGrid en justifyItems="center"#
Il s'agit de la valeur par défaut du justifyItems.
Démo 🎉#
Tyrion
Cersei
Jaime
Jon
Daenerys
Targaryen
Code ⌨️#
InternalGrid en justifyItems="stretch"#
Démo 🎉#
Tyrion
Cersei
Jaime
Jon
Daenerys
Targaryen
Code ⌨️#
InternalGrid en alignItems="baseline"#
Démo 🎉#
Tyrion
Cersei
Jaime
Jon
Daenerys
Targaryen