Přejít k obsahu

TailwindPHP

TailwindPHP je 1:1 port TailwindCSS 4.x do PHP. Analyzuje vaše CSS, prohledává značky a hledá názvy tříd a generuje utility CSS, které vytváří TailwindCSS v4.3.3 — celé v PHP, bez Node.js a bez kroku sestavení.

  • Čisté PHP — dodává se jako balíček Composer a běží na PHP 8.2+ se standardními rozšířeními ctype a mbstring. Bez exec, FFI i nativních nástrojů pro sestavení.
  • Ověřeno vůči TailwindCSS — utility, varianty, direktivy a funkce CSS odpovídají TailwindCSS v4.3.3. Výstup se ověřuje pomocí vlastních testovacích sad Tailwind, které jsou extrahovány ze zdrojového kódu TypeScript a spouštějí se při každém nahrání změn (4,400+ testů). Známé rozdíly (několik detailů serializace bez vlivu na kaskádu a otevřené problémy) uvádí Kompatibilita a aktualizace.
  • Kompletní sada funkcí — úplná sada utilit v4.3.3 TailwindCSS (včetně container, utilit pro posuvníky, zoom-* a tab-*), všech variant (hover, focus, responzivní, tmavý režim, dotazy na kontejnery, libovolné hodnoty) a úplné sady direktiv: @import, @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin a @source.
  • Vše potřebné v balíčku — cn(), merge(), join() a variants() zahrnují porty PHP pro clsx, tailwind-merge a CVA, takže už obsahují doprovodné knihovny, které každý projekt Tailwind používá.
  • Doplňky — @tailwindcss/typography a @tailwindcss/forms jsou plně portované a doplněk PHP API vám umožní napsat vlastní.

Proč TailwindPHP vznikl

TailwindCSS je napsán v TypeScript a běží na Node.js. To je zásadní požadavek pro každý projekt PHP, který chce používat Tailwind: další runtime, instalaci npm a krok sestavení v CI i Docker. Pro mnoho aplikací PHP je to zbytečná komplikace.

TailwindPHP tuto překážku odstraňuje. Váš kód PHP kompiluje Tailwind CSS přímo a používá pouze standardní knihovnu. Díky tomu jsou možné věci, které jsou s nástroji JavaScript obtížné nebo nemožné:

  • Frameworky WordPress a PHP — dodávejte motivy a doplňky využívající Tailwind, aniž by uživatelé museli instalovat Node.js nebo spouštět sestavení. Stačí composer require a můžete pokračovat. Viz TailwindWP, ukázkový doplněk WordPress, který pomocí TailwindPHP generuje CSS editoru bloků.
  • Runtime CSS — generujte utility CSS za běhu z uživatelského vstupu, obsahu databáze nebo proměnných šablony namísto při sestavení.
  • Jednodušší nasazení — v produkci není potřeba Node.js, sestavení v CI ani npm v obrazu Docker.

Stejný přístup jako u scssphp pro SCSS — celý kompilátor v PHP.

Co umí

  • Kompiluje sadu utilit TailwindCSS v4.3.3, varianty a libovolné hodnoty z názvů tříd nalezených ve vašem obsahu.
  • Zpracovává všechny direktivy: @import (včetně virtuálních modulů jako tailwindcss a tailwindcss/utilities a importů reference), @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin a @source.
  • Implementuje funkce CSS z Tailwind — theme(), --theme(), --spacing() a --alpha() — a také převod color-mix() → oklab() a transformace CSS, které TailwindCSS předává LightningCSS.
  • Načítá @import ze souborového systému včetně vnořených importů, odstranění duplicit a vlastních resolverů, případně z řetězců CSS přímo v kódu.
  • Obsahuje Preflight (základní reset Tailwind), podporu prefixů, náhradní hodnoty @property, přidávání prefixů dodavatelů a přesouvání definic klíčových snímků.
  • Obsahuje cn(), merge(), join() a variants()/compose() pro sestavování názvů tříd, řešení konfliktů a varianty komponent.
  • Zahrnuje pluginy pro typografii a formuláře a rozhraní API pro pluginy (addUtilities, matchUtilities, addComponents, addVariant, theme, …).
  • Poskytuje CLI (bin/tailwindphp) s možnostmi sestavení @tailwindcss/cli a také ukládání výstupu do mezipaměti podle souborů, trvalou mezipaměť stavu kompilátoru a minifikátor CSS pro produkční prostředí.

Co merql není

TailwindPHP je kompilátor CSS, nikoli sada nástrojů pro editor. Záměrně neobsahuje části ekosystému Tailwind určené pro IDE — IntelliSense, automatické doplňování, řazení tříd a zdrojové mapy — protože jde o funkce editoru, nikoli o součást generování CSS. Zahrnuje vše, co vytváří CSS, ale ne funkce editoru.

Kde začít

  • Začínáme — instalace balíčku a generování první šablony stylů.
  • Použití — prohledávání obsahu, úprava motivu a používání direktiv Tailwind.
  • Utility tříd — cn(), merge(), join() a variants().
  • Doplňky — typografie, formuláře a tvorba vlastních doplňků.
  • API — úplná sada direktiv tw a instance TailwindCompiler.
  • CLI — bin/tailwindphp pro sestavení ze souborů a režim sledování.
  • Pokročilé — architektura, ukládání do mezipaměti, výkon a poznámky ke kompatibilitě.