TailwindPHP
Un port de TailwindCSS 4.x a PHP. Genera Tailwind utilidades CSS en PHP, sin Node.js ni paso de compilación. Incluye cn(), tailwind-merge, CVA, los plugins de tipografía y formularios, y un CLI.
composer require tailwindphp/tailwindphpÚltima versió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'En la práctica
Pase el marcado y el CSS de entrada opcional en una sola llamada a PHP para obtener una hoja de estilos.
Genere CSS a partir de PHP
tw::generate() analiza el marcado en busca de nombres de clases y devuelve solo el CSS que necesitan. El segundo argumento acepta CSS de entrada, así que un color definido en @theme se convierte en una utilidad.
cn() construye cadenas de clases y resuelve los conflictos de Tailwind, de modo que prevalece la última utilidad en conflicto.
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
Sin Node.js ni paso de compilación. Funciona con PHP 8.2+ y las extensiones mbstring y ctype estándar. Ejecute composer require y listo.
Sigue TailwindCSS v4.3.3
Un port de Tailwind v4.3.3 con las mismas utilidades, variantes y directivas. Las diferencias conocidas con Tailwind están documentadas.
Más de 4,400 pruebas
El resultado se verifica con las propias suites de pruebas de TailwindCSS, extraídas del código fuente de TypeScript y ejecutadas de nuevo en cada subida.
Todas las utilidades y variantes
El conjunto completo de utilidades y todas las variantes: hover, focus, adaptables, modo oscuro, consultas de contenedor y valores arbitrarios.
Directivas CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin y @source, analizados y resueltos en PHP.
Generación en tiempo de ejecución
Genere utilidades CSS sobre la marcha a partir de HTML, contenido de bases de datos o variables de plantillas. No hace falta compilar.
Todo incluido
cn(), merge(), join() y variants(): clsx, tailwind-merge y CVA adaptados a PHP, sin paquetes adicionales.
Plugins
@tailwindcss/typography y @tailwindcss/forms adaptados a PHP, además de un PHP plugin API para sus propias utilidades y componentes.
CLI
bin/tailwindphp crea una hoja de estilos a partir de un archivo CSS de entrada con -i, -o, --watch y --minify.
Inspeccione el tema
Consulte los valores de propiedades sin procesar y calculados, los colores, los puntos de ruptura y el espaciado de cualquier clase directamente desde PHP.
Caché y minificador
Un minificador CSS integrado y una caché de archivos con TTL mantienen rápidas las compilaciones repetidas y reducen el tamaño de la salida.
Frameworks WordPress y PHP
Distribuya temas y plugins basados en Tailwind sin Node.js en la pila. TailwindPHP es una única dependencia Composer.
Por qué TailwindPHP
Un entorno de ejecución en producción
Un proyecto PHP que adopta Tailwind suele incorporar también Node.js, una instalación de npm y un paso de compilación en CI y Docker. En cambio, TailwindPHP compila CSS dentro del proceso PHP.
CSS para contenido conocido en tiempo de ejecución
El marcado procedente de una base de datos, la entrada del usuario o una variable de plantilla puede pasarse directamente a tw::generate(), que devuelve solo el CSS que necesitan sus clases.
Verificado con una versión fijada de Tailwind
Los casos de prueba se extraen del código fuente de Tailwind fijado en el repositorio y se ejecutan con la salida de PHP, por lo que cualquier desviación hace fallar CI. La versión 1.7.0 se verificó con Tailwind v4.3.3 mediante 4,427 pruebas.
CSS por página con un solo compilador
Compile el tema una vez con tw::compile() y luego llame a generateExact() para cada página. Cada llamada devuelve lo que produciría una tw::generate() en frío de esa página, sin volver a analizar el tema.
Comparación con
Tailwind Labs ofrece sus propias formas de compilar Tailwind CSS. Estas son las diferencias de TailwindPHP.
| Herramienta | Ideal para | Diferencia con TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Ideal paraLa herramienta de línea de comandos propia de Tailwind, instalada desde npm. Analiza sus archivos HTML, componentes y plantillas en busca de nombres de clases y escribe los estilos correspondientes en un archivo CSS estático. | Diferencia con TailwindPHPTailwindPHP compila dentro de PHP sin instalar Node.js ni npm. Sigue una versión fija de Tailwind (v4.3.3 en 1.7.0), y su propio benchmark muestra que la versión original TypeScript ejecuta más rápido las operaciones de bajo nivel. |
| Tailwind independiente CLI | Ideal paraEl Tailwind CLI como ejecutable independiente, para proyectos que quieran usarlo sin instalar Node.js. | Diferencia con TailwindPHPEl ejecutable es un binario independiente que se ejecuta como paso de compilación. TailwindPHP es un paquete Composer al que llama su código PHP, por lo que también puede generar CSS durante una solicitud a partir del contenido de una base de datos o de variables de plantilla. |
| Tailwind Play CDN | Ideal paraUna etiqueta script que ejecuta Tailwind en el navegador para probarlo sin ningún paso de compilación. La documentación de Tailwind indica que está diseñado para desarrollo y no para producción. | Diferencia con TailwindPHPTailwindPHP tampoco requiere un paso de compilación, pero genera el CSS en PHP en el servidor y lo devuelve como cadena; por ejemplo, para escribirlo en una hoja de estilos. |
Preguntas y respuestas
Respuestas breves de la documentación de TailwindPHP.
La versión 1.7.0 sigue Tailwind CSS v4.3.3. Las suites de pruebas se volvieron a extraer para esa versión.
El resultado se prueba con casos extraídos de los propios archivos de prueba de Tailwind. El registro de cambios de 1.7.0 documenta algunas diferencias de serialización; por ejemplo, .p-0 conserva padding: 0px, mientras que la referencia CLI genera padding: 0.
No. Los plugins son PHP: se han adaptado los de tipografía y formularios, y puede escribir los suyos con la API de plugins PHP API y registrarlos con registerPlugin(). Un nombre @plugin que no esté registrado provoca un error.
En el benchmark del proyecto con PHP 8.4.5 y un Apple M1, generar una página completa tardó unos 14 ms por página. Para las entradas repetidas, la caché de archivos evita la compilación, y un compilador de larga duración con generateExact() reutiliza el tema analizado.
No. IntelliSense, el autocompletado, la ordenación de clases y los mapas de origen se omiten deliberadamente. TailwindPHP solo genera CSS.
PHP 8.2 o posterior, con las extensiones ctype y mbstring. composer.json declara la versión PHP, y CI ejecuta la suite de pruebas en PHP 8.2, 8.3 y 8.4.
Instale el paquete con Composer y siga la guía de inicio para generar su primera hoja de estilos a partir de PHP.