API Sass & référentiel des classes¶
Gridaflex s'utilise de deux façons, documentées sur cette page :
- le référentiel des classes utilitaires (ci-dessous), pour composer une grille directement dans le HTML ;
- l'API Sass (mixins & fonctions), pour bâtir une grille sémantique dans vos propres sélecteurs.
Anatomie : 3 niveaux d'éléments¶
Une grille Gridaflex s'imbrique toujours en trois niveaux. Chaque classe vit sur l'élément de son niveau : une taille (desktop-4) sur une cellule, une gouttière (flex-gap-x) sur le groupe, jamais l'inverse.
Conteneur Groupe Cellule Tout élément
<div class="flex-container"> <!-- Conteneur : largeur max + centrage -->
<div class="flex-x flex-gap-x align-middle"> <!-- Groupe : direction + gouttière + alignement -->
<div class="cell phone-12 desktop-4">…</div> <!-- Cellule : taille responsive -->
<div class="cell phone-12 desktop-8">…</div>
</div>
</div>
Conventions de lecture
[bp]= un de vos breakpoints (phone,desktop, … selon$breakpoint-classes).[n]= un entier de1à$flex-columns(12 par défaut).{size}= une taille nommée de$gutters/$padding-gutters(sm,lg, …).
Référentiel des classes¶
Conteneur¶
À poser sur l'élément englobant. Optionnel (un groupe peut occuper toute la largeur sans conteneur).
| Classe | Effet |
|---|---|
flex-container |
Largeur max ($flex-container) + centrage horizontal |
flex-container fluid |
Conteneur pleine largeur (annule la max-width) |
flex-container full |
Pleine largeur sans padding latéral |
Groupe¶
À poser sur flex-x / flex-y : direction, gouttières, alignement du contenu, block grid.
| Catégorie | Classe(s) | Effet |
|---|---|---|
| Direction | flex-xflex-y |
Groupe horizontal (lignes) vertical (colonnes) |
| Gouttière : gap | flex-gap-xflex-gap-yflex-gap-xy |
column-gaprow-gaples deux |
flex-gap-{size}-x/y/xy |
Gap d'une taille nommée (ex. flex-gap-sm-x) |
|
[bp]-flex-gap[-{size}]-x/y/xy |
Gap appliqué à partir d'un breakpoint | |
flex-margin-x/y/xy |
Alias de compatibilité de flex-gap-* |
|
| Gouttière : padding | flex-padding-x-y-xy |
Padding interne des cellules (indépendant du gap) |
flex-padding-{size}-*[bp]-flex-padding[-{size}]-* |
Taille nommée variante responsive |
|
| Suppression | [bp]-gap-collapse |
Annule les gouttières à partir d'un breakpoint (alias [bp]-margin-collapse) |
[bp]-padding-collapse |
Annule le padding interne | |
| Alignement horizontal | align-leftalign-rightalign-centeralign-justifyalign-spaced |
justify-content du contenu |
| Alignement vertical | align-topalign-middlealign-bottomalign-stretch |
align-items du contenu |
| Combiné | align-center-middle |
Centre sur les deux axes |
| Block grid | [bp]-up-[n] |
n cellules par ligne (l'alternative au dimensionnement cellule par cellule) |
| Frame (plein écran) | flex-frame[bp]-flex-frame |
Groupe 100 vh sans débordement (layout type application) |
cell-block-container[bp]-cell-block-container |
Conteneur transmettant les contraintes de hauteur |
Gap vs Padding
Les deux sont indépendants et cumulables : flex-gap-xy espace les cellules entre elles, flex-padding-y ajoute du padding à l'intérieur de chaque cellule. Voir Gouttières & axes.
Cellule¶
À poser sur cell : taille, décalage, ordre, alignement individuel.
| Catégorie | Classe(s) | Effet |
|---|---|---|
| Base | cell |
Élément de grille (obligatoire) |
| Taille | [bp]-[n] |
Largeur = n / $flex-columns (ex. phone-12, desktop-4), gap-aware |
| Largeur automatique | auto[bp]-auto |
Absorbe l'espace restant |
shrink[bp]-shrink |
Se réduit à son contenu | |
| Décalage | [bp]-offset-[n] |
Pousse la cellule de n colonnes vers la droite |
| Ordre | [bp]-order-[n] |
Réordonne visuellement (order), n de 0 à $flex-columns |
| Alignement individuel | align-self-top-middle-bottom-stretch |
align-self de cette seule cellule |
| Zone scrollable | cell-blockcell-block-y (+ [bp]-) |
Cellule défilante (avec flex-frame) |
Tout élément¶
Utilitaires indépendants de la grille, posables sur n'importe quel élément.
| Catégorie | Classe(s) | Effet |
|---|---|---|
| Visibilité responsive | show-for-[bp]hide-for-[bp] |
Afficher / masquer à partir d'un breakpoint |
show-for-[bp]-onlyhide-for-[bp]-only |
…sur la plage exacte du breakpoint | |
show-for-landscapeshow-for-portrait (+ hide-) |
Selon l'orientation | |
| Visibilité simple | hideinvisiblevisible |
display:nonevisibility:hiddenvisible |
| Helpers flex bruts | flex-box (+ [bp]-) |
display:flex |
flex-dir-row/-row-reverse/-column/-column-reverse (+ [bp]-) |
flex-direction |
|
flex-child-auto/-grow/-shrink (+ [bp]-) |
Raccourcis flex sur un enfant |
Voir aussi : La grille, Breakpoints & responsive, Visibilité, Alignement & ordre.
API Sass¶
Toutes les classes ci-dessus sont construites à partir de ces mixins, que vous pouvez aussi utiliser pour bâtir une grille sémantique (sans classes utilitaires dans le HTML).
Mixins¶
| Mixin | Niveau | Rôle |
|---|---|---|
xy-flex-container($width, $padding) |
Conteneur | Conteneur max-width centré |
xy-flex($direction, $wrap) |
Groupe | Conteneur flex (horizontal / vertical) |
xy-flex-margin($axis, $gutters) |
Groupe | Gouttières gap, $axis : x / y / xy |
xy-flex-padding($axis, $gutters) |
Groupe | Gouttières en padding interne |
xy-flex-layout($n, $selector, $vertical) |
Groupe | Block grid sémantique (N par ligne) |
xy-flex-frame($vertical, $nested) |
Groupe | Comportement « frame » 100 vh |
flex-align($x, $y) |
Groupe | Alignement du contenu |
xy-cell($size, $vertical) |
Cellule | Cellule complète (base + taille) |
xy-cell-size($size, $vertical) |
Cellule | Largeur/hauteur (gap-aware) |
xy-cell-base($size) |
Cellule | Propriétés flex de base |
xy-cell-offset($n, $vertical) |
Cellule | Décalage d'une cellule |
flex-align-self($y)flex-order($n) |
Cellule | Alignement individuel ordre |
xy-cell-block($vertical)xy-cell-block-container |
Cellule | Zones scrollables |
breakpoint($value…) |
Tout | Media query (named, px/rem/em, only/down/up, orientation, hidpi) |
show-for($bp)hide-for($bp)*-only |
Tout | Visibilité responsive |
Compatibilité : xy-grid-*
Les mixins historiques de Foundation (xy-grid, xy-grid-container, xy-grid-margin, xy-grid-padding, xy-grid-layout, xy-grid-frame) restent disponibles en alias dépréciés des xy-flex-*. Le nommage xy-flex est à privilégier dans les nouveaux développements.
Fonctions¶
| Fonction | Retour |
|---|---|
xy-cell-size($size) |
Pourcentage d'une taille (ex. 50%) |
gx-fraction($size) |
Fraction 0..1 (accepte 6, 50%, 1 of 2) |
gx-gap-x-var()gx-gap-y-var() |
Référence var(--flex-gap-x) / var(--flex-gap-y) |