Saltar al contenido

Complementos

TailwindPHP incluye ports PHP de los complementos oficiales de TailwindCSS y ofrece una interfaz de complementos PHP nativa API. Los complementos registran utilidades, componentes y variantes; se cargan con la directiva @plugin en el archivo de entrada CSS. Los complementos integrados son ports 1:1 de sus equivalentes de JavaScript —con los mismos selectores y resultados—, implementados en PHP en lugar de ejecutarse mediante Node. Actualmente hay una excepción: los modificadores de elementos del complemento de tipografía (prose-headings:, prose-a:, …) dependen de variantes de complementos, que aún no se aplican (#10).

Uso de @plugin

Haz referencia a un complemento por nombre con @plugin. Los complementos integrados usan el nombre de su paquete npm. Combina la directiva con @import "tailwindcss/utilities.css"; para que las clases del complemento se emitan en la capa de utilidades:

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

Se pueden cargar varios complementos a la vez, sin importar el orden:

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

@plugin no se puede anidar dentro de otra regla at ni (como @media); si el nombre del complemento no está registrado, se produce un error.

Opciones de complementos

Pasa opciones a un complemento con la sintaxis de bloque CSS después del nombre. Las claves se asignan al arreglo de opciones del complemento:

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

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

El complemento @tailwindcss/forms acepta strategy (base o class); @tailwindcss/typography acepta className para cambiar el nombre de la clase prose generada. Consulta las páginas de cada complemento para ver todas las opciones.

Complementos integrados

Complemento Descripción
@tailwindcss/typography Las clases prose: valores tipográficos predeterminados para texto enriquecido. Consulta Tipografía.
@tailwindcss/forms Controles de formulario restablecibles y fáciles de estilizar. Consulta Formularios.

Complementos personalizados

Crea tu propio complemento implementando PluginInterface y usando los métodos de PluginAPI (addUtilities, matchUtilities, addComponents, addVariant, theme y otros). Regístralo con registerPlugin(new MyPlugin()) para que el nombre que devuelve getName() se resuelva en una directiva @plugin "my-plugin":

PHP
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());

Consulta Complementos personalizados para ver la interfaz, un ejemplo completo y la referencia completa de métodos de PluginAPI.