Tailwind CSS

· Padrão Frontend
Juan Kalleo
Juan Kalleo
Senior Fullstack
This page hasn't been translated to English yet — showing the original Portuguese content.

O que é

Framework CSS utility-first — classes prontas (px-4, text-sm, rounded-lg) direto no JSX, sem escrever arquivo .css por componente.

Por que essa

Camada de acabamento visual do projeto — espaçamento, cor, responsividade, alinhamento, estados. Componente pronto vem do DaisyUI (ver daisyui.md), acabamento fino é Tailwind puro. Decisão mantida mesmo depois de avaliar shadcn/ui e MUI X Charts pra relatórios — os dois foram descartados (ver shadcn-ui.md e mui-x-charts.md) exatamente pra não abrir um segundo sistema de design ao lado deste. Leitura de apoio: Why Tailwind CSS (swyx) e a documentação oficial do Tailwind — por que o modelo utility-first reduz naming, CSS morto e conflitos de especificidade.

Versão

^4 (package.json) — Tailwind v4, configuração via @import "tailwindcss" direto no CSS (app/globals.css), sem tailwind.config.js.

Como importar

Nada pra importar por arquivo — as classes funcionam direto no className de qualquer elemento, desde que app/globals.css esteja importado no layout raiz (já está, por padrão do scaffold).

Exemplo real

shared/forms/form-field.tsx, campo de formulário padrão do projeto:

export function FormField({ label, error, id, ...inputProps }: FormFieldProps) {
  return (
    <div className="space-y-1.5">
      <label className="text-sm font-semibold text-base-content" htmlFor={id}>
        {label}
      </label>
      <input id={id} className={`input w-full ${error ? "input-error" : ""}`} {...inputProps} />
      {error && <p className="text-xs font-medium text-error">{error}</p>}
    </div>
  );
}

Cor nunca é fixa (slate-900, red-600...) — sempre um token semântico do DaisyUI (text-base-content, text-error, bg-primary/10). É esse vocabulário de tokens que troca sozinho quando o tema muda (data-theme no <html>, tema institucional ou pessoal — ver ../CONFIGURACAO-INSTITUCIONAL.md). Usar uma cor Tailwind fixa quebra esse contrato: o elemento para de reagir à troca de tema.