Liquid

Un gabarit en Grid Layout

Liquid est le nom d'un agencement réalisé en CSS Grid Layout compatible avec l'affichage de blocs qui "sortent" de la maquette, généralement appelés full-bleed, breakout, hero ou splash.

Caractéristiques du gabarit .liquid :

Un élément de classe .splash déborde de la zone de contenu et occupe toute la surface :
.splash {grid-column: liquid-start / liquid-end;}

Son contenu s'aligne sur la zone de contenu générale.

Les variantes .splash-start et .splash-end permettent de placer les enfants d'un côté ou de l'autre de la surface.

Un élément de classe .splash-start se place au début de la surface :
.splash-start {grid-column: liquid-start / content-end;}

Un élément de classe .splash-end se place à la fin de la surface :
.splash-end {grid-column: content-start / liquid-end;}

Les variantes .splash-half-start et .splash-half-end permettent de placer les enfants d'un côté ou de l'autre de la surface, de part et d'autre du milieu de page.

Un élément de classe .splash-half-start se place au début de la surface et s'arrête en milieu de page :
.splash-half-start {grid-column: liquid-start / half;}

Un élément de classe .splash-half-end débute en milieu de page et termine au fin de la surface :
.splash-half-end {grid-column: half / liquid-end;}

.liquid {
  --liquid-spacer: 2rem;
  --liquid-content: 1024px;

  display: grid;
  grid-template-columns:
   [liquid-start] minmax(var(--liquid-spacer), 1fr)
   [content-start] minmax(auto, calc(var(--liquid-content) / 2))
   [half] minmax(auto, calc(var(--liquid-content) / 2))
   [content-end] minmax(var(--liquid-spacer), 1fr)
   [liquid-end];
}

Comment ça marche ?

TL;DR: Affichez la grille.

La grille principale contient tous les éléments et est découpée en quatre colonnes :

Ressources

minmax(var(--liquid-spacer), 1fr) minmax(var(--liquid-spacer), 1fr)
minmax(auto, calc(var(--liquid-content) / 2)) minmax(auto, calc(var(--liquid-content) / 2))