TailwindPHP
TailwindPHP — это 1:1-порт TailwindCSS 4.x для PHP. Он анализирует ваш CSS, сканирует разметку в поисках имен классов и генерирует утилитный CSS, который создает TailwindCSS v4.3.3, — полностью в PHP, без Node.js и этапа сборки.
- Чистый PHP — поставляется как пакет Composer и работает на PHP 8.2+ со стандартными расширениями
ctypeиmbstring. Безexec, FFI и инструментов нативной сборки. - Проверен на TailwindCSS — утилиты, варианты, директивы и функции CSS соответствуют TailwindCSS v4.3.3. Результат проверяется с помощью собственных наборов тестов Tailwind, извлеченных из исходного кода TypeScript и повторно запускаемых при каждом обновлении (более 4,400 тестов). Известные различия (несколько деталей сериализации без влияния на каскад, а также открытые вопросы) перечислены в разделе Совместимость и обновление.
- Полный набор функций — весь набор утилит TailwindCSS v4.3.3 (включая
container, утилиты полосы прокрутки,zoom-*иtab-*), все варианты (hover, focus, адаптивность, темный режим, запросы контейнеров, произвольные значения) и полный набор директив:@import,@theme,@apply,@utility,@variant,@custom-variant,@layer,@pluginи@source. - Все включено —
cn(),merge(),join()иvariants()включают PHP-порты clsx, tailwind-merge и CVA, поэтому нужные каждому проекту Tailwind сопутствующие библиотеки уже входят в комплект. - Плагины —
@tailwindcss/typographyи@tailwindcss/formsперенесены полностью, а PHP плагин API позволяет создавать собственные.
Зачем нужен TailwindPHP
TailwindCSS написан на TypeScript и работает на Node.js. Это обязательное условие для любого проекта PHP, которому нужен Tailwind: дополнительная среда выполнения, установка npm и этап сборки в CI и Docker. Для многих приложений PHP такие сложности нежелательны.
TailwindPHP устраняет эту необходимость. Ваш код PHP компилирует Tailwind CSS напрямую, используя только стандартную библиотеку. Это открывает возможности, которые сложно или невозможно реализовать с цепочкой инструментов JavaScript:
- Фреймворки WordPress и PHP — поставляйте темы и плагины на основе Tailwind, не требуя от пользователей устанавливать Node.js или запускать сборку. Просто выполните
composer requireи приступайте. См. TailwindWP — пример плагина WordPress, который создает CSS редактора блоков с помощью TailwindPHP. - CSS во время выполнения — генерируйте утилитный CSS на лету из пользовательского ввода, данных базы данных или переменных шаблона, а не во время сборки.
- Более простое развертывание — без Node.js в продакшене, этапа сборки в CI и npm в образе Docker.
Та же идея, которую scssphp реализовал для SCSS: полный компилятор на PHP.
Возможности
- Компилирует набор утилит TailwindCSS v4.3.3, варианты и произвольные значения из имен классов, найденных в вашем содержимом.
- Обрабатывает полный набор директив:
@import(включая виртуальные модули, такие какtailwindcssиtailwindcss/utilities, а также импортыreference),@theme,@apply,@utility,@variant,@custom-variant,@layer,@pluginи@source. - Реализует функции CSS из Tailwind —
theme(),--theme(),--spacing()и--alpha(), — а также преобразованиеcolor-mix()→oklab()и трансформации CSS, которые TailwindCSS делегирует LightningCSS. - Разрешает
@importиз файловой системы с вложенными импортами, устранением дубликатов и пользовательскими резолверами либо из встроенных строк CSS. - Поставляется с Preflight (базовым сбросом Tailwind), поддержкой префиксов, фолбэками
@property, добавлением вендорных префиксов и выносом ключевых кадров. - Включает
cn(),merge(),join()иvariants()/compose()для построения имен классов, разрешения конфликтов и вариантов компонентов. - Включает плагины типографики и форм, а также плагин API (
addUtilities,matchUtilities,addComponents,addVariant,theme, …) для пользовательских плагинов. - Предоставляет CLI (
bin/tailwindphp) с параметрами сборки@tailwindcss/cli, кэширование файлового вывода, постоянный кэш состояния компилятора и минификатор CSS для production-среды.
Чем merql не является
TailwindPHP — компилятор CSS, а не набор инструментов для редактора. В нем намеренно отсутствуют средства для IDE из экосистемы Tailwind — IntelliSense, автодополнение, сортировка классов и карты исходного кода, — поскольку это функции редактора, а не часть генерации CSS. Здесь есть всё, что создает CSS; функций для работы редактора нет.
С чего начать
- Начало работы — установите пакет и создайте свою первую таблицу стилей.
- Использование — сканируйте содержимое, настройте тему и используйте директивы Tailwind.
- Утилитарные классы —
cn(),merge(),join()иvariants(). - Плагины — типографика, формы и создание собственных плагинов.
- API — полный набор возможностей
twи экземплярTailwindCompiler. - CLI —
bin/tailwindphpдля сборки файлов и режима наблюдения. - Дополнительные темы — архитектура, кэширование, производительность и примечания о совместимости.