Перейти к содержимому

Плагины

TailwindPHP поставляется с портами PHP официальных плагинов TailwindCSS и предоставляет нативный плагин PHP API. Плагины регистрируют утилиты, компоненты и варианты; они загружаются директивой @plugin во входном CSS. Встроенные плагины — это 1:1-порты своих аналогов JavaScript: у них те же селекторы и выходные данные, но реализованы они на PHP, а не выполняются через Node. Сейчас есть одно исключение: модификаторы элементов плагина типографики (prose-headings:, prose-a:, …) зависят от вариантов плагина, которые пока не применяются (#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 — типографические настройки по умолчанию для форматированного текста. См. раздел Типографика.
@tailwindcss/forms Сбрасываемые и настраиваемые элементы форм. См. раздел Формы.

Пользовательские плагины

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

PHP
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());

См. раздел Пользовательские плагины: описание интерфейса, полный пример и справочник по методу PluginAPI.