Configuração CSS-First
Explore como o Tailwind CSS v4 revoluciona a configuração, abandonando o tailwind.config.js para uma abordagem CSS-first. Aprenda a customizar seu tema e plugins nativamente via CSS.
O arquivo tailwind.config.js historicamente foi o centro de configuração do Tailwind CSS. No entanto, com a chegada do Tailwind CSS v4, o framework passou por uma reformulação arquitetônica profunda, adotando uma abordagem baseada em CSS nativo (CSS-first).
Abaixo está o artigo atualizado, explicando o papel desse arquivo nas versões anteriores (v3 e anteriores) e como a configuração funciona no ecossistema atual da v4.
O Papel do tailwind.config.js (v3 e anteriores)
Nas versões anteriores do Tailwind CSS (como a v3), o arquivo tailwind.config.js era essencial. Ele servia como o cérebro do framework, escrito em JavaScript (Node.js), responsável por definir o comportamento, estender o tema e gerenciar os arquivos que deveriam ser escaneados.
Esse arquivo era gerado automaticamente com o comando:
Bash
npx tailwindcss init
Ou com suporte a PostCSS:
Bash
npx tailwindcss init -p
Estrutura básica na v3
Um arquivo tailwind.config.js padrão continha a seguinte estrutura:
JavaScript
module.exports = {
content: [],
theme: {
extend: {},
},
plugins: [],
}
-
Seção content: Definia os caminhos de todos os arquivos de template (HTML, JS, JSX, TS, TSX) para que o motor do Tailwind pudesse escanear as classes utilizadas e remover o CSS não utilizado em produção (processo de purge).
-
Seção theme: Permitia redefinir ou estender o design padrão (cores, espaçamentos, fontes). Usando
extend, os valores eram adicionados ao tema existente; fora dele, o tema padrão era sobrescrito. -
Seção plugins: Utilizada para registrar plugins oficiais (como
@tailwindcss/forms) ou personalizados para injetar novos utilitários ou componentes via JavaScript.
A Evolução no Tailwind CSS v4: Configuração CSS-First
No Tailwind CSS v4, a configuração baseada em JavaScript tornou-se opcional para a grande maioria dos projetos. O framework foi reescrito para ser CSS-first, o que significa que toda a personalização do tema, variáveis e diretivas agora acontece diretamente no seu arquivo CSS principal utilizando variáveis e diretivas nativas do CSS (@theme, @import, etc.).
O que mudou?
-
Sem arquivo de configuração obrigatório: O arquivo
tailwind.config.jsnão é mais gerado por padrão. -
Detecção automática de conteúdo: A seção
contentfoi eliminada na v4. O Tailwind agora escaneia automaticamente os arquivos do projeto com base no seu sistema de build (Vite, Next.js, etc.), tornando o processo mais rápido e inteligente. -
Configuração via CSS: Variáveis de tema e customizações são feitas usando a diretiva
@theme.
Se você ainda precisar usar um arquivo tailwind.config.js na v4 (por exemplo, para compatibilidade com ferramentas legadas ou plugins complexos baseados em JS), ele ainda é detectado e suportado como uma camada de compatibilidade, mas o padrão recomendado mudou.
Estrutura Atualizada do Artigo (Padrão Tailwind v4)
Abaixo está a versão atualizada do artigo refletindo as práticas modernas do framework.
O arquivo CSS principal é o novo centro de configuração do Tailwind CSS v4. Através de uma abordagem baseada em CSS nativo (CSS-first), você pode personalizar completamente o comportamento e a aparência do framework, ajustando desde cores e espaçamentos até temas e variantes diretamente com a diretiva @theme.
Estrutura básica
Em vez de um arquivo JavaScript, o Tailwind v4 é inicializado no seu arquivo CSS principal (ex: src/input.css ou app.css) importando o framework:
CSS
@import "tailwindcss";
Seção @theme
A diretiva @theme permite redefinir ou estender o design padrão do Tailwind utilizando variáveis CSS nativas. É aqui que você altera as escalas de espaçamento, cores, fontes, larguras, breakpoints e mais.
Adicionando ou estendendo valores:
Na v4, qualquer valor adicionado dentro de @theme define uma nova variável ou estende o tema de forma inteligente.
CSS
@import "tailwindcss";
@theme {
--font-sans: "Inter", sans-serif;
--color-primary: #1e40af;
--color-secondary: #64748b;
--spacing-72: 18rem;
--spacing-84: 21rem;
--spacing-96: 24rem;
}
Ao definir --color-primary, o Tailwind gera automaticamente as classes utilitárias correspondentes, como bg-primary, text-primary e border-primary.
Redefinindo o tema por completo:
Se o objetivo for remover o tema padrão do Tailwind e começar do zero, utiliza-se a palavra-chave default:
CSS
@theme default {
--color-black: #000;
--color-white: #fff;
}
Gerenciamento de Plugins e Utilitários
Na v4, utilitários personalizados e plugins que antes dependiam de funções JavaScript no arquivo de configuração agora podem ser escritos diretamente em CSS puro utilizando a diretiva @utility.
CSS
@utility card {
background-color: var(--color-white);
padding: var(--spacing-6);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-md);
}
Para plugins oficiais da comunidade (como o plugin de formulários), a inclusão é feita diretamente via folha de estilo ou integrada na etapa de compilação do seu bundler (Vite, PostCSS, Rust CLI).
Temas personalizados e Modo Escuro
O suporte ao modo escuro e variantes customizadas também foi simplificado, utilizando seletores CSS padrões ou variáveis de ambiente.
CSS
@import "tailwindcss";
@theme {
--color-background: #1f2937;
--color-surface: #374151;
}
/* Customização de variantes de mídia ou classes diretamente no CSS se necessário */
Benefícios do uso do modelo CSS-First na v4
-
Performance aprimorada: A compilação baseada no novo motor em Rust é até 10x mais rápida que nas versões anteriores.
-
Sintaxe nativa: Menos dependência de APIs JavaScript proprietárias e maior alinhamento com os padrões modernos da Web (CSS Variables).
-
Zero configuração de arquivos: A detecção automática de código elimina a necessidade de mapear manualmente diretórios em propriedades
content. -
Interoperabilidade: Facilidade para compartilhar tokens de design com outras ferramentas que consomem variáveis CSS nativas.
Com a nova arquitetura da versão 4, o Tailwind consolida-se como um compilador de CSS de alta performance, onde a folha de estilo principal se torna a única fonte de verdade para a identidade visual do projeto.