
# TailwindPHP

TailwindPHP je **1:1 prenos TailwindCSS 4.x v PHP**. Razčleni vaš CSS, v označevalnem jeziku poišče imena razredov in ustvari uporabne pripomočke CSS, ki jih ustvari TailwindCSS v4.3.3 — v celoti v PHP, brez Node.js in koraka gradnje.

- **Čisti PHP** — na voljo je kot paket Composer in deluje v PHP 8.2+ s standardnima razširitvama `ctype` in `mbstring`. Brez `exec`, FFI ali izvornih orodij za gradnjo.
- **Preverjeno glede na TailwindCSS** — pripomočki, različice, direktive in funkcije CSS sledijo TailwindCSS v4.3.3. Izhod je preverjen z lastnimi testnimi zbirkami Tailwind, pridobljenimi iz izvorne kode TypeScript in znova izvedenimi ob vsakem potisku (4,400+ testov). Znane razlike (nekaj podrobnosti serializacije brez vpliva na kaskado in odprte težave) so navedene v razdelku [Združljivost in nadgradnja](https://tailwindphp.inline0.dev/sl/docs/advanced/compatibility).
- **Celoten nabor funkcij** — celoten nabor pripomočkov TailwindCSS v4.3.3 (vključno z `container`, pripomočki za drsnik, `zoom-*` in `tab-*`), vse različice (ob prehodu miške, ob fokusu, odzivne, temni način, poizvedbe vsebnika in poljubne vrednosti) ter vse direktive: `@import`, `@theme`, `@apply`, `@utility`, `@variant`, `@custom-variant`, `@layer`, `@plugin` in `@source`.
- **Vse vključeno** — `cn()`, `merge()`, `join()` in `variants()` vključujejo prenose PHP knjižnic clsx, tailwind-merge in CVA, zato so spremljevalne knjižnice, ki jih potrebuje vsak projekt Tailwind, že vključene.
- **Vtičniki** — `@tailwindcss/typography` in `@tailwindcss/forms` sta prenesena v celoti, vtičnik PHP API pa vam omogoča ustvarjanje lastnih.

## Zakaj obstaja TailwindPHP

TailwindCSS je napisan v TypeScript in deluje v Node.js. To je neizogibna zahteva za vsak projekt PHP, ki želi uporabljati Tailwind: potrebuje drugo izvajalno okolje, namestitev npm in korak gradnje v CI ter Docker. Za številne aplikacije PHP je to nepotrebna ovira.

TailwindPHP to odpravi. Vaša koda PHP se prevede neposredno v Tailwind CSS, pri čemer uporablja samo standardno knjižnico. Tako postanejo izvedljive nekatere stvari, ki so z orodji JavaScript nerodne ali nemogoče:

- **Ogrodja WordPress in PHP** — objavite teme in vtičnike, ki uporabljajo Tailwind, ne da bi morali uporabniki namestiti Node.js ali zagnati gradnjo. Samo `composer require` in že deluje. Oglejte si [TailwindWP](https://github.com/dnnsjsk/tailwindwp), primer vtičnika WordPress, ki z TailwindPHP ustvarja CSS za urejevalnik blokov.
- **Ustvarjanje CSS med izvajanjem** — uporabne CSS ustvarjajte sproti iz uporabniškega vnosa, vsebine zbirke podatkov ali spremenljivk predloge, namesto med gradnjo.
- **Preprostejša uvedba** — v produkcijskem okolju ni Node.js, v CI ni koraka gradnje, v sliki Docker pa ni npm.

Gre za enako zamisel, kot jo je [scssphp](https://github.com/scssphp/scssphp) prinesel v SCSS — celoten prevajalnik v PHP.

## Kaj omogoča

- Prevede nabor pripomočkov TailwindCSS v4.3.3, različice in poljubne vrednosti iz imen razredov v vaši vsebini.
- Razreši vse direktive: `@import` (vključno z navideznimi moduli, kot sta `tailwindcss` in `tailwindcss/utilities`, ter uvozi `reference`), `@theme`, `@apply`, `@utility`, `@variant`, `@custom-variant`, `@layer`, `@plugin` in `@source`.
- Izvaja funkcije CSS v Tailwind: `theme()`, `--theme()`, `--spacing()` in `--alpha()`; vključuje tudi pretvorbo `color-mix()` → `oklab()` ter transformacije CSS, ki jih prepušča LightningCSS prek TailwindCSS.
- Razreši `@import` iz datotečnega sistema z ugnezdenimi uvozi, odstranjevanjem dvojnikov in razreševalniki po meri ali iz nizov CSS.
- Vključuje Preflight (osnovno ponastavitev Tailwind), podporo za predpone, nadomestne vrednosti `@property`, dodajanje predpon proizvajalcev in premik ključnih sličic na višjo raven.
- Združuje `cn()`, `merge()`, `join()` in `variants()`/`compose()` za sestavljanje imen razredov, razreševanje sporov in različice komponent.
- Vključuje vtičnika za tipografijo in obrazce ter vtičnik API (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme`, …) za vtičnike po meri.
- Ponuja CLI (`bin/tailwindphp`) z možnostmi gradnje `@tailwindcss/cli` ter predpomnjenje izhoda na podlagi datotek, trajni predpomnilnik stanja prevajalnika in pomanjševalnik CSS za produkcijo.

## Kaj ni

TailwindPHP je prevajalnik CSS, ne orodje za urejevalnike. Namenoma ne vključuje delov ekosistema Tailwind, namenjenih IDE-jem — IntelliSense, samodokončanja, razvrščanja razredov in izvornih zemljevidov — ker so to funkcije urejevalnika, ne del ustvarjanja CSS. Vse, kar ustvarja CSS, je vključeno; vse, kar poganja vaš urejevalnik, pa ne.

## Kje začeti

- [Uvod](https://tailwindphp.inline0.dev/sl/docs/getting-started) — namestite paket in ustvarite svojo prvo slogovno datoteko.
- [Uporaba](https://tailwindphp.inline0.dev/sl/docs/usage) — preglejte vsebino, prilagodite temo in uporabite direktive Tailwind.
- [Pripomočki razredov](https://tailwindphp.inline0.dev/sl/docs/class-utilities) — `cn()`, `merge()`, `join()` in `variants()`.
- [Vtičniki](https://tailwindphp.inline0.dev/sl/docs/plugins) — tipografija, obrazci in ustvarjanje lastnih vtičnikov.
- [API](https://tailwindphp.inline0.dev/sl/docs/api) — celoten nabor `tw` in primerek `TailwindCompiler`.
- [CLI](https://tailwindphp.inline0.dev/sl/docs/cli) — `bin/tailwindphp` za gradnje na podlagi datotek in način spremljanja.
- [Napredno](https://tailwindphp.inline0.dev/sl/docs/advanced) — arhitektura, predpomnjenje, zmogljivost in opombe o združljivosti.
