TailwindPHP
Un port di TailwindCSS 4.x per PHP. Genera Tailwind utility CSS in PHP, senza Node.js né passaggio di compilazione. Include cn(), tailwind-merge, CVA, i plugin per tipografia e moduli e un CLI.
composer require tailwindphp/tailwindphpUltima versione 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'Nella pratica
Passa il markup e, facoltativamente, l'input CSS in un'unica chiamata a PHP per ottenere un foglio di stile.
Genera CSS da PHP
tw::generate() analizza il markup alla ricerca dei nomi delle classi e restituisce solo le CSS necessarie a quelle classi. Il secondo argomento accetta l'input CSS, così un colore definito in @theme diventa un'utilità.
cn() crea stringhe di classi e risolve i conflitti tra Tailwind, quindi prevale l'ultima utilità in conflitto.
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'PHP puro
Nessun Node.js né passaggio di compilazione. Funziona con PHP 8.2+ e le estensioni standard mbstring e ctype. Esegui composer require e sei pronto.
Segue TailwindCSS v4.3.3
Un port di Tailwind v4.3.3 con le stesse utilità, varianti e direttive. Le differenze note rispetto a Tailwind sono documentate.
4.400+ test
L’output viene verificato con le suite di test originali di TailwindCSS, estratte dal suo codice sorgente TypeScript ed eseguite di nuovo a ogni push.
Ogni utilità e variante
L'intero set di utilità e tutte le varianti: hover, focus, responsive, modalità scura, query container e valori arbitrari.
Direttive CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin e @source, analizzati e risolti in PHP.
Generazione in fase di esecuzione
Genera CSS di utilità al volo da HTML, contenuti del database o variabili dei modelli. Non serve alcun passaggio di compilazione.
Tutto incluso
cn(), merge(), join() e variants(): clsx, tailwind-merge e il port di CVA per PHP, senza pacchetti aggiuntivi.
Plugin
@tailwindcss/typography e @tailwindcss/forms portati su PHP, con l'aggiunta di un plugin PHPAPI per creare utility e componenti personalizzati.
CLI
bin/tailwindphp crea un foglio di stile da un file CSS di input con -i, -o, --watch e --minify.
Esplora il tema
Leggi i valori grezzi e calcolati delle proprietà, i colori, i breakpoint e la spaziatura di qualsiasi classe direttamente da PHP.
Cache e minificatore
Un minificatore CSS integrato e una cache su file con TTL velocizzano le compilazioni ripetute e mantengono snello l'output.
Framework WordPress e PHP
Distribuisci temi e plugin basati su Tailwind senza Node.js nello stack. TailwindPHP è un'unica dipendenza Composer.
Perché TailwindPHP
Un solo runtime in produzione
Un progetto PHP che adotta Tailwind di solito introduce anche Node.js, un'installazione npm e un passaggio di compilazione in CI e Docker. Invece, TailwindPHP compila CSS all'interno del processo PHP.
CSS per contenuti noti in fase di esecuzione
Il markup proveniente da un database, dall'input dell'utente o da una variabile di modello può essere passato direttamente a tw::generate(), che restituisce solo le CSS necessarie alle sue classi.
Verificato con una versione fissata di Tailwind
I casi di test vengono estratti dal codice sorgente di Tailwind fissato nel repository ed eseguiti sull'output di PHP, quindi ogni divergenza fa fallire CI. La release 1.7.0 è stata verificata con Tailwind v4.3.3 e 4,427 test.
CSS per pagina da un solo compilatore
Compila il tema una volta con tw::compile(), poi chiama generateExact() per ogni pagina. Ogni chiamata restituisce ciò che produrrebbe una tw::generate() della pagina, senza analizzare di nuovo il tema.
A confronto con
Tailwind Labs offre i propri metodi per creare Tailwind CSS. Ecco in cosa differisce TailwindPHP.
| Strumento | Ideale per | Differenze rispetto a TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Ideale perIl proprio strumento da riga di comando di Tailwind, installato da npm. Analizza i file HTML, i componenti e i modelli alla ricerca dei nomi delle classi e scrive gli stili corrispondenti in un file CSS statico. | Differenze rispetto a TailwindPHPTailwindPHP compila all'interno di PHP senza installare Node.js o npm. Segue una release fissa di Tailwind (v4.3.3 in 1.7.0); il suo benchmark mostra che l'originale TypeScript esegue più velocemente le operazioni di basso livello. |
| Tailwind autonomo CLI | Ideale perTailwind CLI come eseguibile autonomo, per i progetti che vogliono usarlo senza installare Node.js. | Differenze rispetto a TailwindPHPL'eseguibile è un binario separato che viene eseguito come passaggio di compilazione. TailwindPHP è un pacchetto Composer richiamato dal codice PHP, quindi può anche generare CSS al momento della richiesta a partire da contenuti del database o variabili dei modelli. |
| Tailwind Play CDN | Ideale perUn tag script che esegue Tailwind nel browser, per provarlo senza passaggi di compilazione. La documentazione di Tailwind dichiara che è progettato per lo sviluppo e non destinato alla produzione. | Differenze rispetto a TailwindPHPAnche TailwindPHP non richiede passaggi di compilazione, ma genera CSS in PHP sul server e lo restituisce come stringa, per esempio per scriverlo in un foglio di stile. |
Domande e risposte
Risposte brevi dalla documentazione di TailwindPHP.
La release 1.7.0 segue Tailwind CSS v4.3.3. Le suite di test sono state estratte di nuovo per quella versione.
L'output viene verificato con casi estratti dai file di test originali di Tailwind. Il registro delle modifiche di 1.7.0 riporta alcune differenze di serializzazione: per esempio, .p-0 mantiene padding: 0px, mentre il riferimento CLI produce padding: 0.
No. I plugin sono PHP: sono stati portati quelli per tipografia e moduli e puoi scriverne di tuoi usando l'PHPAPI dei plugin, quindi registrarli con registerPlugin(). Un nome @plugin non registrato genera un errore.
Nel benchmark del progetto, eseguito su PHP 8.4.5 e un Apple M1, la generazione di una pagina completa ha richiesto circa 14 ms. Per input ripetuti la cache su file salta la compilazione, mentre un compilatore a lunga durata con generateExact() riutilizza il tema analizzato.
No. IntelliSense, il completamento automatico, l'ordinamento delle classi e le mappe sorgente sono esclusi intenzionalmente. TailwindPHP genera solo CSS.
PHP 8.2 o versioni successive, con le estensioni ctype e mbstring. composer.json dichiara la versione PHP e CI esegue la suite di test su PHP 8.2, 8.3 e 8.4.
Installa il pacchetto con Composer e segui la guida introduttiva per generare il tuo primo foglio di stile da PHP.