TailwindPHP
TailwindPHP to 1:1 port TailwindCSS 4.x do PHP. Analizuje CSS, skanuje znaczniki w poszukiwaniu nazw klas i generuje reguły CSS dla klas pomocniczych odpowiadające wynikowi TailwindCSS v4.3.3 — w całości w PHP, bez Node.js i etapu budowania.
- Czyste PHP — dostarczane jako pakiet Composer, działa na PHP 8.2+ ze standardowymi rozszerzeniami
ctypeimbstring. Bezexec, FFI ani natywnych narzędzi do budowania. - Sprawdzone względem TailwindCSS — narzędzia, warianty, dyrektywy i funkcje CSS odpowiadają TailwindCSS v4.3.3. Wynik jest weryfikowany za pomocą własnych zestawów testów Tailwind, wyodrębnionych ze źródeł TypeScript i uruchamianych ponownie przy każdym pushu (ponad 4,400 testów). Znane różnice (kilka szczegółów serializacji bez wpływu na kaskadę oraz otwarte problemy) opisano w Zgodność i aktualizacja.
- Pełny zestaw funkcji — pełny zestaw narzędzi TailwindCSS v4.3.3 (w tym
container, narzędzia do pasków przewijania,zoom-*itab-*), wszystkie warianty (hover, focus, responsywność, tryb ciemny, zapytania kontenerowe, dowolne wartości) oraz pełny zakres dyrektyw:@import,@theme,@apply,@utility,@variant,@custom-variant,@layer,@plugini@source. - Wszystko w zestawie —
cn(),merge(),join()ivariants()zawierają porty PHP clsx, tailwind-merge i CVA, więc biblioteki pomocnicze używane w każdym projekcie Tailwind są już dostępne. - Wtyczki —
@tailwindcss/typographyi@tailwindcss/formszostały w pełni przeniesione, a PHP interfejs API pozwala pisać własne wtyczki.
Dlaczego powstało TailwindPHP
TailwindCSS jest napisane w TypeScript i działa na Node.js. To twardy wymóg dla każdego projektu PHP, który chce używać Tailwind: drugie środowisko uruchomieniowe, instalacja npm i krok budowania w CI oraz Docker. Dla wielu aplikacji PHP to dodatkowa komplikacja, której wolałyby uniknąć.
TailwindPHP eliminuje ten problem. Twój kod PHP kompiluje bezpośrednio Tailwind CSS, korzystając wyłącznie ze standardowej biblioteki. Umożliwia to kilka rzeczy trudnych lub niemożliwych przy użyciu łańcucha narzędzi JavaScript:
- Frameworki WordPress i PHP — twórz motywy i wtyczki oparte na Tailwind bez proszenia użytkowników o instalację Node.js lub uruchamianie budowania. Wystarczy
composer requirei gotowe. Zobacz TailwindWP, przykładową wtyczkę WordPress, która generuje CSS edytora bloków za pomocą TailwindPHP. - Generowanie CSS w czasie działania — twórz narzędzia CSS na bieżąco na podstawie danych użytkownika, zawartości bazy danych lub zmiennych szablonu, zamiast podczas budowania.
- Prostsze wdrażanie — bez Node.js w środowisku produkcyjnym, bez kroku budowania w CI i bez npm w obrazie Docker.
To ten sam pomysł, który scssphp wprowadził do SCSS — cały kompilator, w PHP.
Funkcje
- Kompiluje zestaw narzędzi TailwindCSS v4.3.3, warianty i dowolne wartości na podstawie nazw klas znalezionych w zawartości.
- Obsługuje pełny zakres dyrektyw:
@import(w tym moduły wirtualne, takie jaktailwindcssitailwindcss/utilities, oraz importyreference),@theme,@apply,@utility,@variant,@custom-variant,@layer,@plugini@source. - Implementuje funkcje CSS z Tailwind —
theme(),--theme(),--spacing()i--alpha()— a także konwersjęcolor-mix()→oklab()i transformacje CSS przekazywane przez TailwindCSS do LightningCSS. - Wczytuje
@importz systemu plików, obsługując zagnieżdżone importy, usuwanie duplikatów i własne resolwery, albo z ciągów CSS. - Zawiera Preflight (podstawowy reset Tailwind), obsługę prefiksów, wartości zastępcze
@property, dodawanie prefiksów dostawców i przenoszenie definicji keyframes. - Zawiera
cn(),merge(),join()ivariants()/compose()do tworzenia nazw klas, rozwiązywania konfliktów i definiowania wariantów komponentów. - Zawiera wtyczki typografii i formularzy oraz interfejs API (
addUtilities,matchUtilities,addComponents,addVariant,theme, …) do tworzenia własnych wtyczek. - Udostępnia CLI (
bin/tailwindphp) z opcjami kompilacji@tailwindcss/cli, buforowanie wyników dla wyjścia plikowego, trwałą pamięć podręczną stanu kompilatora oraz minifikator CSS na potrzeby produkcji.
Czym nie jest
TailwindPHP to kompilator CSS, a nie łańcuch narzędzi edytora. Celowo pomija elementy ekosystemu Tailwind przeznaczone dla IDE — IntelliSense, autouzupełnianie, sortowanie klas i mapy źródłowe — ponieważ są to funkcje edytora, a nie część generowania CSS. Zakres obejmuje wszystko, co tworzy CSS; nie obejmuje funkcji edytora.
Od czego zacząć
- Pierwsze kroki — zainstaluj pakiet i wygeneruj pierwszy arkusz stylów.
- Użycie — skanuj zawartość, dostosuj motyw i używaj dyrektyw Tailwind.
- Narzędzia klas —
cn(),merge(),join()ivariants(). - Wtyczki — typografia, formularze i tworzenie własnych wtyczek.
- API — pełny zakres
tworaz instancjaTailwindCompiler. - CLI —
bin/tailwindphpdla kompilacji opartych na plikach i trybu obserwowania. - Zaawansowane — architektura, buforowanie, wydajność i informacje o zgodności.