
# 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](https://tailwindphp.inline0.dev/cs/docs/advanced/compatibility).
- **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](https://github.com/dnnsjsk/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](https://github.com/scssphp/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](https://tailwindphp.inline0.dev/cs/docs/getting-started) — instalace balíčku a generování první šablony stylů.
- [Použití](https://tailwindphp.inline0.dev/cs/docs/usage) — prohledávání obsahu, úprava motivu a používání direktiv Tailwind.
- [Utility tříd](https://tailwindphp.inline0.dev/cs/docs/class-utilities) — `cn()`, `merge()`, `join()` a `variants()`.
- [Doplňky](https://tailwindphp.inline0.dev/cs/docs/plugins) — typografie, formuláře a tvorba vlastních doplňků.
- [API](https://tailwindphp.inline0.dev/cs/docs/api) — úplná sada direktiv `tw` a instance `TailwindCompiler`.
- [CLI](https://tailwindphp.inline0.dev/cs/docs/cli) — `bin/tailwindphp` pro sestavení ze souborů a režim sledování.
- [Pokročilé](https://tailwindphp.inline0.dev/cs/docs/advanced) — architektura, ukládání do mezipaměti, výkon a poznámky ke kompatibilitě.
