8 points par GN⁺ 2025-07-04 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Jusqu’à présent, la propriété CSS gap permettait de créer des espacements, mais il était impossible de styliser directement la zone du gap ; il fallait donc recourir à diverses méthodes de contournement (éléments supplémentaires, bordures, pseudo-éléments, etc.)
  • La nouvelle fonctionnalité CSS gap decorations permet désormais, via des propriétés comme row-rule, column-rule, etc., de dessiner directement des lignes (séparateurs) entre les éléments d’une mise en page
  • Les décorations peuvent s’appliquer à Grid, Flexbox, Multi-column, et bientôt Masonry, soit tous les grands systèmes de layout, sans markup supplémentaire ni éléments inutiles, avec une amélioration structurelle et visuelle en pur CSS
  • La fonctionnalité prend en charge divers styles (épaisseur, couleur, motif, etc.) ainsi que leur répétition/combinaison, avec un contrôle précis via repeat(), outset, paint-order, etc.
  • Pour l’instant, elle n’est utilisable que sur les navigateurs basés sur Chromium (Chrome/Edge 139+) avec activation d’un flag, la standardisation et l’extension étant encore en cours

Les limites de gap jusque-là, et ce qui change

  • Auparavant, il était difficile de styliser la zone du gap, et il fallait ajouter des bordures de séparation ou de faux éléments
  • Cette approche entraînait plusieurs inconvénients en matière de dimensions du layout, d’accessibilité et de complexité du markup
  • Désormais, le standard gap decorations apparaît et permet d’appliquer des décorations (lignes, etc.) dans les zones d’espacement avec de simples propriétés CSS

Présentation de CSS gap decorations

  • column-rule : déjà utilisé en multi-column pour tracer des séparateurs verticaux (ex. : column-rule: 1px solid black;)
  • Cette propriété peut désormais aussi être utilisée avec flexbox et grid
    .my-grid-container {  
      display: grid;  
      gap: 2px;  
      column-rule: 2px solid pink;  
    }  
    
  • row-rule : permet de tracer des séparateurs entre les lignes (horizontalement)
    .my-flex-container {  
      display: flex;  
      gap: 10px;  
      row-rule: 10px dotted limegreen;  
      column-rule: 5px dashed coral;  
    }  
    
  • Répétition/combinaison de plusieurs styles : repeat() ou une liste séparée par des virgules permettent de mélanger plusieurs styles
    .my-container {  
      display: grid;  
      gap: 2px;  
      row-rule:  
        repeat(2, 1px dashed red),  
        2px solid black,  
        repeat(auto, 1px dotted green);  
    }  
    
  • Propriétés de contrôle fin : row-rule-break, column-rule-break, row-rule-outset, column-rule-outset, gap-rule-paint-order, etc., permettent d’ajuster précisément la position, les intersections et l’ordre de superposition

Exemple : application concrète de gap decorations

  • La page d’exemple définit body en grid et sépare header / nav / main / footer avec des gaps
  • row-rule permet d’appliquer des séparateurs d’épaisseurs, de couleurs et de styles différents
  • Le menu nav utilise flexbox et column-rule pour tracer des lignes entre les éléments
  • La zone main utilise flexbox pour disposer images et texte en style masonry, avec row-rule et column-rule pour accentuer la structure en grille
  • column-rule-outset: 0; et d’autres réglages permettent d’ajuster finement les positions de début et de fin des lignes

Prise en charge navigateur et activation

  • Pour l’instant, il faut activer un flag (about://flags → Experimental Web Platform Features) dans les navigateurs basés sur Chromium comme Chrome/Edge 139+
  • La standardisation officielle est en cours, et les retours ainsi que les expérimentations sont encouragés

Pour aller plus loin et Playground

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.