
# Приставки

TailwindPHP се доставя с PHP порта на официалните плъгини на TailwindCSS и предоставя нативен плъгин за PHP API. Плъгините регистрират помощни класове, компоненти и варианти; зареждат се с директивата `@plugin` във входния ви CSS. Вградените плъгини са 1:1 портове на съответните им варианти за JavaScript — със същите селектори и изходен код, реализирани на PHP, вместо да се изпълняват чрез Node. Днес има едно изключение: модификаторите на елементи в плъгина за типография (`prose-headings:`, `prose-a:`, …) разчитат на варианти на плъгини, които все още не се прилагат ([Проблем №10](https://github.com/inline0/tailwindphp/issues/10)).

## Използване на `@plugin`

Посочете приставка по име с `@plugin`. Вградените приставки използват името на пакета си npm. Съчетайте директивата с `@import "tailwindcss/utilities.css";`, за да се включат класовете на приставката в слоя с помощни класове:

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

Можете да зареждате няколко приставки заедно; редът няма значение:

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

`@plugin` не може да се вложи в друго правило at-rule (например `@media`), а име на нерегистрирана приставка води до грешка.

## Опции на приставките

Предайте опции на приставка със синтаксис на блок CSS след името. Ключовете съответстват на масива с опции на приставката:

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

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

Приставката `@tailwindcss/forms` приема `strategy` (`base` или `class`); `@tailwindcss/typography` приема `className` за преименуване на генерирания клас `prose`. Вижте страниците на отделните приставки за пълния списък с опции.

## Вградени приставки

| Приставка | Описание |
|--------|-------------|
| `@tailwindcss/typography` | Класовете `prose` — типографски настройки по подразбиране за форматиран текст. Вижте [Типография](https://tailwindphp.inline0.dev/bg/docs/plugins/typography). |
| `@tailwindcss/forms` | Контроли за формуляри, които могат да се нулират и стилизират. Вижте [Формуляри](https://tailwindphp.inline0.dev/bg/docs/plugins/forms). |

## Персонализирани приставки

Напишете собствена приставка, като реализирате `PluginInterface` и използвате методите на `PluginAPI` (`addUtilities`, `matchUtilities`, `addComponents`, `addVariant`, `theme` и други). Регистрирайте я с `registerPlugin(new MyPlugin())`, така че името, върнато от `getName()`, да се намира в директива `@plugin "my-plugin"`:

```php
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());
```

Вижте [Персонализирани приставки](https://tailwindphp.inline0.dev/bg/docs/plugins/custom) за интерфейса, пълен пример и справочник за всички методи на `PluginAPI`.
