TailwindPHP
Port TailwindCSS 4.x pro PHP. Generujte utility CSS Tailwind v PHP bez Node.js a kroku sestavení. Obsahuje cn(), tailwind-merge, CVA, pluginy pro typografii a formuláře a CLI.
composer require tailwindphp/tailwindphpNejnovější vydání v1.7.0 MIT PHP 8.2+
use function TailwindPHP\merge;
merge('px-2 py-1 bg-red-500', 'px-4 bg-blue-500');
// => 'py-1 px-4 bg-blue-500'
// Conflict resolution is variant-aware
merge('hover:bg-red-500', 'hover:bg-blue-500');
// => 'hover:bg-blue-500'V praxi
Předejte značky a volitelný vstup CSS v jediném volání PHP a získejte stylopis.
Generování CSS z PHP
tw::generate() prohledá značky, najde názvy tříd a vrátí pouze CSS potřebné pro tyto třídy. Druhý argument přijímá vstupní CSS, takže se barva definovaná v @theme změní na utilitu.
cn() skládá řetězce tříd a řeší konflikty mezi Tailwind, takže vyhrává poslední konfliktní utilita.
use TailwindPHP\tw;
$css = tw::generate(
'<div class="bg-brand p-4">Hello</div>',
'@import "tailwindcss"; @theme { --color-brand: #3b82f6; }'
);
// .bg-brand now resolves to var(--color-brand)use function TailwindPHP\cn;
cn('px-2 py-1', 'px-4'); // 'py-1 px-4'
cn('btn', ['btn-primary' => true]); // 'btn btn-primary'Čisté PHP
Bez Node.js a kroku sestavení. Funguje na PHP 8.2+ se standardními rozšířeními mbstring a ctype. Stačí spustit composer require.
Sleduje TailwindCSS v4.3.3
Port Tailwind v4.3.3 se stejnými utilitami, variantami a direktivami. Známé rozdíly oproti Tailwind jsou zdokumentovány.
Testů: 4,400+
Výstup se ověřuje proti vlastním sadám testů TailwindCSS, extrahovaným ze zdrojového kódu TypeScript a znovu spouštěným při každém pushi.
Každá utilita a varianta
Celá sada utilit a všechny varianty: hover, focus, responzivní zobrazení, tmavý režim, dotazy na kontejner a libovolné hodnoty.
Direktivy CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin a @source se zpracovávají a vyhodnocují v PHP.
Generování za běhu
Generujte utility CSS za běhu z HTML, obsahu databáze nebo proměnných šablony. Není potřeba krok sestavení.
Vše potřebné v ceně
cn(), merge(), join() a variants(): clsx, tailwind-merge a CVA převedené do PHP, bez dalších balíčků.
Pluginy
@tailwindcss/typography a @tailwindcss/forms převedené do PHP spolu s pluginem PHP API pro vlastní utility a komponenty.
CLI
bin/tailwindphp sestaví stylopis ze vstupního souboru CSS pomocí voleb -i, -o, --watch a --minify.
Prohlížení tématu
Přímo z PHP načtěte surové i vypočtené hodnoty vlastností, barvy, body zlomu a rozestupy pro libovolnou třídu.
Mezipaměť a minifikátor
Vestavěný minifikátor CSS a mezipaměť souborů s TTL zrychlují opakovaná sestavení a zmenšují výstup.
Frameworky WordPress a PHP
Vytvářejte témata a pluginy založené na Tailwind bez Node.js v sadě technologií. TailwindPHP je jediná závislost Composer.
Proč TailwindPHP
Jedno prostředí za běhu v produkci
Projekt PHP, který začne používat Tailwind, obvykle přidá také Node.js, instalaci npm a krok sestavení v CI i Docker. TailwindPHP místo toho kompiluje CSS přímo v procesu PHP.
CSS pro obsah známý až za běhu
Značky z databáze, uživatelského vstupu nebo proměnné šablony lze předat přímo do tw::generate(), které vrátí pouze CSS potřebné pro jejich třídy.
Ověřeno podle konkrétní verze Tailwind
Testovací případy se extrahují ze zdrojového kódu Tailwind připnutého v repozitáři a spouštějí se proti výstupu PHP, takže odchylka způsobí selhání CI. Vydání 1.7.0 bylo ověřeno pomocí 4,427 testů na Tailwind v4.3.3.
CSS pro každou stránku z jednoho kompilátoru
Zkompilujte téma jednou pomocí tw::compile() a pak pro každou stránku zavolejte generateExact(). Každé volání vrátí výsledek, který by vytvořila nová kompilace tw::generate() dané stránky, aniž by znovu analyzovalo téma.
Srovnání
Tailwind Labs nabízí vlastní způsoby sestavování Tailwind CSS. Tím se liší TailwindPHP.
| Nástroj | Vhodné pro | Rozdíl oproti TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Vhodné proVlastní nástroj příkazového řádku Tailwind nainstalovaný z npm. Prohledává vaše soubory HTML, komponenty a šablony, hledá názvy tříd a zapisuje odpovídající styly do statického souboru CSS. | Rozdíl oproti TailwindPHPTailwindPHP se kompiluje uvnitř PHP bez instalace Node.js ani npm. Sleduje pevně stanovenou verzi Tailwind (v4.3.3 v 1.7.0) a vlastní benchmark ukazuje, že původní TypeScript provádí nízkoúrovňové operace rychleji. |
| samostatné Tailwind CLI | Vhodné proTailwind CLI jako samostatný spustitelný soubor pro projekty, které jej chtějí používat bez instalace Node.js. | Rozdíl oproti TailwindPHPSpustitelný soubor je samostatný binární soubor, který se spouští jako krok sestavení. TailwindPHP je balíček Composer, jehož funkce volá váš kód PHP, takže může také generovat CSS za běhu na základě obsahu databáze nebo proměnných šablony. |
| Tailwind Play CDN | Vhodné proZnačka script spouští Tailwind v prohlížeči, takže si jej můžete vyzkoušet bez sestavení. Dokumentace Tailwind uvádí, že je určen pro vývoj, nikoli pro produkční nasazení. | Rozdíl oproti TailwindPHPTailwindPHP také nevyžaduje sestavení, ale generuje CSS v PHP na serveru a vrací jej jako řetězec, například pro zápis do stylesheetu. |
Zdroje, zaškrtnuto
Otázky a odpovědi
Stručné odpovědi z dokumentace TailwindPHP.
Vydání 1.7.0 sleduje Tailwind CSS v4.3.3. Jeho testovací sady byly znovu extrahovány pro tuto verzi.
Výstup se testuje podle případů extrahovaných z vlastních testovacích souborů Tailwind. Záznam změn 1.7.0 uvádí několik rozdílů v serializaci; například .p-0 zachovává padding: 0px, zatímco referenční CLI vypisuje padding: 0.
Ne. Pluginy jsou PHP: pluginy typography a forms jsou portované a vlastní můžete napsat podle PHP API pro pluginy a zaregistrovat jej pomocí registerPlugin(). Neregistrovaný název @plugin vyvolá chybu.
V benchmarku projektu na PHP 8.4.5 a Apple M1 trvalo generování celé stránky přibližně 14 ms. U opakovaného vstupu přeskočí souborová mezipaměť kompilaci a dlouhodobě běžící kompilátor s generateExact() znovu používá parsované téma.
Ne. IntelliSense, automatické doplňování, řazení tříd a zdrojové mapy jsou záměrně vynechány. TailwindPHP pouze generuje CSS.
PHP 8.2 nebo novější s rozšířeními ctype a mbstring. composer.json deklaruje verzi PHP a CI spouští testovací sadu na PHP 8.2, 8.3 a 8.4.
Nainstalujte balíček pomocí Composer a podle průvodce Začínáme vygenerujte svůj první stylesheet z PHP.