TailwindPHP
Uma adaptação de TailwindCSS 4.x para PHP. Gere CSS das classes utilitárias de Tailwind em PHP, sem Node.js nem etapa de compilação. Inclui cn(), tailwind-merge, CVA, os plugins de tipografia e formulários e um CLI.
composer require tailwindphp/tailwindphpVersão mais recente 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'Na prática
Passe a marcação e o arquivo CSS opcional de entrada em uma única chamada PHP para obter uma folha de estilos.
Gere CSS a partir de PHP
tw::generate() analisa a marcação em busca de nomes de classes e retorna apenas os CSS necessários para essas classes. O segundo argumento recebe CSS de entrada, então uma cor definida em @theme se torna uma classe utilitária.
cn() monta strings de classes e resolve conflitos de Tailwind, então a última classe utilitária conflitante prevalece.
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
Sem Node.js nem etapa de compilação. Funciona com PHP 8.2+ e as extensões padrão mbstring e ctype. Execute composer require e comece.
Acompanha TailwindCSS v4.3.3
Uma adaptação de Tailwind v4.3.3 com as mesmas classes utilitárias, variantes e diretivas. As diferenças conhecidas em relação a Tailwind estão documentadas.
4 400+ testes
A saída é verificada com os próprios conjuntos de testes de TailwindCSS, extraídos do seu código-fonte escrito em TypeScript e executados novamente a cada push.
Todas as classes utilitárias e variantes
Conjunto completo de classes utilitárias e todas as variantes: hover, focus, responsivo, modo escuro, consultas de contêiner e valores arbitrários.
Diretivas CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin e @source, analisados e resolvidos em PHP.
Geração em tempo de execução
Gere CSS de classes utilitárias na hora a partir de HTML, conteúdo de banco de dados ou variáveis de modelo. Não é necessária uma etapa de compilação.
Tudo incluído
cn(), merge(), join() e variants(): clsx, tailwind-merge e CVA adaptados para PHP, sem pacotes adicionais.
Plugins
@tailwindcss/typography e @tailwindcss/forms adaptados para PHP, além de uma API de plugins PHP para suas próprias classes utilitárias e componentes.
CLI
bin/tailwindphp cria uma folha de estilos a partir de um arquivo de entrada CSS com -i, -o, --watch e --minify.
Inspecione o tema
Leia valores de propriedade brutos e calculados, cores, pontos de interrupção e espaçamento de qualquer classe diretamente de PHP.
Cache e minificador
Um minificador CSS integrado e um cache de arquivos com TTL mantêm as compilações repetidas rápidas e a saída enxuta.
Frameworks WordPress e PHP
Distribua temas e plugins baseados em Tailwind sem Node.js na pilha. TailwindPHP é uma única dependência Composer.
Por que TailwindPHP
Um único ambiente de execução em produção
Um projeto PHP que adota Tailwind normalmente também passa a usar Node.js, uma instalação npm e uma etapa de compilação em CI e Docker. Em vez disso, TailwindPHP compila o CSS dentro do processo PHP.
CSS para conteúdo conhecido em tempo de execução
A marcação de um banco de dados, da entrada do usuário ou de uma variável de modelo pode ser enviada diretamente para tw::generate(), que retorna apenas os CSS necessários para suas classes.
Verificado com uma versão fixada de Tailwind
Os casos de teste são extraídos do código-fonte de Tailwind fixado no repositório e executados com a saída de PHP, de modo que qualquer divergência faz o CI falhar. A versão 1.7.0 foi verificada com Tailwind v4.3.3 em 4 427 testes.
CSS por página com um único compilador
Compile o tema uma vez com tw::compile() e depois chame generateExact() para cada página. Cada chamada retorna o que uma tw::generate() a frio dessa página produziria, sem analisar o tema novamente.
Comparação com
A Tailwind Labs oferece suas próprias formas de criar Tailwind CSS. Veja como TailwindPHP se diferencia.
| Ferramenta | Ideal para | Diferenças em relação a TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Ideal paraA própria ferramenta de linha de comando de Tailwind, instalada por npm. Ela analisa seus arquivos HTML, componentes e modelos em busca de nomes de classes e grava os estilos correspondentes em um arquivo CSS estático. | Diferenças em relação a TailwindPHPTailwindPHP compila dentro de PHP sem instalação de Node.js ou npm. Acompanha uma versão fixa de Tailwind (v4.3.3 em 1.7.0), e seu próprio benchmark mostra que o original TypeScript executa as operações de baixo nível mais rápido. |
| Tailwind independente CLI | Ideal paraO Tailwind CLI como executável independente, para projetos que querem usá-lo sem instalar Node.js. | Diferenças em relação a TailwindPHPO executável é um binário separado que roda como etapa de compilação. TailwindPHP é um pacote Composer chamado pelo código PHP do seu projeto, que também pode gerar CSS no momento da solicitação a partir de conteúdo de banco de dados ou variáveis de modelo. |
| Tailwind Play CDN | Ideal paraUma tag de script que executa Tailwind no navegador, para experimentá-lo sem etapa de compilação. A documentação de Tailwind diz que ele foi desenvolvido para uso durante o desenvolvimento e não se destina à produção. | Diferenças em relação a TailwindPHPTailwindPHP também dispensa etapa de compilação, mas gera CSS no PHP do servidor e o retorna como string, por exemplo, para gravá-lo em uma folha de estilos. |
Perguntas e respostas
Respostas curtas da documentação do TailwindPHP.
A versão 1.7.0 acompanha Tailwind CSS v4.3.3. Os conjuntos de testes foram extraídos novamente para essa versão.
A saída é testada com casos extraídos dos próprios arquivos de teste de Tailwind. O registro de alterações de 1.7.0 aponta algumas diferenças de serialização. Por exemplo, .p-0 mantém padding: 0px, enquanto o CLI de referência emite padding: 0.
Não. Os plugins são PHP: os plugins de tipografia e formulários foram adaptados, e você pode criar os seus com base no PHP plugin API e registrá-los com registerPlugin(). Um nome @plugin que não esteja registrado gera um erro.
No benchmark do projeto com PHP 8.4.5 e um Apple M1, a geração de uma página completa levou cerca de 14 ms por página. Para entradas repetidas, o cache de arquivos ignora a compilação, e um compilador de longa duração com generateExact() reutiliza o tema analisado.
Não. IntelliSense, o preenchimento automático, a ordenação de classes e os mapas de origem foram deixados de fora intencionalmente. TailwindPHP gera apenas CSS.
PHP 8.2 ou posterior, com as extensões ctype e mbstring. composer.json declara a versão PHP, e o CI executa o conjunto de testes em PHP 8.2, 8.3 e 8.4.
Instale o pacote com Composer e siga o guia de introdução para gerar sua primeira folha de estilos a partir de PHP.