Progresso do Tailwind CSS v4.0 é aberto como código aberto
(tailwindcss.com)- Um novo mecanismo de alto desempenho, o Oxide, está sendo desenvolvido para o Tailwind CSS v4.0.
- Ele foi projetado para simplificar a experiência do desenvolvedor e aproveitar as evoluções mais recentes da plataforma web.
- Originalmente estava previsto para ser lançado como uma versão v3.x, mas foi decidido lançá-lo como v4.0 por se tratar de uma nova geração do framework.
- Ainda está em estágio inicial e ainda há muito trabalho pela frente, mas já é possível começar a experimentar com a primeira versão alpha pública.
Novo mecanismo, construído para velocidade
- O novo mecanismo foi reescrito do zero e oferece mais velocidade com menos código.
- Ele proporciona velocidades de build até 10 vezes maiores; o site do Tailwind CSS pode ser compilado em 105ms, e o kit de UI Catalyst em apenas 55ms.
- O novo mecanismo tem um tamanho de instalação mais de 35% menor, mesmo incluindo pacotes nativos pesados como Rust e Lightning CSS.
- Ele usa Rust para lidar com as partes mais custosas do framework e mantém o núcleo em TypeScript para oferecer extensibilidade.
- O novo mecanismo depende apenas do Lightning CSS.
- A equipe escreveu seu próprio parser de CSS e projetou estruturas de dados que oferecem parsing 2 vezes mais rápido que o PostCSS.
Toolchain integrada
- O Tailwind CSS v4 não é mais apenas um plugin, e sim uma ferramenta tudo-em-um para processar CSS.
- Processamento de
@import, vendor prefixing, suporte a aninhamento e outros recursos já vêm embutidos, sem necessidade de configuração separada. - Recursos modernos de CSS, como cores
oklch()e intervalos de media query, são convertidos para uma sintaxe com melhor suporte nos navegadores. - O plugin do PostCSS continuará sendo oferecido, mas a equipe também está explorando plugins para bundlers e disponibiliza um plugin oficial para Vite junto com a primeira versão alpha.
Projetado para a web moderna
- O Tailwind CSS v4 busca construir um framework que continue parecendo de ponta nos próximos anos.
- Ele usa regras
@layerreais para resolver problemas de especificidade que causaram dificuldades no passado. - Usa
@propertypara definir claramente propriedades customizadas internas e possibilitar efeitos como gradientes de fundo. - Usa
color-mixpara facilitar alterações de opacidade em variáveis de cor ou nocurrentColor. - Inclui suporte direto a container queries no núcleo, além de suporte a intervalos de container query com as novas variantes
@min-*e@max-*.
Variantes combináveis
- A nova arquitetura permite compor juntas variantes que atuam sobre seletores diferentes.
- Em versões anteriores, variantes como
group-has-*eram definidas explicitamente no framework, mas agoragroup-*pode ser composto com a variantehas-*existente.
Detecção de conteúdo sem configuração
- Na versão alpha inicial, não é possível configurar caminhos de
content, e na maioria dos projetos não haverá necessidade de definir isso novamente. - Ao usar o plugin do PostCSS ou a CLI, o Tailwind percorre todo o projeto para localizar arquivos de template.
- Ao usar o plugin do Vite, ele se apoia no grafo de módulos para saber com precisão quais arquivos estão realmente em uso.
Configuração com CSS em primeiro lugar
- Um dos principais objetivos do Tailwind CSS v4.0 é fazer o framework parecer nativo de CSS, e não uma biblioteca JavaScript.
- Após a instalação, ele é adicionado ao projeto usando uma instrução comum de
@importem CSS. - Em vez de definir toda a customização em um arquivo de configuração JavaScript, ele usa variáveis CSS.
O que mudou
- Alterações importantes não foram tratadas de forma leviana, mas na v4 algumas coisas passam a funcionar de maneira diferente.
- Utilitários não documentados foram removidos.
- O plugin do PostCSS e a CLI agora são fornecidos como pacotes separados.
- A cor de borda padrão foi removida.
- Por padrão, o utilitário
ringagora é um anel de 1px que usacurrentColor.
Roadmap até a v4.0
- O novo mecanismo foi reescrito do zero e o foco está totalmente na experiência do desenvolvedor com uma nova abordagem de configuração.
- A compatibilidade retroativa é considerada muito importante e é uma das principais frentes de trabalho para a versão estável v4.0.
- Isso inclui suporte a arquivo de configuração JavaScript, configuração explícita de caminhos de conteúdo, outros modos de dark mode, suporte a plugins e utilitários personalizados, configuração de prefixo de classes, suporte a safelists e blocklists, suporte à configuração
important, suporte à funçãotheme()e suporte a CLI standalone, entre outros.
Experimentando a versão alpha
- Algumas versões alpha já foram marcadas, e já é possível começar a testar no seu projeto hoje mesmo.
- Se você usa a extensão Tailwind CSS IntelliSense, será necessário mudar para a versão de pré-lançamento na página da extensão do VS Code.
- Se encontrar algum problema, a equipe pede que você avise no GitHub.
Usando com Vite
- Instale o alpha do Tailwind CSS v4 e o novo plugin para Vite.
- Adicione o plugin ao arquivo
vite.config.ts. - Importe o Tailwind no arquivo CSS principal.
Usando com PostCSS
- Instale o alpha do Tailwind CSS v4 e o pacote separado do plugin do PostCSS.
- Adicione o plugin ao arquivo
postcss.config.js. - Importe o Tailwind no arquivo CSS principal.
Usando com CLI
- Instale o alpha do Tailwind CSS v4 e o pacote separado da CLI.
- Importe o Tailwind no arquivo CSS principal.
- Compile o CSS usando a ferramenta de CLI.
Opinião do GN⁺
- A abertura em código aberto do Tailwind CSS v4.0 dá à comunidade de desenvolvedores a chance de experimentar antecipadamente novos recursos e melhorias. Isso significa uma oportunidade para enviar feedback sobre o framework e contribuir para uma versão final mais estável.
- A melhora de desempenho do novo mecanismo parece reduzir significativamente o tempo de build, o que deve ser especialmente útil em projetos grandes ou em ambientes onde ciclos rápidos de desenvolvimento são importantes.
- A combinação de Rust e TypeScript reflete uma abordagem moderna que busca ao mesmo tempo desempenho e extensibilidade. As partes escritas em Rust maximizam a performance, enquanto o TypeScript facilita a extensão e a manutenção pelos desenvolvedores.
- A nova forma de configuração usando variáveis CSS é mais amigável ao CSS do que a configuração tradicional baseada em JavaScript e pode facilitar a integração com design systems.
- Essas mudanças podem exigir algum trabalho de migração para usuários atuais, mas a expectativa é que, no longo prazo, resultem em uma base de código mais enxuta e mais fácil de manter.
2 comentários
Comentários do Hacker News
Tailwind CSS é a segunda melhor coisa no frontend, e só o Vue 3 supera isso.
Como alguém que critica fortemente o Tailwind, todos os anúncios sob a configuração CSS-first são muito bem-vindos.
CTRL+u mostra um bom exemplo da sintaxe.
Ainda não trabalharam no CLI standalone, mas com certeza ele ficará pronto antes do lançamento da v4.0.
Há muitas melhorias promissoras.
Espero que o Tailwind passe a oferecer suporte a attributify, como o unocss.
Não sou desenvolvedor frontend, mas mantenho alguns sites, e todos usam Tailwind.
Fico me perguntando se existe algum bom tutorial/guia sobre Tailwind.
Fico me perguntando se alguém usa tailwindcss com htmx ou alguma outra abordagem hateoas.
Queria usar isso em um projeto de demonstração, mas
import from "node:@tailwindcss/postcss@latest"gera um erro relacionado ao campoexportsdo package.json.postcss-import, mas ainda assim o inclui como dependência.