Fin 2023, les trois principaux moteurs de rendu ont terminé de s’aligner sur la prise en charge native de l’imbrication CSS, une fonctionnalité jusque-là réservée aux préprocesseurs comme Sass. Pour une feuille de style de galerie produit WooCommerce, souvent volumineuse à force d’accumuler des variantes d’affichage, cette nouveauté change concrètement la façon d’organiser le code.
Voici ce que cela change, classé par impact réel plutôt que par ordre d’apparition dans la spécification.
Impact fort : la fin de la répétition du sélecteur parent
Une feuille de style de galerie produit sans préprocesseur répète en général le même sélecteur parent pour chacune de ses variantes d’état :
.galerie-produit { display: grid; gap: 1rem; }
.galerie-produit .miniature { border-radius: 4px; }
.galerie-produit .miniature:hover { opacity: 0.85; }
.galerie-produit .miniature.active { border: 2px solid var(--couleur-accent); }
Avec l’imbrication native, ce même bloc s’écrit en une seule structure, ce qui réduit d’autant le nombre de lignes consacrées à la seule répétition du sélecteur parent :
.galerie-produit {
display: grid;
gap: 1rem;
& .miniature {
border-radius: 4px;
&:hover {
opacity: 0.85;
}
&.active {
border: 2px solid var(--couleur-accent);
}
}
}

Impact moyen : une meilleure lisibilité des variantes responsives
Sur un thème enfant qui décline sa galerie selon plusieurs largeurs d’écran, l’imbrication native permet aussi de placer une requête média directement à l’intérieur du bloc concerné, plutôt que de la dupliquer plus loin dans le fichier :
.galerie-produit {
grid-template-columns: repeat(2, 1fr);
@media (min-width: 768px) {
grid-template-columns: repeat(4, 1fr);
}
}
Ce regroupement rapproche la règle responsive de la règle de base qu’elle modifie, ce qui facilite la lecture d’un fichier volumineux sans avoir à chercher plus loin la déclinaison correspondante.
Impact faible, mais réel : la disparition d’une étape de compilation
Sur un thème enfant qui n’utilisait Sass que pour cette seule fonctionnalité d’imbrication, sans variables ni fonctions avancées, la CSS nesting native permet de retirer entièrement l’étape de compilation du flux de travail, ce qui simplifie la maintenance à long terme d’un projet, notamment lorsqu’un futur intervenant ne dispose pas nécessairement de l’outillage de compilation d’origine sur son poste.
Le point de vigilance principal
La syntaxe d’imbrication native est plus stricte que celle de Sass sur un point précis : un sélecteur imbriqué qui commence par un identifiant de type élément, par exemple span directement sous &, doit être précédé du symbole & explicite dans certains contextes pour éviter une ambiguïté avec une déclaration de propriété. Un point-virgule oublié en fin de bloc imbriqué ne provoque pas toujours une erreur visible dans les outils de développement, mais peut faire échouer silencieusement le reste de la règle CSS qui suit.
Vérification recommandée avant migration
- Valider chaque fichier migré avec l’outil d’inspection du navigateur plutôt qu’à l’œil, pour repérer une règle silencieusement ignorée.
- Conserver une version compilée par préprocesseur en parallèle le temps de la migration, pour comparer visuellement les deux rendus.
- Migrer fichier par fichier plutôt que la feuille de style entière en une seule fois, afin d’isoler rapidement une régression éventuelle.
Une remarque sur les sélecteurs composés
Un autre écart mérite attention : lorsqu’un sélecteur imbriqué doit cibler simultanément l’élément parent et un état, par exemple pour styler la galerie elle-même quand elle contient une miniature active, la syntaxe native impose d’utiliser explicitement & combiné au sélecteur :has() plutôt qu’une simple concaténation, faute de quoi la règle est simplement ignorée par l’analyseur CSS sans message d’erreur visible :
.galerie-produit {
&:has(.miniature.active) {
border-color: var(--couleur-accent);
}
}
Ce type de détail, mineur en apparence, explique une bonne part des règles qui « ne s’appliquent pas » lors d’une première migration, alors que le fichier ne comporte aucune erreur de syntaxe au sens strict.
En résumé
Cette nouveauté ne change rien au rendu final d’une galerie produit correctement construite, mais elle change beaucoup à la façon dont son code se maintient dans le temps. Pour un thème enfant volumineux, c’est un gain de lisibilité mesurable, à condition de migrer progressivement et de vérifier chaque bloc plutôt que de faire confiance à un simple copier-coller depuis l’ancienne syntaxe.