
# Spraudņi

TailwindPHP ietver PHP oficiālo TailwindCSS spraudņu portus un nodrošina vietējo PHP spraudņu API. Spraudņi reģistrē utilītas, komponentus un variantus; tie tiek ielādēti ar direktīvu `@plugin` jūsu ievades CSS. Iebūvētie spraudņi ir 1:1 to JavaScript līdzinieku porti — ar tiem pašiem atlasītājiem un izvadi — un ir ieviesti PHP, nevis izpildīti ar Node starpniecību. Pašlaik ir viens izņēmums: tipogrāfijas spraudņa elementu modifikatori (`prose-headings:`, `prose-a:`, …) balstās uz spraudņu variantiem, kas vēl netiek piemēroti ([#10](https://github.com/inline0/tailwindphp/issues/10)).

## Lietošana ar `@plugin`

Norādiet spraudni pēc nosaukuma, izmantojot `@plugin`. Iebūvētajiem spraudņiem izmantojiet to npm pakotnes nosaukumu. Apvienojiet direktīvu ar `@import "tailwindcss/utilities.css";`, lai spraudņa klases tiktu iekļautas utilītu slānī:

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

Vienlaikus var ielādēt vairākus spraudņus; to secība nav svarīga:

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

`@plugin` nedrīkst ievietot citā at-rules direktīvā (piemēram, `@media`); nereģistrēta spraudņa nosaukuma gadījumā rodas kļūda.

## Spraudņa opcijas

Nododiet spraudnim opcijas, izmantojot bloka sintaksi CSS pēc nosaukuma. Atslēgas atbilst spraudņa opciju masīvam:

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

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

`@tailwindcss/forms` spraudnis pieņem `strategy` (`base` vai `class`); `@tailwindcss/typography` pieņem `className`, lai pārdēvētu ģenerēto `prose` klasi. Pilnu opciju sarakstu skatiet katra spraudņa lapā.

## Iebūvētie spraudņi

| Spraudnis | Apraksts |
|--------|-------------|
| `@tailwindcss/typography` | Klases `prose` — tipogrāfijas noklusējumi bagātinātam tekstam. Skatiet [Tipogrāfija](https://tailwindphp.inline0.dev/lv/docs/plugins/typography). |
| `@tailwindcss/forms` | Atiestatāmas un pielāgojamas veidlapu vadīklas. Skatiet [Veidlapas](https://tailwindphp.inline0.dev/lv/docs/plugins/forms). |

## Pielāgoti spraudņi

Izveidojiet savu spraudni, ieviešot `PluginInterface` un izmantojot `PluginAPI` metodes (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme` un citas). Reģistrējiet to ar `registerPlugin(new MyPlugin())`, lai nosaukumu, ko atgriež `getName()`, varētu atrast `@plugin "my-plugin"` direktīvā:

```php
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());
```

Interfeisu, pilnu piemēru un visu metožu atsauci skatiet sadaļā [Pielāgoti spraudņi](https://tailwindphp.inline0.dev/lv/docs/plugins/custom) (metožu atsauces sadaļā `PluginAPI`).
