DSNiemeyer
Idioma

Guidelines

Regras para desenvolvedores e AI Builders.

Regras do AI Builder

Do

  • Use tokens semânticos (bg-background, bg-card, text-muted-foreground)
  • Use status tokens para estado: bg-success-background / bg-warning-background / bg-destructive-background
  • Importe primitivas de @morada-ai/niemeyer/components
  • Use @tabler/icons-react
  • Siga os page templates em /templates
  • font-heading para títulos, font-body para texto corrido
  • aria-label em botões com apenas ícone

Don’t

  • Hardcodar cores (bg-white, text-gray-500, #ffffff)
  • Usar <button>/<input>/<select> nativos onde existe primitivo
  • Usar lucide-react, react-icons ou outros sets de ícones
  • Criar wrappers ad-hoc de Card ou Button — extenda via className
  • Remover focus ring (outline-none) sem restaurar focus-visible
  • Pular <Label> em form inputs
  • Usar o modificador `!` (important) do Tailwind dentro de primitivas
// Contexto para AI prompts:
// Framework: Next.js 16+, React 19+, TypeScript (pacote suporta React 18+)
// Styling: Tailwind CSS 4 + tokens semânticos do Niemeyer
// Components: @morada-ai/niemeyer/components — primitivas shadcn customizadas
// Icons: somente @tabler/icons-react
// Fonts: Outfit (font-heading), Lato (font-body) — ambas obrigatórias como CSS variables

Acessibilidade

WCAG 2.1 nível AA.

RegraDetalhe
Contraste textoMínimo 4.5:1 (normal) ou 3:1 (texto grande)
TecladoTodo conteúdo interativo acessível via Tab; focus ring visível
SemânticaHTML semântico, headings em ordem, um h1 por página
LabelsTodo input com <Label htmlFor=...> associado
ARIAaria-label em icon buttons, aria-invalid em erros
CorNunca use cor como único indicador (combine com ícone ou texto)

Dark mode

Ativado via classe .dark no elemento html. Sempre prefira tokens semânticos — eles trocam automaticamente.

// Correto — adapta ao tema
<div className="bg-background text-foreground border-border" />

// Errado — não adapta
<div className="bg-white text-gray-900 border-gray-200" />

Ícones

Exclusivamente @tabler/icons-react. Dimensione com utilitários padrão do Tailwind — `size-4` (16px), `size-5` (20px), `size-6` (24px) cobrem a maioria dos casos.

ContextoTamanhoClasse
Dentro de Button ou Input16pxsize-4
Item de menu / sidebar24pxsize-6
Feature icon (em círculo)32pxsize-8
Ilustração / hero40–48pxsize-10 → size-12