В марте команда Tailwind показала первый alpha четвёртой версии. Изменения значительные: новый компилятор, конфигурация переезжает в CSS, подсказки производительности впечатляют. Но это всё ещё alpha. Разбираем, что внутри и когда смотреть всерьёз.
Oxide: новый движок на Rust
Главное под капотом - переписанный на Rust компилятор Oxide. По цифрам команды: full build быстрее в 5 раз, incremental - в 100 раз, hot reload - почти мгновенно. На наших тестовых проектах подтверждаем: dev-цикл ощутимо живее.
CSS-first конфигурация
tailwind.config.js больше не нужен. Темы, цвета, breakpoints, custom utilities - всё описывается прямо в CSS через @theme и @utility. Похоже на то, как работают современные дизайн-системы с native CSS variables.
Это убирает целый слой JS-конфигурации, что приятно для интеграции с не-JS бэкендами (Rails, Django, Phoenix). Но для существующих проектов с разветвлённым tailwind.config.js это означает миграцию.
Container queries и colour-mix как граждане первого сорта
@container, color-mix, oklch - поддерживаются нативно, без plugin. Современный CSS наконец доступен из tailwind-классов без обходных путей.
Что нас беспокоит
- Это всё ещё alpha. К моменту публикации API ещё двигается, breaking changes возможны.
- Многие плагины экосистемы (typography, forms, daisyUI) не успели обновиться.
- Нужно браузерное окружение с поддержкой современного CSS - IE11 уже забыли, но iOS Safari иногда удивляет.
- Документация под v4 пока тонкая.
Что мы делаем сейчас
На pet-проектах и внутренних инструментах попробовали - нравится. На клиентских - ждём stable. По текущим срокам команды Tailwind, релиз-кандидат - к концу 2024-го. Брать в продакшн будем не раньше середины 2025-го.