A Revolução do Tailwind CSS v4
O Tailwind CSS v4 é um lançamento major que representa uma reformulação completa do framework. Com a adoção do novo engine “Oxide” escrito em Rust, o desempenho de build melhorou dramaticamente.
flowchart LR
CSS["Entrada CSS<br/>(@import)"]
Oxide["Oxide Engine<br/>(Rust)"]
Lightning["Lightning CSS"]
Content["Content Detection"]
Output["Minified Output"]
CSS --> Oxide --> Lightning
Oxide --> Content
Lightning --> Output
Comparação de desempenho: v3: 1000ms -> v4: 100ms (10x mais rápido)
Migração para Configuração CSS-first
Na v4, a configuração migrou de arquivos JavaScript para configuração baseada em CSS:
/* v4: Configuração CSS-first */
@import "tailwindcss";
@theme {
/* Cores personalizadas */
--color-primary: #3b82f6;
--color-secondary: #10b981;
--color-accent: #f59e0b;
/* Fontes personalizadas */
--font-display: "Inter", sans-serif;
--font-body: "Noto Sans JP", sans-serif;
/* Espaçamento personalizado */
--spacing-18: 4.5rem;
--spacing-88: 22rem;
/* Breakpoints personalizados */
--breakpoint-3xl: 1920px;
/* Animações personalizadas */
--animate-fade-in: fade-in 0.5s ease-out;
}
@keyframes fade-in {
from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }
}
Migração da Configuração v3
// v3: tailwind.config.js (método antigo)
module.exports = {
theme: {
extend: {
colors: {
primary: '#3b82f6',
},
fontFamily: {
display: ['Inter', 'sans-serif'],
},
},
},
}
// v4: Pode ser convertido automaticamente para a configuração CSS acima
// Use o comando npx @tailwindcss/upgrade para migrar
Destaques das Novas Funcionalidades
1. Container Queries Nativas
<!-- Container queries com suporte padrão -->
<div class="@container">
<div class="@sm:flex @md:grid @lg:grid-cols-3">
<!-- Layout baseado no tamanho do container -->
<div class="@sm:w-full @md:w-1/2 @lg:w-auto">
Conteúdo
</div>
</div>
</div>
<!-- Containers nomeados -->
<div class="@container/sidebar">
<div class="@md/sidebar:hidden">
Responsivo específico para sidebar
</div>
</div>
2. CSS Cascade Layers
/* Tailwind gerencia automaticamente as layers */
@layer theme, base, components, utilities;
/* Controle de prioridade para estilos personalizados */
@layer components {
.btn-primary {
@apply bg-primary text-white px-4 py-2 rounded-lg;
}
}
@layer utilities {
.text-balance {
text-wrap: balance;
}
}
3. Utilitários de Transformação 3D
<!-- Transformações 3D com suporte padrão -->
<div class="perspective-1000">
<div class="rotate-x-45 rotate-y-30 translate-z-20">
Conteúdo com transformação 3D
</div>
</div>
<!-- preserve-3d mantém posicionamento 3D dos filhos -->
<div class="transform-style-preserve-3d">
<div class="rotate-y-180 backface-hidden">
Verso do flip card
</div>
</div>
4. Nova Sintaxe de Gradientes
<!-- Múltiplos color stops -->
<div class="bg-linear-to-r from-blue-500 via-purple-500 via-50% to-pink-500">
Fundo com gradiente
</div>
<!-- Gradiente radial -->
<div class="bg-radial from-white to-gray-200">
Gradiente circular
</div>
<!-- Gradiente cônico -->
<div class="bg-conic from-red-500 via-yellow-500 to-red-500">
Estilo roda de cores
</div>
Comparação de Desempenho
Comparação de Desempenho de Build (Projeto grande com 10.000 arquivos)
| Versão | Build Completo | Incremental | Uso de Memória |
|---|---|---|---|
| Tailwind v3.4 | 2.450ms | 890ms | 180MB |
| Tailwind v4.0 | 240ms (10x mais rápido) | 45ms (20x mais rápido) | 45MB (redução de 75%) |
Integração do Lightning CSS
Na v4, o Lightning CSS é integrado por padrão, oferecendo as seguintes funcionalidades:
/* Prefixos de vendor automáticos */
.element {
user-select: none; /* Adiciona -webkit-user-select automaticamente */
backdrop-filter: blur(10px); /* Suporte Safari automático */
}
/* Conversão automática de sintaxe CSS moderna */
.container {
/* Sintaxe de aninhamento nativa */
& .child {
color: blue;
&:hover {
color: red;
}
}
}
/* Geração automática de fallback para variáveis CSS */
.text {
color: oklch(70% 0.15 250); /* Converte para rgb para navegadores sem suporte */
}
Detecção Automática de Conteúdo
Detecção Automática de Conteúdo
v3 (configuração manual necessária):
content: [
'./src/**/*.{js,ts,jsx,tsx}',
'./pages/**/*.{js,ts,jsx,tsx}',
'./components/**/*.{js,ts,jsx}',
]
v4 (detecção automática):
@import "tailwindcss";
/* Sem configuração necessária! Escaneia automaticamente */
Arquivos detectados: .html, .js, .jsx, .ts, .tsx, .vue, .svelte, .astro, .mdx, etc.
Uso da Ferramenta de Migração
# Ferramenta de upgrade automático
npx @tailwindcss/upgrade
# O que é migrado:
# 1. Conversão de tailwind.config.js para CSS @theme
# 2. Atualização da configuração PostCSS
# 3. Otimização das diretivas @apply
# 4. Substituição de classes obsoletas
# Exemplo de configuração Vite
npm install tailwindcss@latest @tailwindcss/vite
// vite.config.ts
import { defineConfig } from 'vite';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
plugins: [tailwindcss()],
});
Principais Breaking Changes
| Funcionalidade v3 | Mudança na v4 |
|---|---|
tailwind.config.js | Migração para diretiva CSS @theme |
@tailwind base/components/utilities | Unificado em @import "tailwindcss" |
Função theme() | Usar variável CSS var(--color-*) |
Função screen() | Usar regra @custom-media |
@layer (proprietário Tailwind) | Compatível com CSS padrão @layer |
Perspectivas Futuras
O Tailwind CSS v4 aproveita ao máximo os recursos do CSS moderno enquanto melhora significativamente a experiência do desenvolvedor. Com o engine baseado em Rust, o desenvolvimento confortável é possível mesmo em projetos de grande escala.