
# Papildiniai

TailwindPHP pateikia PHP oficialių TailwindCSS papildinių prievadus ir savąjį PHP papildinio API. Papildiniai registruoja paslaugas, komponentus ir variantus; jie įkeliami direktyva `@plugin` jūsų įvesties CSS. Integruotieji papildiniai yra oficialių JavaScript atitikmenų prievadai santykiu 1:1 – tie patys parinkikliai ir išvestis, įgyvendinti PHP, o ne vykdomi per Node. Šiandien yra viena išimtis: tipografijos papildinio elementų modifikatoriai (`prose-headings:`, `prose-a:`, …) priklauso nuo papildinių variantų, kurie dar netaikomi ([#10](https://github.com/inline0/tailwindphp/issues/10)).

## `@plugin` naudojimas

Nurodykite papildinį vardu naudodami `@plugin`. Integruotieji papildiniai naudoja savo npm paketo pavadinimą. Kartu su direktyva naudokite `@import "tailwindcss/utilities.css";`, kad papildinio klasės būtų įtrauktos į paslaugų sluoksnį:

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

Vienu metu galima įkelti kelis papildinius, o jų tvarka nesvarbi:

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

`@plugin` negalima įdėti į kitą at-rule, pavyzdžiui, `@media`; neregistruotas papildinio pavadinimas sukelia klaidą.

## Papildinio parinktys

Perduokite papildiniui parinktis naudodami CSS bloko sintaksę po pavadinimo. Raktai atitinka papildinio parinkčių masyvą:

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

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

Papildinys `@tailwindcss/forms` priima `strategy` (`base` arba `class`); `@tailwindcss/typography` priima `className`, kuria galima pervadinti sugeneruotą klasę `prose`. Visą parinkčių sąrašą rasite atskiro papildinio puslapyje.

## Integruotieji papildiniai

| Papildinys | Aprašymas |
|--------|-------------|
| `@tailwindcss/typography` | Klasės `prose` – tipografinės numatytosios reikšmės raiškiajam tekstui. Žr. [Tipografija](https://tailwindphp.inline0.dev/lt/docs/plugins/typography). |
| `@tailwindcss/forms` | Iš naujo nustatomi ir stilizuojami formų valdikliai. Žr. [Formos](https://tailwindphp.inline0.dev/lt/docs/plugins/forms). |

## Tinkinti papildiniai

Sukurkite savo papildinį įgyvendindami `PluginInterface` ir naudodami `PluginAPI` metodus (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme` ir kitus). Užregistruokite jį naudodami `registerPlugin(new MyPlugin())`, kad `getName()` grąžintas pavadinimas būtų atpažįstamas direktyvoje `@plugin "my-plugin"`:

```php
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());
```

Sąsają, visą pavyzdį ir išsamų metodų `PluginAPI` aprašą rasite skiltyje [Tinkinti papildiniai](https://tailwindphp.inline0.dev/lt/docs/plugins/custom).
