Przejdź do treści

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 ctype i mbstring. Bez exec, 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-* i tab-*), 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, @plugin i @source.
  • Wszystko w zestawie — cn(), merge(), join() i variants() 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/typography i @tailwindcss/forms został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 require i 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 jak tailwindcss i tailwindcss/utilities, oraz importy reference), @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin i @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 @import z 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() i variants()/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() i variants().
  • Wtyczki — typografia, formularze i tworzenie własnych wtyczek.
  • API — pełny zakres tw oraz instancja TailwindCompiler.
  • CLI — bin/tailwindphp dla kompilacji opartych na plikach i trybu obserwowania.
  • Zaawansowane — architektura, buforowanie, wydajność i informacje o zgodności.