Résumé

  • Le premier projet public CSS Cascade Level 5 du W3C est paru le 19 janvier 2021 avec @layer. Les auteurs pouvaient classer des groupes de règles sans transformer chaque sélecteur en concours de spécificité.
  • Dans le texte devenu Candidate Recommendation Snapshot le 13 janvier 2022, la dernière couche l’emporte entre déclarations ordinaires et la première l’emporte entre déclarations !important. Les règles ordinaires hors couche appartiennent à une couche finale implicite.

Le bouton de la page avait changé de couleur trois fois avant le déjeuner. La feuille de remise à zéro l’avait simplifié; la bibliothèque de composants l’avait habillé; un correctif local lui avait donné une dernière nuance. Le navigateur savait départager les déclarations. L’équipe, elle, ajoutait des classes au sélecteur victorieux, jusqu’à ce qu’une autre règle arrive avec une escorte de classes encore plus longue. Le problème demandait un plan de salle avant le concours d’éloquence.

Le premier projet public du W3C, daté du 19 janvier 2021, a introduit les couches de cascade et la règle @layer. Un auteur peut rassembler les règles dans des groupes dont l’ordre est déclaré. Dans son annonce du premier projet, le groupe CSS du W3C soulignait l’intérêt pratique : organiser ces couches sans changer les sélecteurs, la spécificité au sein de chaque couche ni compter sur l’ordre accidentel des fichiers. La priorité entre familles de styles devient une décision lisible.

Plaçons une remise à zéro dans une couche, une bibliothèque partagée dans une autre, puis les choix du site dans une troisième. Pour des déclarations ordinaires en conflit sur la même propriété, la couche la plus tardive prend le dessus. La spécificité des sélecteurs intervient ensuite dans le tri, une fois cette priorité départagée. Un sélecteur impressionnant dans la première couche peut perdre devant une simple classe placée dans la dernière. La feuille locale obtient une voix claire sans empiler des identifiants et des !important jusqu’au plafond.

Le drapeau !important change le sens de circulation. Parmi les couches, une déclaration importante dans la couche la plus ancienne l’emporte sur une importante placée plus tard. La Candidate Recommendation Snapshot du 13 janvier 2022 inscrit ces deux directions dans l’ordre de cascade : dernière couche gagnante pour les règles ordinaires, première pour les importantes. Avant d’expliquer la couleur finale du bouton, il faut donc savoir dans quelle catégorie se dispute le match.

Les styles qui ne figurent dans aucune couche explicite ont également une place. La version de 2022 les range dans une couche finale implicite; pour les déclarations ordinaires, cette place les fait passer après les couches nommées. Un vieux correctif hors du plan peut encore prendre la parole à la fin. Le projet de travail du 29 août 2021 note que ce traitement des règles sans couche a été modifié pendant l’élaboration. L’histoire évite de lire tous les brouillons de 2021 comme un seul texte figé.

Ce projet d’août documentait aussi revert-layer, qui permet de revenir pour une propriété à la valeur fournie par une couche précédente. Des couches peuvent être imbriquées; des feuilles importées peuvent être affectées à une couche. L’auteur dispose ainsi d’outils pour décrire la relation entre une base commune et des choix particuliers, au lieu de demander à chaque nouveau sélecteur de renégocier toute la hiérarchie du site.

L’historique de publication du W3C suit les projets de 2021 jusqu’au jalon de janvier 2022. La cascade reste un mécanisme de résolution des conflits, et la spécificité conserve son travail à l’intérieur d’une couche. Ce qui change, c’est la manière dont une équipe annonce les priorités entre sa bibliothèque, ses composants et ses retouches locales.

À la fin, le bouton a toujours une seule couleur. Seulement, lorsque quelqu’un demande pourquoi, l’équipe peut montrer le plan de salle. Elle n’a plus besoin de retrouver le collègue qui a crié le plus fort dans le fichier du vendredi.