
# Pluginad

TailwindPHP sisaldab ametlike TailwindCSS pluginate PHP porte ja pakub natiivset PHP plugina API. Pluginad registreerivad utiliite, komponente ja variante; need laaditakse sisendi CSS-is oleva direktiiviga `@plugin`. Sisseehitatud pluginad on nende JavaScript vastete 1:1 pordid — samad selektorid ja väljund — ning need on rakendatud keeles PHP, mitte Node'i kaudu käivitatavad. Praegu on üks erand: tüpograafiapluginas ei rakendata elementide modifikaatoreid (`prose-headings:`, `prose-a:`, …), mis sõltuvad plugina variantidest ([#10](https://github.com/inline0/tailwindphp/issues/10)).

## `@plugin` kasutamine

Viidake pluginile nime järgi käsuga `@plugin`. Sisseehitatud pluginad kasutavad oma paketi nime npm. Lisage direktiivile `@import "tailwindcss/utilities.css";`, et plugina klassid väljastataks utiliitide kihti:

```php
use TailwindPHP\tw;

$css = tw::generate([
    'content' => '<article class="prose prose-lg"><h1>Hello</h1><p>Content here</p></article>',
    'css' => '
        @plugin "@tailwindcss/typography";
        @import "tailwindcss/utilities.css";
    ',
]);
```

Mitu pluginat saab korraga laadida ja nende järjekord ei mõjuta tulemust:

```css
@plugin "@tailwindcss/typography";
@plugin "@tailwindcss/forms";
@import "tailwindcss/utilities.css";
```

`@plugin` ei saa pesastada teise at-reegli sisse (näiteks `@media`) ning registreerimata plugina nimi põhjustab vea.

## Plugina suvandid

Andke pluginale suvandid nime järel oleva CSS ploki süntaksiga. Võtmed vastendatakse plugina suvandite massiivi väärtustega:

```css
@plugin "@tailwindcss/forms" {
    strategy: "class";
}

@plugin "@tailwindcss/typography" {
    className: "markdown";
}
```

Plugin `@tailwindcss/forms` aktsepteerib suvandit `strategy` (`base` või `class`); `@tailwindcss/typography` aktsepteerib suvandit `className` genereeritud klassi `prose` ümbernimetamiseks. Kõigi suvandite loendi leiate vastava plugina lehelt.

## Sisseehitatud pluginad

| Plugin | Kirjeldus |
|--------|-------------|
| `@tailwindcss/typography` | Klassid `prose` — rikasteksti tüpograafia vaikestiilid. Vt [Tüpograafia](https://tailwindphp.inline0.dev/et/docs/plugins/typography). |
| `@tailwindcss/forms` | Lähtestatavad vormielemendid, mida saab stiilida. Vt [Vormid](https://tailwindphp.inline0.dev/et/docs/plugins/forms). |

## Kohandatud pluginad

Kirjutage oma plugin, rakendades `PluginInterface` ja kasutades `PluginAPI` meetodeid (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme` ja teised). Registreerige see käsuga `registerPlugin(new MyPlugin())`, et `getName()` tagastatud nime saaks kasutada direktiivis `@plugin "my-plugin"`:

```php
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());
```

Lugege lehelt [Kohandatud pluginad](https://tailwindphp.inline0.dev/et/docs/plugins/custom) liidese, täieliku näite ja kogu `PluginAPI` meetodiviite kohta.
