Publication en open source de l’avancement de Tailwind CSS v4.0
(tailwindcss.com)- Un nouveau moteur haute performance, Oxide, est en cours de développement pour Tailwind CSS v4.0.
- Il est conçu pour simplifier l’expérience développeur et tirer parti des dernières évolutions de la plateforme web.
- Initialement prévu pour une sortie dans une release v3.x, il a finalement été décidé de le lancer comme une nouvelle génération du framework avec v4.0.
- Le projet en est encore à ses débuts et il reste beaucoup de travail, mais une première version alpha publique a été taguée pour permettre de commencer les expérimentations.
Un nouveau moteur, conçu pour la vitesse
- Le nouveau moteur a été entièrement réécrit depuis zéro et offre plus de rapidité avec moins de code.
- Il permet des temps de build jusqu’à 10 fois plus rapides ; le site de Tailwind CSS peut être buildé en 105 ms et le kit UI Catalyst en 55 ms seulement.
- La taille d’installation du nouveau moteur a été réduite de plus de 35 %, tout en intégrant des packages natifs lourds comme Rust et Lightning CSS.
- Rust est utilisé pour prendre en charge les parties les plus coûteuses du framework, tandis que le cœur reste en TypeScript pour préserver l’extensibilité.
- Le nouveau moteur ne dépend que de Lightning CSS.
- Une propre analyseur CSS a été écrit, avec des structures de données conçues pour offrir une vitesse d’analyse 2 fois supérieure à PostCSS.
Une toolchain intégrée
- Tailwind CSS v4 n’est plus simplement un plugin, mais un outil tout-en-un pour traiter le CSS.
- La gestion de
@import, le vendor prefixing, la prise en charge de l’imbrication et plus encore sont intégrés, sans configuration supplémentaire. - Les fonctionnalités CSS modernes comme
oklch()et les plages de media queries sont transformées dans une syntaxe offrant une meilleure compatibilité navigateur. - Un plugin PostCSS continue d’être proposé, mais l’équipe explore aussi les plugins de bundler et fournit un plugin Vite officiel avec la première release alpha.
Conçu pour le web moderne
- Tailwind CSS v4 vise à construire un framework qui restera à la pointe pendant les prochaines années.
- De vraies règles
@layersont utilisées pour résoudre des problèmes de spécificité qui posaient souci auparavant. @propertyest utilisé pour définir clairement les propriétés personnalisées internes et permettre des effets comme les dégradés d’arrière-plan.color-mixfacilite la modification de l’opacité des variables de couleur ou l’ajustement de l’opacité decurrentColor.- Les container queries sont prises en charge directement dans le cœur, avec la prise en charge des plages via les nouveaux variants
@min-*et@max-*.
Des variants composables
- La nouvelle architecture permet de composer ensemble des variants qui s’appliquent à différents sélecteurs.
- Dans les versions précédentes, des variants comme
group-has-*étaient définis explicitement dans le framework ; désormais,group-*peut être composé avec le varianthas-*existant.
Détection de contenu zéro configuration
- Dans la release alpha initiale, il n’est pas possible de configurer les chemins
content, et pour la plupart des projets il ne sera plus nécessaire de le faire. - Si vous utilisez le plugin PostCSS ou la CLI, Tailwind parcourt l’ensemble du projet pour trouver les fichiers de template.
- Si vous utilisez le plugin Vite, il s’appuie sur le graphe de modules pour savoir précisément quels fichiers sont réellement utilisés.
Une configuration pensée CSS avant tout
- L’un des objectifs majeurs de Tailwind CSS v4.0 est de faire en sorte que le framework paraisse natif au CSS, et non comme une bibliothèque JavaScript.
- Après installation, il s’ajoute au projet avec une simple instruction CSS
@import. - Au lieu de définir toutes les personnalisations dans un fichier de configuration JavaScript, il utilise des variables CSS.
Ce qui change
- Les breaking changes ne sont pas prises à la légère, mais dans v4 certains éléments sont gérés différemment.
- Les utilitaires non documentés sont supprimés.
- Le plugin PostCSS et la CLI sont désormais fournis sous forme de packages séparés.
- La couleur de bordure par défaut est supprimée.
- Par défaut, l’utilitaire
ringdevient maintenant un anneau de 1 px utilisantcurrentColor.
La roadmap vers v4.0
- Le nouveau moteur a été entièrement réécrit depuis zéro, avec un focus total sur l’expérience développeur autour de la nouvelle approche de configuration.
- La rétrocompatibilité est considérée comme extrêmement importante et constitue un chantier majeur pour une release v4.0 stable.
- Cela inclut la prise en charge des fichiers de configuration JavaScript, la configuration explicite des chemins de contenu, la prise en charge d’autres modes sombre, le support des plugins et des utilitaires personnalisés, la configuration des préfixes de classes, le support des safelists et blocklists, la prise en charge de la configuration
important, le support de la fonctiontheme(), le support d’une CLI autonome, etc.
Essayer la version alpha
- Plusieurs releases alpha ont déjà été taguées, et vous pouvez commencer à expérimenter dans vos projets dès aujourd’hui.
- Si vous utilisez l’extension Tailwind CSS IntelliSense, vous devez passer à la version pre-release depuis la page de l’extension VS Code.
- Si vous découvrez un problème, l’équipe vous invite à le signaler sur GitHub.
Utiliser Vite
- Installez l’alpha de Tailwind CSS v4 ainsi que le nouveau plugin Vite.
- Ajoutez le plugin dans le fichier
vite.config.ts. - Importez Tailwind dans le fichier CSS principal.
Utiliser PostCSS
- Installez l’alpha de Tailwind CSS v4 ainsi que le package séparé du plugin PostCSS.
- Ajoutez le plugin dans le fichier
postcss.config.js. - Importez Tailwind dans le fichier CSS principal.
Utiliser la CLI
- Installez l’alpha de Tailwind CSS v4 ainsi que le package CLI séparé.
- Importez Tailwind dans le fichier CSS principal.
- Compilez le CSS à l’aide de l’outil CLI.
L’avis de GN⁺
- La publication en open source de Tailwind CSS v4.0 donne à la communauté de développeurs l’occasion de découvrir en avance de nouvelles fonctionnalités et améliorations. Cela signifie aussi que les développeurs peuvent fournir du feedback sur le framework et contribuer à une release finale plus stable.
- Les gains de performance du nouveau moteur semblent réduire fortement les temps de build, ce qui devrait être particulièrement utile pour les projets de grande taille ou les environnements où les cycles de développement rapides sont essentiels.
- La combinaison de Rust et de TypeScript reflète une approche moderne visant à concilier performance et extensibilité. Les parties écrites en Rust maximisent les performances, tandis que TypeScript permet aux développeurs d’étendre et de maintenir plus facilement l’ensemble.
- La nouvelle méthode de configuration basée sur des variables CSS est plus proche de CSS que les réglages existants basés sur JavaScript, et pourrait faciliter l’intégration avec les design systems.
- Ces changements pourront demander un certain travail de migration aux utilisateurs existants, mais ils devraient à long terme aboutir à une base de code plus simple et plus facile à maintenir.
2 commentaires
Avis Hacker News
Tailwind CSS est la deuxième meilleure chose qui soit arrivée au frontend, seule Vue 3 le surpasse.
En tant que critique acharné de Tailwind, toutes les annonces autour de la configuration CSS-first sont très bienvenues.
CTRL+u montre bien la qualité de la syntaxe.
Ils n’ont pas encore travaillé sur le CLI autonome, mais il sera impérativement terminé avant la sortie de la v4.0.
Il y a beaucoup d’améliorations prometteuses.
J’aimerais que Tailwind prenne en charge l’attributify comme unocss.
Je ne suis pas développeur frontend, mais je maintiens quelques sites web, et ils utilisent tous Tailwind.
Je me demande s’il existe un bon tutoriel/guide sur Tailwind.
Je me demande si quelqu’un utilise tailwindcss avec htmx ou une autre approche HATEOAS.
J’ai voulu l’utiliser dans un projet de démo, mais
import from "node:@tailwindcss/postcss@latest"déclenche une erreur liée au champexportsde package.json.postcss-import, tout en l’incluant quand même comme dépendance.