Vai al contenuto

TailwindPHP

TailwindPHP è un port 1:1 di TailwindCSS 4.x per PHP. Analizza il vostro CSS, cerca i nomi delle classi nel markup e genera il CSS di utility prodotto da TailwindCSS v4.3.3, interamente in PHP, senza Node.js né passaggi di compilazione.

  • PHP puro: viene distribuito come pacchetto Composer e funziona su PHP 8.2+ con le estensioni standard ctype e mbstring. Niente exec, FFI o strumenti di compilazione nativa.
  • Verificato con TailwindCSS: utility, varianti, direttive e funzioni CSS seguono TailwindCSS v4.3.3. L'output è verificato con le suite di test di Tailwind, estratte dal codice sorgente TypeScript e rieseguite a ogni push (oltre 4,400 test). Le differenze note (alcuni dettagli di serializzazione senza effetti sulla cascata, oltre a problemi ancora aperti) sono elencate in Compatibilità e aggiornamento.
  • L'intero set di funzionalità: tutto il set di utility TailwindCSS v4.3.3 (inclusi container, le utility per le barre di scorrimento, zoom-* e tab-*), tutte le varianti (hover, focus, responsive, modalità scura, query dei contenitori e valori arbitrari) e tutte le direttive: @import, @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin e @source.
  • Tutto incluso: cn(), merge(), join() e variants() includono port PHP di clsx, tailwind-merge e CVA, così le librerie complementari usate in ogni progetto Tailwind sono già disponibili.
  • Plugin: @tailwindcss/typography e @tailwindcss/forms sono portati integralmente, e il plugin PHP API vi permette di crearne di vostri.

Perché esiste TailwindPHP

TailwindCSS è scritto in TypeScript ed è eseguito su Node.js. È un requisito imprescindibile per qualsiasi progetto PHP che voglia usare Tailwind: un secondo runtime, un'installazione npm e un passaggio di compilazione nella CI e in Docker. Per molte applicazioni PHP, è un vincolo che si preferirebbe evitare.

TailwindPHP lo elimina. Il vostro codice PHP viene compilato direttamente in Tailwind CSS usando solo la libreria standard. Questo consente di realizzare alcune cose difficili o impossibili con la toolchain JavaScript:

  • Framework WordPress e PHP: distribuite temi e plugin basati su Tailwind senza chiedere agli utenti di installare Node.js o avviare una compilazione. Vi basta composer require e il gioco è fatto. Consultate TailwindWP, un plugin di esempio WordPress che genera CSS per l'editor a blocchi con TailwindPHP.
  • CSS in fase di esecuzione: generate CSS di utility al volo a partire da input utente, contenuti del database o variabili del template, invece che in fase di compilazione.
  • Distribuzione più semplice: niente Node.js in produzione, passaggi di compilazione nella CI o npm nell'immagine Docker.

È la stessa idea che scssphp ha portato in SCSS: il compilatore completo, in PHP.

Cosa fa

  • Compila il set di utility TailwindCSS v4.3.3, le varianti e i valori arbitrari a partire dai nomi delle classi trovati nei tuoi contenuti.
  • Risolve l'intera gamma di direttive: @import (inclusi moduli virtuali come tailwindcss e tailwindcss/utilities, e importazioni reference), @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin e @source.
  • Implementa le funzioni CSS di Tailwind — theme(), --theme(), --spacing() e --alpha() — oltre alla conversione da color-mix() a oklab() e alle trasformazioni CSS delegate da TailwindCSS a LightningCSS.
  • Risolve @import dal filesystem con importazioni annidate, deduplicazione e resolver personalizzati, oppure da stringhe CSS inline.
  • Include Preflight (il reset di base di Tailwind), il supporto ai prefissi, fallback @property, prefissi vendor e accorpamento dei keyframe.
  • Include cn(), merge(), join() e variants()/compose() per costruire nomi di classe, risolvere conflitti e gestire varianti dei componenti.
  • Include i plugin per tipografia e moduli, oltre a un API plugin (addUtilities, matchUtilities, addComponents, addVariant, theme, …) per i plugin personalizzati.
  • Fornisce un CLI (bin/tailwindphp) con le opzioni di build @tailwindcss/cli, oltre alla cache dell'output basata sui file, a una cache persistente dello stato del compilatore e a un minificatore CSS per la produzione.

Cosa non è

TailwindPHP è un compilatore CSS, non una toolchain per editor. Esclude deliberatamente gli strumenti rivolti all'IDE dell'ecosistema Tailwind — IntelliSense, completamento automatico, ordinamento delle classi e mappe sorgente — perché sono funzionalità dell'editor, non fanno parte della generazione di CSS. Rientra nell'ambito tutto ciò che produce CSS; ne è escluso tutto ciò che alimenta il tuo editor.

Da dove iniziare

  • Per iniziare — installa il pacchetto e genera il tuo primo foglio di stile.
  • Utilizzo — analizza i contenuti, personalizza il tema e usa le direttive di Tailwind.
  • Utility di classe — cn(), merge(), join() e variants().
  • Plugin — tipografia, moduli e come crearne uno.
  • API — l'intera gamma tw e l'istanza TailwindCompiler.
  • CLI — bin/tailwindphp per build basate su file e modalità watch.
  • Avanzate — architettura, cache, prestazioni e note sulla compatibilità.