Přejít k obsahu

Pluginy

TailwindPHP obsahuje porty PHP oficiálních pluginů TailwindCSS a zpřístupňuje nativní rozhraní pluginů PHP API. Pluginy registrují utility, komponenty a varianty; načítají se direktivou @plugin ve vstupním CSS. Vestavěné pluginy jsou věrnými porty 1:1 svých protějšků JavaScript — mají stejné selektory a výstup, ale jsou implementované v PHP místo spouštění přes Node. Jedinou výjimkou jsou zatím modifikátory prvků v typografickém pluginu (prose-headings:, prose-a:, …), které spoléhají na varianty pluginů, jež se dosud nepoužívají (#10).

Použití @plugin

Na plugin odkažte jeho názvem pomocí @plugin. Vestavěné pluginy používají název balíčku npm. Spojte direktivu s @import "tailwindcss/utilities.css";, aby se třídy pluginu přidaly do vrstvy utilit:

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

Lze načíst více pluginů současně a jejich pořadí není důležité:

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

@plugin nelze vnořit do jiné direktivy at-rule (například @media); neregistrovaný název pluginu vyvolá chybu.

Možnosti pluginů

Možnosti pluginu předáte syntaxí bloku CSS za názvem. Klíče odpovídají poli možností pluginu:

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

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

Plugin @tailwindcss/forms přijímá strategy (base nebo class); @tailwindcss/typography přijímá className pro přejmenování generované třídy prose. Úplný seznam možností najdete na stránkách jednotlivých pluginů.

Vestavěné pluginy

Plugin Popis
@tailwindcss/typography Třídy prose — typografická výchozí nastavení pro formátovaný text. Viz Typografie.
@tailwindcss/forms Ovládací prvky formuláře, které lze resetovat a stylovat. Viz Formuláře.

Vlastní pluginy

Vytvořte vlastní plugin implementací PluginInterface a použitím metod v PluginAPI (addUtilities, matchUtilities, addComponents, addVariant, theme a dalších). Zaregistrujte jej pomocí registerPlugin(new MyPlugin()), aby se název vrácený funkcí getName() rozpoznal v direktivě @plugin "my-plugin":

PHP
use function TailwindPHP\registerPlugin;

registerPlugin(new MyCustomPlugin());

Rozhraní, úplný příklad a kompletní přehled metod PluginAPI najdete v části Vlastní pluginy.