
# TailwindPHP

TailwindPHP ir **1:1 ports no TailwindCSS 4.x uz PHP**. Tas parsē jūsu CSS, pārmeklē marķējumu, lai atrastu klašu nosaukumus, un ģenerē utilītu CSS, ko izveido TailwindCSS v4.3.3 — pilnībā PHP, bez Node.js un būvēšanas posma.

- **Tikai PHP** — tiek izplatīts kā Composer pakotne un darbojas ar PHP 8.2+ un standarta paplašinājumiem `ctype` un `mbstring`. Bez `exec`, FFI un vietējiem būvēšanas rīkiem.
- **Pārbaudīts pret TailwindCSS** — utilītas, varianti, direktīvas un CSS funkcijas atbilst TailwindCSS v4.3.3. Izvade tiek pārbaudīta ar pašas Tailwind testu komplektiem, kas iegūti no TypeScript pirmkoda un tiek palaisti no jauna pēc katras augšupielādes (4,400+ testi). Zināmās atšķirības (dažas serializācijas detaļas bez ietekmes uz kaskādi un atvērtās problēmas) ir uzskaitītas sadaļā [Saderība un jaunināšana](https://tailwindphp.inline0.dev/lv/docs/advanced/compatibility).
- **Pilns funkciju klāsts** — viss TailwindCSS v4.3.3 utilītu komplekts (tostarp `container`, ritjoslas utilītas, `zoom-*` un `tab-*`), visi varianti (hover, focus, adaptīvie, tumšais režīms, konteineru vaicājumi un patvaļīgas vērtības), kā arī visas direktīvas: `@import`, `@theme`, `@apply`, `@utility`, `@variant`, `@custom-variant`, `@layer`, `@plugin` un `@source`.
- **Viss nepieciešamais jau iekļauts** — `cn()`, `merge()`, `join()` un `variants()` apvieno PHP clsx, tailwind-merge un CVA portus, tāpēc katram Tailwind projektam vajadzīgās papildbibliotēkas jau ir pieejamas.
- **Spraudņi** — `@tailwindcss/typography` un `@tailwindcss/forms` ir pilnībā pārnesti, un PHP spraudņu API ļauj izveidot savus spraudņus.

## Kāpēc tika izveidots TailwindPHP

TailwindCSS ir rakstīts TypeScript un darbojas ar Node.js. Tas ir obligāts priekšnoteikums ikvienam PHP projektam, kurā nepieciešams Tailwind: jāizmanto otra izpildvide, jāinstalē npm un CI vidē, kā arī Docker jāveic būvēšana. Daudzām PHP lietotnēm tā ir lieka sarežģītība.

TailwindPHP novērš šo prasību. Jūsu PHP kods kompilē Tailwind CSS tieši, izmantojot tikai standarta bibliotēku. Tas sniedz vairākas iespējas, kuras ar JavaScript rīku ķēdi ir sarežģīti vai neiespējami īstenot:

- **WordPress un PHP ietvari** — izplatiet Tailwind darbinātas tēmas un spraudņus, neprasot lietotājiem instalēt Node.js vai palaist būvēšanu. Vienkārši `composer require` un gatavs. Skatiet [TailwindWP](https://github.com/dnnsjsk/tailwindwp) — piemēra WordPress spraudni, kas ģenerē bloku redaktora CSS ar TailwindPHP.
- **CSS izpilde** — ģenerējiet utilītu CSS pēc pieprasījuma no lietotāja ievades, datubāzes satura vai veidņu mainīgajiem, nevis būvēšanas laikā.
- **Vienkāršāka izvietošana** — produkcijas vidē nav nepieciešams Node.js, CI vidē nav būvēšanas posma, un jūsu Docker attēlā nav npm.

Tāda pati ideja, ko [scssphp](https://github.com/scssphp/scssphp) ieviesa SCSS — viss kompilators, kas darbojas PHP.

## Ko tas dara

- No saturā atrastajiem klašu nosaukumiem kompilē TailwindCSS v4.3.3 palīgklases, variantus un patvaļīgas vērtības.
- Apstrādā visas direktīvas: `@import` (tostarp virtuālos moduļus, piemēram, `tailwindcss` un `tailwindcss/utilities`, un `reference` importus), `@theme`, `@apply`, `@utility`, `@variant`, `@custom-variant`, `@layer`, `@plugin` un `@source`.
- Īsteno Tailwind piedāvātās CSS funkcijas — `theme()`, `--theme()`, `--spacing()` un `--alpha()` —, kā arī `color-mix()` → `oklab()` pārveidi un tās CSS transformācijas, kuras TailwindCSS deleģē LightningCSS.
- Atrisina `@import` no failu sistēmas ar ligzdotiem importiem, dublikātu novēršanu un pielāgotiem atrisinātājiem vai no iekļautām CSS virknēm.
- Ietver Preflight (Tailwind stilu sākotnējo atiestatīšanu), prefiksu atbalstu, `@property` rezerves variantus, ražotāju prefiksus un animācijas atslēgkadru definīciju pārvietošanu augstāk.
- Ietver `cn()`, `merge()`, `join()` un `variants()`/`compose()` klašu nosaukumu veidošanai, konfliktu atrisināšanai un komponentu variantiem.
- Ietver tipogrāfijas un formu spraudņus, kā arī spraudņu API (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme`, …) pielāgotiem spraudņiem.
- Nodrošina CLI (`bin/tailwindphp`) ar `@tailwindcss/cli` būvēšanas opcijām, failu izvades kešatmiņu, pastāvīgu kompilatora stāvokļa kešatmiņu un CSS minifikatoru ražošanas videi.

## Kas tas nav

TailwindPHP ir CSS kompilators, nevis redaktora rīku ķēde. Tajā apzināti nav iekļautas Tailwind ekosistēmas IDE paredzētās iespējas — IntelliSense, automātiskā pabeigšana, klašu kārtošana un avota kartes — jo tās ir redaktora funkcijas, nevis CSS ģenerēšanas daļa. Šeit ietilpst viss, kas ģenerē CSS; redaktora darbību nodrošinošās funkcijas neietilpst.

## Ar ko sākt

- [Darba sākšana](https://tailwindphp.inline0.dev/lv/docs/getting-started) — instalējiet pakotni un ģenerējiet savu pirmo stilu lapu.
- [Lietošana](https://tailwindphp.inline0.dev/lv/docs/usage) — skenējiet saturu, pielāgojiet tēmu un izmantojiet Tailwind direktīvas.
- [Klašu utilītas](https://tailwindphp.inline0.dev/lv/docs/class-utilities) — `cn()`, `merge()`, `join()` un `variants()`.
- [Spraudņi](https://tailwindphp.inline0.dev/lv/docs/plugins) — tipogrāfija, veidlapas un savu spraudņu izveide.
- [API](https://tailwindphp.inline0.dev/lv/docs/api) — pilns `tw` interfeiss un `TailwindCompiler` instance.
- [CLI](https://tailwindphp.inline0.dev/lv/docs/cli) — `bin/tailwindphp` failos balstītiem būvējumiem un uzraudzības režīmam.
- [Papildu informācija](https://tailwindphp.inline0.dev/lv/docs/advanced) — arhitektūra, kešošana, veiktspēja un saderības piezīmes.
