跳转到正文

插件

TailwindPHP 提供官方 TailwindCSS 插件的 PHP 移植版,并提供原生 PHP 插件 API。插件可注册工具、组件和变体;在输入 CSS 中使用 @plugin 指令加载插件。内置插件是其 JavaScript 对应插件的 1:1 移植版——选择器和输出均相同——使用 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 规则(例如 @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 方法参考,请参阅自定义插件。