
# Vtičniki

TailwindPHP vključuje PHP različici uradnih vtičnikov TailwindCSS in ponuja izvorni vtičnik PHP API. Vtičniki registrirajo pripomočke, komponente in različice; naložijo se z direktivo `@plugin` v vhodni datoteki CSS. Vgrajena vtičnika sta 1:1 različici svojih ustreznic za JavaScript — z enakimi izbirniki in izhodom — izvedeni v PHP namesto prek izvajanja z Node. Trenutno obstaja ena izjema: modifikatorji elementov vtičnika za tipografijo (`prose-headings:`, `prose-a:`, …) temeljijo na različicah vtičnikov, ki se še ne uporabljajo ([#10](https://github.com/inline0/tailwindphp/issues/10)).

## Uporaba `@plugin`

Vtičnik navedite po imenu z `@plugin`. Vgrajeni vtičniki uporabljajo ime paketa npm. Direktivo povežite z `@import "tailwindcss/utilities.css";`, da se razredi vtičnika vključijo v plast pripomočkov:

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

Naložite lahko več vtičnikov hkrati, vrstni red pa ni pomemben:

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

`@plugin` ne sme biti vgnezden znotraj drugega pravila at (na primer `@media`), neregistrirano ime vtičnika pa povzroči izjemo.

## Možnosti vtičnikov

Možnosti vtičniku posredujte z zapisom blokov CSS za imenom. Ključi ustrezajo polju možnosti vtičnika:

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

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

Vtičnik `@tailwindcss/forms` sprejema `strategy` (`base` ali `class`); `@tailwindcss/typography` sprejema `className` za preimenovanje ustvarjenega razreda `prose`. Celoten seznam možnosti najdete na straneh posameznih vtičnikov.

## Vgrajeni vtičniki

| Vtičnik | Opis |
|--------|-------------|
| `@tailwindcss/typography` | Razredi `prose` — tipografske privzete nastavitve za obogateno besedilo. Glejte [Tipografija](https://tailwindphp.inline0.dev/sl/docs/plugins/typography). |
| `@tailwindcss/forms` | Ponastavljivi obrazčni kontrolniki, ki jih lahko oblikujete. Glejte [Obrazci](https://tailwindphp.inline0.dev/sl/docs/plugins/forms). |

## Vtičniki po meri

Ustvarite lasten vtičnik z implementacijo `PluginInterface` in uporabo metod v `PluginAPI` (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme` in drugih). Registrirajte ga z `registerPlugin(new MyPlugin())`, da bo ime, ki ga vrne `getName()`, prepoznano v direktivi `@plugin "my-plugin"`:

```php
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());
```

Glejte [Vtičniki po meri](https://tailwindphp.inline0.dev/sl/docs/plugins/custom) za vmesnik, celoten primer in popoln referenčni pregled metod `PluginAPI`.
