
# TailwindPHP

A TailwindPHP a **TailwindCSS 4.x 1:1 portja PHP nyelvre**. Feldolgozza a CSS fájlt, megkeresi a jelölőnyelvben az osztályneveket, és előállítja azokat a segédosztályokat tartalmazó CSS értéket, amelyet a TailwindCSS v4.3.3 is létrehoz — mindezt PHP környezetben, Node.js és összeállítási lépés nélkül.

- **Tiszta PHP** — Composer csomagként érhető el, és PHP 8.2 vagy újabb verzióján, a szabványos `ctype` és `mbstring` bővítménnyel fut. Nincs `exec`, FFI vagy natív összeállítóeszköz.
- **Ellenőrzés a TailwindCSS alapján** — a segédosztályok, változatok, direktívák és CSS függvények a TailwindCSS v4.3.3 változásait követik. A kimenetet a Tailwind saját tesztcsomagjaival ellenőrizzük, amelyeket a TypeScript forrásból nyertünk ki, és minden feltöltéskor újra lefuttatunk (4,400+ teszt). Az ismert eltérések (néhány, a kaszkádra hatást nem gyakorló szerializálási részlet és a nyitott hibajegyek) a [Kompatibilitás és frissítés](https://tailwindphp.inline0.dev/hu/docs/advanced/compatibility) oldalon szerepelnek.
- **Teljes funkcionalitás** — a teljes TailwindCSS v4.3.3 segédosztálykészlet (beleértve a `container`, a görgetősáv-segédosztályokat, a `zoom-*` és a `tab-*` elemet), minden változat (rámutatás, fókusz, reszponzív megjelenés, sötét mód, tárolólekérdezések, tetszőleges értékek), valamint a teljes direktívakészlet: `@import`, `@theme`, `@apply`, `@utility`, `@variant`, `@custom-variant`, `@layer`, `@plugin` és `@source`.
- **Minden egyben** — a `cn()`, `merge()`, `join()` és `variants()` a clsx, a tailwind-merge és a CVA PHP portját tartalmazza, így minden Tailwind projekt számára készen állnak a szükséges kiegészítő könyvtárak.
- **Bővítmények** — a `@tailwindcss/typography` és a `@tailwindcss/forms` teljes portként érhető el, saját bővítmény készítéséhez pedig rendelkezésre áll a PHP bővítmény API.

## Miért jött létre a TailwindPHP?

A TailwindCSS TypeScript nyelven íródott, és Node.js környezetben fut. Ez elengedhetetlen minden olyan PHP projekthez, amely Tailwind használatát tervezi: ehhez külön futtatókörnyezet, npm-telepítés és összeállítási lépés szükséges a CI-ben és a Docker környezetben. Sok PHP alkalmazásnál ez szükségtelen többletmunka.

A TailwindPHP megszünteti ezt a többletet. A PHP kód közvetlenül Tailwind CSS fordítható, kizárólag a szabványos könyvtárral. Ez olyan lehetőségeket nyit meg, amelyek a JavaScript eszközlánccal nehézkesek vagy megvalósíthatatlanok:

- **WordPress és PHP keretrendszerek** — szállítson Tailwind-alapú témákat és bővítményeket anélkül, hogy a felhasználóknak telepíteniük kellene a Node.js eszközt vagy összeállítást kellene futtatniuk. Csak `composer require`, és már használható is. Lásd a [TailwindWP](https://github.com/dnnsjsk/tailwindwp) példát: ez egy WordPress bővítmény, amely TailwindPHP segítségével generál CSS értékeket a blokkszerkesztőhöz.
- **Futásidejű CSS** — segédosztályokat tartalmazó CSS értékeket állíthat elő menet közben, felhasználói bemenetből, adatbázis-tartalomból vagy sablonváltozókból, nem csak összeállításkor.
- **Egyszerűbb telepítés** — nincs Node.js az éles környezetben, nincs összeállítási lépés a CI-ben, és nincs npm a Docker képben.

Ugyanazt az ötletet valósítja meg, amelyet az [scssphp](https://github.com/scssphp/scssphp) honosított meg SCSS környezetben — a teljes fordítót PHP nyelven.

## Mit tud

- A tartalmadban talált osztálynevekből lefordítja a TailwindCSS v4.3.3 segédosztályait, variánsait és tetszőleges értékeit.
- Feldolgozza az összes direktívát: `@import` (beleértve a virtuális modulokat, például a `tailwindcss` és `tailwindcss/utilities` modulokat, valamint a `reference` importokat), `@theme`, `@apply`, `@utility`, `@variant`, `@custom-variant`, `@layer`, `@plugin` és `@source`.
- Megvalósítja a Tailwind által biztosított CSS-függvényeket — `theme()`, `--theme()`, `--spacing()` és `--alpha()` —, továbbá a `color-mix()` → `oklab()` átalakítást és a TailwindCSS által a LightningCSS számára delegált CSS-transzformációkat.
- Feloldja az `@import` direktívát a fájlrendszerből, beágyazott importokkal, deduplikálással és saját feloldókkal, vagy beágyazott CSS-karakterláncokból.
- Tartalmazza a Preflight alapstílus-visszaállítást a Tailwind rendszeréből, a prefixek támogatását, a `@property` tartalékmegoldásait, a böngészőprefixeket és a kulcskocka-definíciók feljebb helyezését.
- Csomagolja a `cn()`, `merge()`, `join()` és `variants()`/`compose()` függvényeket osztálynevek összeállításához, konfliktusok feloldásához és komponensvariánsokhoz.
- Tartalmazza a tipográfiai és űrlapbővítményeket, valamint egy bővítmény-API-t (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme`, …) saját bővítményekhez.
- CLI-t (`bin/tailwindphp`) biztosít az `@tailwindcss/cli` fordítási opcióival, fájlalapú kimeneti gyorsítótárral, tartós fordítóállapot-gyorsítótárral és éles környezetre szánt CSS-minimalizálóval.

## Ami nem tartozik ide

A TailwindPHP egy CSS fordító, nem szerkesztői eszközkészlet. Szándékosan kihagyja a Tailwind ökoszisztéma IDE-khez kapcsolódó elemeit — a IntelliSense-t, az automatikus kiegészítést, az osztályok rendezését és a forrástérképeket —, mert ezek szerkesztői funkciók, nem tartoznak a CSS generálásához. Minden, ami CSS-t állít elő, a hatókörébe tartozik; a szerkesztőt kiszolgáló funkciók nem.

## Hol érdemes kezdeni

- [Kezdő lépések](https://tailwindphp.inline0.dev/hu/docs/getting-started) — telepítse a csomagot, és hozza létre az első stíluslapját.
- [Használat](https://tailwindphp.inline0.dev/hu/docs/usage) — vizsgálja át a tartalmat, szabja testre a témát, és használja a Tailwind direktíváit.
- [Osztálysegédletek](https://tailwindphp.inline0.dev/hu/docs/class-utilities) — `cn()`, `merge()`, `join()` és `variants()`.
- [Bővítmények](https://tailwindphp.inline0.dev/hu/docs/plugins) — tipográfia, űrlapok és saját bővítmények írása.
- [API](https://tailwindphp.inline0.dev/hu/docs/api) — a teljes `tw` felület és a `TailwindCompiler` példány.
- [CLI](https://tailwindphp.inline0.dev/hu/docs/cli) — `bin/tailwindphp` fájlalapú összeállításokhoz és figyelő módhoz.
- [Haladó témák](https://tailwindphp.inline0.dev/hu/docs/advanced) — architektúra, gyorsítótárazás, teljesítmény és kompatibilitási megjegyzések.
