CSS as a Query Language
L'article explore l'idée d'utiliser CSS comme langage de requête ou même de programmation générale, au-delà du simple rendu de pages web. Il rappelle les principes de base de CSS : des sélecteurs décrivent des ensembles d'éléments et des déclarations appliquent des propriétés, mais ces propriétés ne peuvent pas être interrogées pour influencer d'autres sélecteurs. Le texte propose un concept appelé CSSLog dans lequel les règles peuvent modifier l'état du DOM (par exemple ajouter des classes), provoquer l'activation d'autres règles et s'exécuter récursivement jusqu'à atteindre un point fixe, ce qui permettrait d'exprimer proprement des cas comme la propagation transitive d'un état «effectively-dark» interrompue par des bornes explicites. L'auteur établit une analogie avec Datalog en montrant que les règles logiques dérivent de nouveaux faits par itération jusqu'à un fixpoint selon une évaluation naïve et que la monotonicité garantit la terminaison, rapprochant ainsi la sémantique des règles logiques de celle des sélecteurs CSS. Il conclut que, malgré les limites pratiques et les précautions des navigateurs pour éviter des boucles infinies (comme dans les container queries), une piste intéressante serait de superposer une syntaxe CSS sur un moteur Datalog adapté aux données arborescentes pour obtenir un langage récursif et ergonomique pour les requêtes et transformations.