
# Pluginy

TailwindPHP obsahuje PHP porty oficiálnych pluginov TailwindCSS a sprístupňuje natívne PHP rozhranie pluginov API. Pluginy registrujú utility, komponenty a varianty; načítavajú sa direktívou `@plugin` vo vstupnom súbore CSS. Vstavané pluginy sú 1:1 porty svojich náprotivkov JavaScript — majú rovnaké selektory a výstup — a sú implementované v PHP namiesto spúšťania cez Node. Momentálne existuje jedna výnimka: modifikátory prvkov pluginu typografie (`prose-headings:`, `prose-a:`, …) závisia od variantov pluginov, ktoré sa zatiaľ neuplatňujú ([#10](https://github.com/inline0/tailwindphp/issues/10)).

## Používanie `@plugin`

Na plugin odkazujte podľa názvu pomocou `@plugin`. Vstavané pluginy používajú názov svojho balíka npm. Skombinujte direktívu s `@import "tailwindcss/utilities.css";`, aby sa triedy pluginu pridali do vrstvy utilít:

```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";
    ',
]);
```

Naraz možno načítať viacero pluginov; ich poradie je ľubovoľné:

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

`@plugin` nemožno vnoriť do inej direktívy at-rule (napríklad `@media`) a neregistrovaný názov pluginu vyvolá chybu.

## Možnosti pluginov

Možnosti pluginu odovzdajte pomocou syntaxe bloku CSS za jeho názvom. Kľúče zodpovedajú poľu možností pluginu:

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

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

Plugin `@tailwindcss/forms` prijíma `strategy` (`base` alebo `class`); `@tailwindcss/typography` prijíma `className` na premenovanie generovanej triedy `prose`. Úplný zoznam možností nájdete na stránkach jednotlivých pluginov.

## Vstavané pluginy

| Plugin | Popis |
|--------|-------------|
| `@tailwindcss/typography` | Triedy `prose` — typografické predvolené nastavenia pre formátovaný text. Pozrite si [Typografia](https://tailwindphp.inline0.dev/sk/docs/plugins/typography). |
| `@tailwindcss/forms` | Ovládacie prvky formulára s obnoviteľným a upraviteľným štýlom. Pozrite si [Formuláre](https://tailwindphp.inline0.dev/sk/docs/plugins/forms). |

## Vlastné pluginy

Vytvorte si vlastný plugin implementáciou `PluginInterface` a použitím metód v `PluginAPI` (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme` a ďalších). Zaregistrujte ho pomocou `registerPlugin(new MyPlugin())`, aby sa názov vrátený cez `getName()` dal použiť v direktíve `@plugin "my-plugin"`:

```php
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());
```

Rozhranie, úplný príklad a kompletný prehľad metód `PluginAPI` nájdete v časti [Vlastné pluginy](https://tailwindphp.inline0.dev/sk/docs/plugins/custom).
