Padrões

Responsividade, contraste e receitas visuais

Os padrões abaixo são as regras vivas do uMode: como camadas respondem a viewport, como cores se combinam dentro do WCAG 2.1 AA e quais composições são aprovadas para reuso.

WCAG 2.1 AA

1 · Responsividade

Três breakpoints nomeados, mobile-first, sem media queries soltas.

Breakpoints oficiais
Use sempre estes três nomes em vez de sm/md/lg.
BreakpointMin-widthContextoQuando usarClasses exemplo
tablet:640pxMobile landscape / small tabletsPrimeira quebra: stack→2-col, sidebar colapsadatablet:grid-cols-2 tablet:block tablet:pl-12
laptop:1024pxLaptops e desktops compactosLayout principal: sidebar visível, grids de 3 colunaslaptop:grid-cols-3 laptop:overflow-y-auto laptop:px-6
desktop:1368pxMonitores desktop padrãoLayout expandido: até 4 colunas, máxima densidadedesktop:grid-cols-4 desktop:max-w-screen-xl desktop:gap-8
Layout responsivo em camadas
Mesmo grid muda de 1 → 2 → 3 → 4 colunas conforme o viewport.
Mobile < 640px1 coluna
tablet: ≥ 640px2 colunas
laptop: ≥ 1024px3 colunas
desktop: ≥ 1368px4 colunas
Sidebar responsiva
Comportamento esperado por viewport.
ViewportSidebarConteúdo
MobileOculta — acionada por hamburguer100% da largura, px-4
tablet:Colapsada (ícones), w-12pl-12, tablet:px-6
laptop:Expandida com labels, w-64pl-64, overflow-y-auto
Grid responsivo padrão

tsx

<div className="grid gap-4
  grid-cols-1
  tablet:grid-cols-2
  laptop:grid-cols-3
  desktop:grid-cols-4"
>
  {items.map(item => <Card key={item.id} />)}
</div>
Regras DO / DON'T
Aplicação obrigatória em layouts uMode.

Mobile-first sempre — base styles para mobile, depois tablet: → laptop: → desktop:

Use breakpoints semânticos — tablet:/laptop:/desktop:, nunca sm:/md:/lg:

Touch targets ≥ 44px — min-h-[44px] ou h-11 em todo elemento clicável (WCAG 2.5.5)

Sem @media ad-hoc — toda quebra usa um dos três breakpoints nomeados

Nunca esconda conteúdo crítico — alertas de status visíveis em todo viewport

Nunca larguras fixas em px — use max-w-* e w-full; px quebra em viewports intermediários

2 · Contraste de cores (WCAG 2.1)

Toda combinação validada antes do uso. Texto normal ≥ 4.5:1 (AA), texto large ≥ 3:1 (AA Large).

Tabela de referência WCAG
Combinações canônicas com swatch real, ratio e classificação.
AaCombinaçãoTextoFundoRatioWCAGNota
Aa
Foreground em Background#191a21#ffffff17.5:1
AAA
Aa
Primary em Background#973beb#ffffff4.8:1
AA
Aa
Branco em Primary (CTA)#ffffff#973beb4.8:1
AA
Aa
Muted Foreground em Background#6d7280#ffffff4.6:1
AA
somente texto ≥14px
Aa
Status OK em Background#0daf73#ffffff4.7:1
AA
Aa
Status Critical em Background#e94f4f#ffffff3.8:1
AA Large
use com ícone
Aa
Status Warning em Background#d97706#ffffff3.1:1
AA Large
nunca texto corrido
Aa
Foreground em Card#191a21#ffffff17.5:1
AAA
Aa
Primary em Accent (chips)#973beb#f4f0fe4.5:1
AA
Aa
Branco em Muted#ffffff#f4f5f71.1:1
FAIL
nunca usar
Combinações corretas
5 receitas aprovadas com preview real.
Aa

text-foreground em bg-background — sempre AA ou AAA

Aa

text-primary-foreground em bg-primary — AA ✓

Aa

text-muted-foreground somente em texto ≥14px

Aa

status-ok em bg-status-ok — badge oficial

Aa

text-primary em bg-accent — hover state aprovado

Combinações proibidas
5 anti-padrões — nunca aprovar em revisão.
Aa

Contraste < 1.5:1. Ilegível em qualquer tamanho.

Aa

Roxo em cinza claro cai abaixo de 3:1.

Aa

3.1:1. Só em badge com ícone, nunca em parágrafo.

Aa

muted-foreground em bg-muted — < 3:1.

Aa

Nunca misture tokens de status com fundos de outro status.

Dark mode e contraste
Regras específicas para preservar leitura no tema escuro.

Use tokens semânticos — text-foreground, bg-background, bg-card adaptam via .dark

Primary clareia no dark — 58% → 62% lightness para manter contraste

Teste ambos os temas — toda nova tela revisada em light e dark antes de subir

Nunca hex literal — text-[#973BEB] quebra no dark; use text-primary

Nunca assuma fundo branco — bg-white não muda no dark; use bg-background ou bg-card

Nunca esqueça muted-foreground em cards escuros — 66% lightness, valide leitura

3 · Receitas de layout

Composições recorrentes para páginas reais — copie estrutura, adapte conteúdo.

Sidebar layout
Navegação vertical com foco em contexto e ícones legíveis.

Workspace

Área principal sempre clara

A sidebar é suporte contextual. O conteúdo mantém respirabilidade e foco em métricas.

Hero com gradiente
Assinatura para páginas de entrada e overviews.
hero section

Resumo operacional com leitura instantânea

Use o gradiente principal em áreas de destaque com promessa clara, CTA único e hint do conteúdo seguinte sempre visível.

KPIs em grid
Padrão para dashboards executivos com tablet:grid-cols-3.

Leads ativos

1.284

+12.4%

Engajamento

74%

Dentro da meta

Risco

3 alertas

Monitorar
Status badge em tabela
Status escaneável para listas operacionais.
ProjetoStatusOwner
PlanejAI Sprint 18
Saudável
Ops
Mapa Hering
Atenção
Conteúdo
GEST HUB rollout
Crítico
Produto
Como navegar entre padrões e código
Fluxo recomendado para usar este manual em novos projetos.
Abrir snippets copy-pasteVer paleta completa
Nunca usar cores diretas em componentes.