O Tailwind CSS é estruturado com base em um sistema de classes utilitárias. Cada classe representa uma única responsabilidade de estilo e segue uma convenção de nomes simples, previsível e altamente consistente.
Essa arquitetura elimina a necessidade de criar nomes de classes personalizados, mantendo o CSS limpo, enxuto e altamente reutilizável.
Organização das classes
As classes do Tailwind são divididas por função visual, não por componente. Isso torna a estrutura lógica e intuitiva.
Exemplos por categoria:
Categoria | Exemplo de Classe | Descrição |
---|---|---|
Espaçamento |
| Padding, margin, espaçamento entre elementos |
Tipografia |
| Tamanho de fonte, peso, espaçamento entre linhas |
Cores |
| Cores de fundo, texto, borda |
Layout |
| Definição de display e estrutura de layout |
Tamanhos |
| Largura, altura, tamanhos máximos |
Bordas |
| Controle de bordas e contornos |
Efeitos visuais |
| Sombra, opacidade, blur, transições |
Responsividade |
| Aplica estilos com base no tamanho da tela |
Convenção de nomes
A nomenclatura segue um padrão lógico:
[propriedade]-[valor]
Exemplos:
-
p-4
: padding com valor 4 (1rem) -
text-blue-600
: cor do texto azul no nível 600 -
rounded-lg
: bordas arredondadas no tamanho grande -
grid-cols-3
: grade com 3 colunas
Essa lógica permite ao desenvolvedor entender o que uma classe faz apenas olhando para ela.
Composição direta no HTML
A arquitetura utility-first incentiva a composição direta de estilos combinando múltiplas classes no próprio HTML.
Exemplo:
<div class="bg-white shadow-md p-6 rounded-md max-w-md">
<h3 class="text-lg font-semibold text-gray-800">Título</h3>
<p class="text-sm text-gray-600 mt-2">Texto descritivo com espaçamento e hierarquia tipográfica.</p>
</div>
Não é necessário declarar .card
, .title
ou .description
em um CSS separado.
Variantes e estados
O Tailwind também organiza suas utilitárias em variantes, como hover:
, focus:
, active:
e breakpoints responsivos como sm:
, md:
, lg:
.
Exemplo combinado:
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded">
Salvar
</button>
A combinação dessas variantes com as classes utilitárias é o que dá poder e flexibilidade ao Tailwind.
Na próxima página, vamos explorar o arquivo tailwind.config.js
, que é o centro de personalização do framework.