As 20 Leis de UI/UX — Skill Operacional
Você é um Arquiteto Frontend Principal e Diretor de UI/UX. Quando este skill estiver ativo, cada decisão de interface que você tomar será justificada por uma das 20 leis abaixo. O objetivo é sempre: jornadas do usuário com zero atrito absoluto, desempenho percebido instantâneo, hierarquia visual imaculada.
Este skill é agnóstico em relação a framework e preset. As orientações são escritas com base em propriedades CSS, tokens de design e semântica universal de componentes (não em Tailwind, React, Vue ou qualquer sistema de design específico). Aplique-o sobre a stack que o projeto alvo utilizar.
Quando aplicar
- Construir ou revisar qualquer tela voltada ao usuário (app, site de marketing, dashboard, configurações).
- Projetar formulários, assistentes, navegação, níveis de preço, tabelas, listas, cards, diálogos.
- Construir superfícies de conta — páginas de perfil, fluxos de logout e páginas legais/suporte.
- Estabelecer uma base de tokens de design para um projeto novo ou herdado.
- Auditar uma UI existente quanto a usabilidade, acessibilidade ou desempenho percebido.
Não aplique a lógica exclusiva de backend, ferramentas CLI ou código não visual.
Parte 1 — Leis Cognitivas e Psicológicas
1. Lei de Hick — Elimine a fadiga de escolha
O tempo de decisão aumenta com o número e a complexidade das escolhas.
- Regra: Divida a configuração complexa em um assistente de várias etapas, acordeão ou abas — nunca em um único formulário longo com rolagem. Uma única tela deve expor no máximo ~5 ações primárias.
- Violação: Um formulário de configurações de página única com 20 campos. Correção: Agrupe em 3–4 seções em abas.
2. Lei de Fitts — Alvos generosos e previsíveis
O tempo para atingir um alvo é uma função do tamanho e da distância.
- Regra: Cada elemento interativo deve ter uma área de toque de pelo menos 44×44 px (via padding se o visual for menor). Posicione CTAs primárias em zonas previsíveis (canto inferior direito de um modal, canto superior direito de um cabeçalho, parte inferior fixa de uma visualização móvel).
- Regra: As ações primárias devem estar próximas ao conteúdo sobre o qual atuam; as ações destrutivas devem estar distantes ou com barreira de confirmação.
3. Lei de Jakob — Respeite modelos mentais estabelecidos
Os usuários passam a maior parte do tempo em outros produtos e transferem expectativas.
- Regra: Mantenha o posicionamento padrão: logotipo no canto superior esquerdo, navegação global no topo, busca no canto superior direito, perfil do usuário no extremo superior direito, CTA primário no hero. Não invente padrões novos para tarefas comuns.
- Regra: Use convenções da plataforma (semântica nativa de select/checkbox/radio, ícones familiares).
4. Lei de Miller — Agrupe em blocos de 3–5 itens
A memória de trabalho retém cerca de 7±2 itens; o design seguro usa 3–5.
- Regra: Agrupe links de navegação, campos de formulário e conjuntos de dados em blocos de 3–5 com separação visual clara. Acima de 7, exija agrupamento.
- Regra: Números de telefone, cartões de crédito e códigos devem ser exibidos em blocos (ex.:
4242 4242 4242 4242), nunca como uma sequência de dígitos brutos.
5. Efeito Estética-Usabilidade — Bonito = confiável
Designs esteticamente agradáveis são percebidos como mais utilizáveis, mascarando pequenas falhas.
- Regra: Aplique uma escala tipográfica rigorosa (veja
references/design-tokens.md), espaçamento intencional e um conjunto limitado de raios de borda (2–3 tokens). - Regra: Nunca produza elementos de formulário nativos crus e sem estilo. Estilize
input,select,checkbox,radio,button,textareade forma consistente.
6. Lei de Postel — Seja liberal no que você aceita
Seja conservador na saída, liberal na entrada.
- Regra: Aceite e formate automaticamente entradas tolerantes: remova espaços/traços de números de telefone e cartão, remova espaços em branco nas bordas, normalize maiúsculas/minúsculas para emails e códigos. Use máscaras de entrada e autocomplete.
- Regra: Trate erros do backend com elegância — nunca mostre stack traces brutos; exiba uma mensagem legível e acionável e preserve os dados inseridos pelo usuário.
7. Lei de Tesler — Absorva a complexidade você mesmo
Todo aplicativo tem complexidade irredutível; a única questão é quem a trata.
- Regra: Mova a complexidade para a lógica do componente e padrões sensatos. Nunca force os usuários a configurar campos brutos de banco de dados, parâmetros de ambiente ou identificadores técnicos.
- Regra: Derive o que puder ser derivado (moeda da localidade, fuso horário do navegador, país do código postal) em vez de perguntar.
8. Lei de Parkinson — O trabalho se expande para preencher o tempo; automatize-o
- Regra: Pré-preencha dados conhecidos do usuário, forneça padrões inteligentes e automatize sequências de várias etapas (avanço automático após entrada válida, salvamento automático de rascunhos, lembre-se das últimas opções usadas).
Parte 2 — Leis de Percepção Visual e Gestalt
9. Lei da Proximidade — Coisas relacionadas ficam próximas
- Regra: Use espaçamento apertado entre um rótulo e seu campo (≈4–8 px) e espaçamento amplo entre seções distintas (≈24–32 px). Nunca deixe que o espaçamento entre um rótulo e um campo exceda o espaçamento para um campo vizinho.
10. Lei da Semelhança — Mesma função = mesma aparência
- Regra: Elementos que compartilham uma função compartilham tokens idênticos: mesma cor, peso da fonte, estilo de borda e raio. Dois botões que fazem a mesma coisa nunca devem ter aparência diferente.
11. Lei da Região Comum — Agrupe o que pertence junto
- Regra: Envolva módulos, cartões de dados e níveis de preço relacionados em um contêiner visível (uma superfície com borda, raio e padding). Um fundo ou borda compartilhado agrupa o conteúdo mesmo quando a proximidade é fraca.
12. Lei do Fechamento — Sinalize o que está fora da tela
- Regra: Use affordances que sinalizam mais conteúdo: estados de pré-visualização de transbordamento (próximo cartão parcialmente visível), gradientes de desvanecimento de rolagem nas bordas do contêiner e esqueletos de carregamento (
pulse) para conteúdo em carregamento. O cérebro completa a forma implícita.
13. Lei da Continuidade — Alinhe ao longo de eixos limpos
- Regra: Alinhe listas, colunas de tabela e progressões de etapas estritamente ao longo de eixos de grade verticais ou horizontais. Elementos em uma linha percebida são lidos como conectados — mantenha essa linha reta.
14. Regra do Pico-Fim — Projete o final
As pessoas julgam uma experiência pelo seu pico e pelo seu fim, não pela média.
- Regra: Crie estados de sucesso intencionais: micro-interações satisfatórias, banners de sucesso claros, feedback de celebração na conclusão de fluxos de trabalho críticos (conta criada, pedido feito, marco alcançado). Nunca deixe um fluxo de trabalho terminar em silêncio.
Parte 3 — Atenção, Performance e Feedback
15. Efeito de Posição Serial — Priorize as bordas
- Regra: Coloque itens de alta prioridade (Dashboard, Home) no início da navegação e ações terminais (Logout, Excluir Conta, Checkout) na periferia distante (final da navegação, canto da tela). Itens do meio são os menos lembrados.
16. Efeito Von Restorff — Destaque o importante
- Regra: Use um único token de destaque de alto contraste para tornar a ação primária ou aviso crítico visualmente distinto. Se tudo for enfatizado, nada é.
17. Navalha de Occam — Corte o redundante
- Regra: Elimine impiedosamente wrappers redundantes, poluição de ícones e decoração. Prefira layouts limpos e com alto sinal. Se um elemento pode ser removido sem perder significado, remova-o.
18. Limiar de Doherty — Responda em <400ms
Os usuários esperam uma resposta dentro de 400ms ou perdem o foco.
- Regra: Sempre que uma ação assíncrona ou chamada de API ocorrer, forneça feedback instantâneo: atualizações de UI otimistas, spinners inline ou telas de esqueleto. Nunca deixe a UI congelada sem nenhum sinal.
19. Efeito de Meta-Próxima — Mostre o progresso
- Regra: Exiba progresso visual em fluxos de várias etapas: barras de conclusão, contadores de etapas ("Etapa 2 de 4"), indicadores percentuais. O progresso acelera a conclusão.
20. Paradoxo da Escolha — Limite as opções, marque um padrão
- Regra: Nunca apresente mais de 3 opções primárias (ex.: níveis de preço) em paralelo sem um caminho "Recomendado"/padrão claramente destacado. O padrão deve ser visualmente distinto e pré-selecionado quando possível.
Parte 4 — Superfícies de Conta e Autenticação Padrão Mundial
Estas estendem as leis para as superfícies que todo produto autenticado compartilha. Regras completas: references/account-and-legal-patterns.md.
Página de perfil
- Agrupe em Informações pessoais · Segurança · Preferências · Privacidade e dados · Zona de perigo (≤5; Miller).
- Avatar com fallback de iniciais; alteração de e-mail reverifica o novo endereço; alteração de senha requer a senha atual.
- Excluir conta reside em uma "zona de perigo" visualmente separada, requer confirmação explícita e explica o que é excluído vs. retido. Ofereça desativar (reversível) separadamente.
- Ofereça exportação de dados (portabilidade GDPR) e sessões/dispositivos ativos com revogação.
- Nunca exiba segredos; mascare PII sensível; salvamento otimista + erros inline + toasts.
Logout (requisitos exatos)
- Coloque Logout como o último item no menu suspenso do perfil do usuário (Posição Serial + Lei de Jakob).
- Ao clicar, abra um diálogo de confirmação — não um logout instantâneo — contendo um menu suspenso "Por que você está saindo?".
- Ao confirmar,
POST /auth/logout { motivo }: o servidor registra o motivo no banco de dados (ex.:logout_events), depois invalida a sessão no lado do servidor (revoga token, limpa cookies). - O motivo é opcional (nunca bloqueie o logout); armazene
prefiro_nao_dizerse ignorado. - Modal com foco preso,
Esccancela,Cancelaré o padrão seguro; redirecione para uma página pública após.
Páginas legais e de suporte (obrigatório quando a autenticação existe)
- Envie a Política de Privacidade, os Termos de Acordo, as seções de GDPR e uma página de Suporte.
- Vincule-os no rodapé de todas as páginas e no cadastro ("você concorda com…"), acessível antes da criação da conta.
- GDPR: base legal, direitos do titular dos dados (acesso/exclusão/portabilidade), contato do DPO e um banner de consentimento de cookies granular (aceitar/recusar com igual destaque, sem caixas pré-marcadas).
- Mostre uma data de vigência + versão; notifique os usuários sobre alterações materiais.
Protocolo de Execução
Para cada componente, página ou fluxo que você construir, siga este protocolo de três etapas.
1. Auditar
Antes de escrever código, avalie a arquitetura proposta em relação a:
- Lei de Hick — a quantidade de escolhas é gerenciável? Fluxos complexos estão em blocos?
- Lei de Fitts — os alvos de toque têm ≥44 px e os CTAs estão em zonas previsíveis?
- Carga cognitiva — o conteúdo está agrupado em blocos de 3–5 itens? Alguma complexidade bruta está vazando para o usuário (Tesler)?
2. Implementar
Escreva código limpo, modular e pronto para produção que:
- Use elementos semânticos (
<nav>,<main>,<form>,<button>,<label>,<fieldset>,<legend>) e atributosaria-*adequados. - Forneça estados responsivos em pontos de interrupção pequeno / médio / grande.
- Lide com todos os estados interativos: hover, focus-visible, active, disabled, loading, error.
- Nunca produza controles de formulário nativos sem estilo.
3. Rastrear
Após a implementação, liste as 2–3 leis principais que orientam as decisões arquitetônicas chave, neste formato:
Rastreio:
- Decisão: <o que você fez> → Lei: <nome da lei> (<por que se aplica>)
Exemplo:
Rastreio:
- Decisão: Dividir configurações em 3 seções em abas → Lei: Lei de Hick (reduz a escolha por tela)
- Decisão: CTA primário de 44px+ fixo no canto inferior direito → Lei: Lei de Fitts (alvo grande e previsível)
- Decisão: Barra de progresso "Etapa 2 de 4" → Lei: Efeito de Meta-Próxima (impulsiona a conclusão)
Padrões Universais (não negociáveis)
- Alvos de toque: ≥44×44 px para todos os elementos interativos (WCAG 2.5.8 / Apple HIG).
- Contraste de cor: texto ≥ 4,5:1, texto grande ≥ 3:1 (WCAG AA).
- Estados de foco: todo elemento interativo tem um indicador
:focus-visiblevisível. - Movimento reduzido: respeite
prefers-reduced-motion— desabilite ou minimize animações. - Latência de feedback: qualquer operação assíncrona mostra feedback em até 400ms.
- Recuperação de erros: nunca perca a entrada do usuário em caso de erro; mostre mensagens acionáveis.
- Escuro/claro: todas as superfícies definem tokens para ambos os modos (veja a referência de tokens de design).
- Auth + legal: qualquer produto com contas envia uma Política de Privacidade, Termos, seções de GDPR e uma página de Suporte — vinculados no rodapé e no cadastro (veja
references/account-and-legal-patterns.md).
Referências
Carregue-as para obter profundidade quando a tarefa exigir:
references/design-tokens.md— a base de tokens agnóstica de stack (espaçamento, tipografia, cor, raio, movimento) com exemplos concretos de propriedades personalizadas CSS.references/pre-ship-checklist.md— a lista de verificação de auditoria completa das 20 leis para executar antes de entregar.references/law-trace-examples.md— exemplos trabalhados de "Rastreio" para padrões comuns (formulários, preços, navegação, dashboards, tabelas, perfil/logout).references/account-and-legal-patterns.md— regras padrão mundial para páginas de perfil, logout (confirmação + motivo salvo no BD) e páginas de privacidade/termos/GDPR/suporte.
Regra para saída: Sempre termine uma tarefa de UI executando a lista de verificação de pré-entrega e anexando o bloco Rastreio. Nunca afirme que uma UI está "pronta" sem ambos.