Qui n'a jamais galéré avec un select ou une checkbox en CSS ? Ces éléments natifs du HTML ont toujours eu un comportement particulier : ils résistent au style. Les navigateurs leur appliquent leurs propres règles visuelles, souvent impossibles à écraser complètement sans JavaScript ou des hacks peu élégants.
La propriété CSS appearance existe depuis un moment, mais elle était surtout utilisée avec la valeur none, ce qui supprime le style natif du navigateur mais te laisse avec un élément souvent cassé visuellement, qu'il faut reconstruire entièrement. Ce n'était pas vraiment une solution, c'était un effacement.
La vraie nouveauté dans les spécifications CSS récentes, c'est la valeur base pour appearance. Contrairement à none, base ne supprime pas le style natif brutalement, elle fournit une base neutre et standardisée sur laquelle on peut vraiment construire un style cohérent. L'élément reste fonctionnel et accessible, mais il devient stylable.
Ce qui m'intéresse dans cette évolution, c'est ce qu'elle dit sur la direction prise par le CSS. Depuis quelques années, le langage intègre des fonctionnalités qui étaient auparavant réservées à JavaScript ou aux bibliothèques tierces : variables CSS, container queries, et maintenant un meilleur contrôle sur les éléments natifs.
Pour un développeur qui travaille principalement avec Symfony et Twig, c'est particulièrement utile. Rendre les formulaires générés par Symfony visuellement cohérents sans une couche JS supplémentaire, c'est un gain de simplicité réel.
On n'en est pas encore au point où tous les cas d'usage sont couverts, et la compatibilité entre navigateurs demande encore attention. Mais la direction est claire : le CSS gagne en expressivité, et les formulaires natifs ne sont plus condamnés à rester moches.