Design System define o contrato visual e comportamental da interface — princípios, linguagem visual, regras de composição, semântica de cores, tipografia, componentes e seus estados. É o documento que garante que telas distintas, implementadas em momentos diferentes, pareçam e se comportem como um sistema coerente.
Fase: 3 — Design de Produto
Pré-requisito: Docs/pages.md · Docs/flow.md · Prototype/ validado
Template: Templates/Full/design-system.md ou Templates/Quick/design-system.md
Artefato oficial: Docs/design-system.md
Próximo artefato: Docs/tokens.json
Quando criar ou revisar
- Após validação dos protótipos em
Prototype/ - Novo padrão recorrente identificado entre telas
- Nova variação de componente necessária
- Mudança de regra semântica ou comportamental
- Feedback de acessibilidade requer ajuste de sistema
Full vs Quick
| Situação | Template |
|---|---|
| Projeto novo com múltiplos componentes, estados e padrões de página | Templates/Full/design-system.md |
| Feature com extensão de componente já definido | Templates/Quick/design-system.md |
| Ambiguidade de estado ou comportamento surgiu | Migrar para Full na mesma task |
A distinção entre Design System e Tokens
Docs/design-system.md define regras, papéis, semânticas e comportamentos.
Docs/tokens.json define valores, escalas e aliases consumíveis por código.
Nenhum dos dois substitui o outro.
design-system.md → "O botão primário deve ter destaque máximo e feedback visual imediato"
tokens.json → color.primary: #1A56DB, spacing.md: 16pxEstrutura — Design System Full
O template Full tem 17 seções, com a seção 10 desdobrada em lista de componentes e contratos individuais.
1. Identificação
Nome do projeto:
Versão do documento:
Status: [rascunho | revisando | aprovado]
Documentos base: Docs/pages.md, Docs/flow.md, Prototype/, Docs/project.md
Data de criação:
Última atualização:2. Objetivo do Documento
Cobre: princípios visuais, linguagem de interface, layout, tipografia como regra, cores como papel semântico, estados, componentes, feedback, acessibilidade.
Não cobre: valores brutos de token, implementação final de componentes, protótipos completos, fluxos, arquitetura de frontend.
3. Princípios do Design System
Princípios que guiam todas as decisões da interface — com descrição de o que cada princípio significa neste projeto:
Clareza — [o que significa clareza neste produto]
Consistência — [como a consistência é mantida entre telas]
Legibilidade — [regras de legibilidade para o contexto]
Eficiência — [como a interface reduz esforço do usuário]
Acessibilidade — [comprometimento e escopo da acessibilidade]4. Linguagem Visual
Direção visual: [minimalista | sóbria | técnica | premium | operacional | amigável]
Personalidade: [descreve]
Sensação desejada:
- [sensação 1]
- [sensação 2]
O que evitar:
- excesso visual
- ambiguidade
- contraste ruim
- interações inesperadas5. Regras Gerais de Layout
Estrutura base: [header + conteúdo + ações | sidebar + principal | dashboard modular]
Composição:
- [regra 1]
- [regra 2]
Espaçamento: [lógica — valores ficam em Docs/tokens.json]
Alinhamento: [descreva]
Responsividade:
- [breakpoints e comportamento]
Grid / containers: [lógica estrutural]6. Tipografia — Regras de Uso
Hierarquia textual esperada:
título de página — destaque máximo, uma ocorrência por tela
título de seção — organização de blocos
subtítulo — complemento de seção
corpo principal — leitura contínua
corpo secundário — informação de apoio
legenda — dados auxiliares menores
rótulo — formulários e listas
ajuda — instrução contextual
feedback — validação e estados
ação — labels de botões e linksRegras gerais:
- manter contraste adequado entre texto e fundo
- evitar excesso de pesos na mesma tela
- evitar blocos longos sem hierarquia
- priorizar legibilidade sobre decoração
7. Cores — Regras Semânticas
Papéis semânticos de cor:
primária — ação principal, identidade do produto
secundária — ação de apoio ou alternativa
neutra — textos, bordas, superfícies e ícones
sucesso — confirmação, conclusão, estado positivo
aviso — atenção, estado intermediário
erro — falha, validação negativa, bloqueio
informação — contexto adicional, tooltip
destaque — ênfase controlada
superfície — fundo de card, modal, container
borda — separação e delimitação
texto — hierarquia de leitura
estado desabilitado — elemento não interativoRegras de uso:
- toda cor deve ter papel semântico definido — nenhuma cor "decorativa"
- nunca depender só de cor para transmitir estado (acessibilidade)
- contraste mínimo WCAG AA obrigatório
8. Feedback e Estados de Interface
Estados consistentes obrigatórios:
default — estado inicial sem interação
hover — cursor sobre o elemento
active — elemento pressionado
focus — elemento selecionado por teclado
disabled — não interativo
loading — aguardando resposta
success — operação concluída
error — falha de operação
empty — sem conteúdo para exibir
selected — item ativo ou marcado
pressed — botão ou controle ativado
readonly — exibição sem edição
invalid — entrada com erro de validaçãoFeedbacks esperados ao usuário:
- confirmação de ação bem-sucedida
- erro de validação inline (campo a campo)
- erro sistêmico com mensagem e ação sugerida
- indisponibilidade de serviço com alternativa
- estado de espera/processamento com indicador visual
- ausência de conteúdo com orientação
9. Padrões de Interação
Princípios:
- previsibilidade — o usuário sabe o que vai acontecer
- tempo de resposta claro — loading sempre visível em operação assíncrona
- baixo esforço cognitivo — hierarquia clara de ação
- feedback imediato — toda ação tem resposta visual
Padrões obrigatórios:
- formulários com validação por campo (não só no submit)
- botões com hierarquia bem definida (primário, secundário, ghost)
- confirmação em ações destrutivas ou irreversíveis
- navegação consistente entre telas do mesmo módulo
A evitar:
- ação sem feedback (botão que não responde)
- ação destrutiva sem confirmação
- labels ambíguos ("OK", "Confirmar" sem contexto)
- estados invisíveis (sem loading, sem erro)10. Componentes do Sistema
10.1 Lista de componentes base
botão input textarea
select checkbox radio
switch badge card
modal drawer tooltip
alert toast tabela
tabs pagination breadcrumb
avatar skeleton spinner
empty state10.2 Contrato por componente
Estrutura obrigatória para registrar cada componente:
#### Componente: [Nome]
Objetivo: [para que serve]
Variações previstas:
- [variação 1]
- [variação 2]
Tamanhos previstos:
- pequeno | médio | grande
Estados obrigatórios:
- default | hover | active | focus | disabled | loading
Regras de uso:
- [regra 1]
- [regra 2]
Restrições:
- [o que não fazer com este componente]
Acessibilidade:
- [aria, foco, contraste mínimo, navegação por teclado]Exemplo — Button:
#### Componente: Button
Objetivo: disparar ação do usuário
Variações: primário, secundário, ghost, link, destrutivo
Tamanhos: pequeno, médio, grande
Estados obrigatórios:
- default, hover, active, focus, disabled, loading
Regras:
- Máximo 1 botão primário por superfície de ação
- Botão destrutivo nunca deve ser a ação padrão
- Label deve ser verbo + objeto ("Salvar alterações", não "OK")
Restrições:
- Não usar button para navegação quando o elemento correto é link/anchor
- Não empilhar botões primários sem hierarquia clara
Acessibilidade:
- role="button" ou <button> nativo
- foco visível com outline definido
- state disabled com aria-disabled="true"11. Padrões de Página
Estruturas recorrentes que múltiplas telas compartilham:
página de listagem — título, filtros, ações, tabela/lista, paginação, estados
página de detalhe — header, seções, ações contextuais, estados
formulário simples — título, campos, validação, ações, feedback
formulário multi-etapas — progress, passo atual, navegação, validação por etapa
dashboard — métricas, gráficos, alertas, ações rápidas
tela de autenticação — foco único, sem distrações, feedback de erro inline
tela vazia — ilustração, título e orientação de próxima ação
tela de erro — código de erro, mensagem, ação de recuperação
tela de confirmação — ação destacada, contexto claro, opção de cancelamento12. Acessibilidade
Regras mínimas obrigatórias:
- contraste WCAG AA em todo texto sobre fundo
- foco visível em todos os elementos interativos
- labels claros em formulários — sem placeholder como substituto de label
- navegação por teclado nos fluxos críticos
- feedback nunca dependente apenas de cor
- semântica HTML correta (roles, aria)
- mensagens de erro compreensíveis e acionáveis
13. Consistência entre Design System e Tokens
design-system.md define → papel, regra, semântica, comportamento
tokens.json define → valor, escala, alias, categoria para código
Regra: toda semântica documentada aqui deve ter correspondência em tokens.json14. Relação com Outros Documentos
Docs/pages.md → design-system orienta componentes e estados de cada tela
Docs/flow.md → design-system define padrão de feedback para estados de navegação
Prototype/ → design-system reflete e registra padrões validados na prototipagem
Docs/tokens.json→ design-system é a fonte semântica que tokens estruturam como valores
Docs/tasks.md → tasks de UI/UX devem referenciar regras deste documento15. Diretrizes para Implementação
Obrigatório:
- respeitar hierarquia de ação (1 primário por superfície)
- implementar todos os estados listados por componente
- manter contraste WCAG AA
- não criar variação de componente sem registrar aqui
Pode variar com segurança:
- ordem de apresentação de campos opcionais
- animações de transição (desde que dentro das diretrizes)
Exige atualização deste documento:
- novo padrão visual recorrente em mais de 1 tela
- nova variação de componente aprovada
- mudança de regra semântica de cor ou tipografia16. Síntese Operacional para Dev e AI
Direção visual resumida: [preencher]
Princípios que não podem ser quebrados:
- [princípio 1]
- [princípio 2]
Componentes mais críticos: [preencher]
Estados que devem existir com consistência: [preencher]
O que ainda está indefinido: [ponto 1]17. Aprovação
Status: [pendente | aprovado | revisando]
Aprovado por:
Data de aprovação:
Observações finais:Estrutura — Design System Quick
## Direção visual
[linguagem visual do projeto]
## Princípios
- clareza
- consistência
- legibilidade
- acessibilidade
## Regras gerais de layout
- [regra 1]
- [regra 2]
## Tipografia — regras de uso
- [regra 1]
## Cores — semânticas
- primária, secundária, neutra
- sucesso, aviso, erro, informação
Regras: [preencher]
## Estados consistentes
default, hover, active, focus, disabled, loading, success, error, empty, invalid
## Componentes principais
### Button
Variações: primário, secundário, ghost
Estados: default, hover, active, disabled, loading
Regras: [preencher]
### Input
Estados: default, focus, invalid, disabled
Regras: [preencher]
### Modal
Quando usar: [caso]
Quando não usar: [caso]
## Padrões de página
listagem, detalhe, formulário, dashboard, autenticação, erro, vazio
## Acessibilidade
- contraste adequado
- foco visível
- labels claros
- feedback não dependente só de cor
## Relação com tokens.json
Este documento: regras, semânticas, comportamento
tokens.json: valores, escalas, aliases
## Síntese para Dev e AI
- Aplicar componentes e estados conforme regras deste documento
- Sincronizar com tokens.json e Prototype/
- Em conflito entre rapidez e consistência: priorizar acessibilidade e previsibilidadePrompt para gerar com agente
Atue como UIAgent.
Objetivo: criar Docs/design-system.md com base em Docs/pages.md e Docs/flow.md
Carregue contexto base:
- GUIDE.md
- Skills/ui-ux.md
- Templates/Full/design-system.md
- Docs/pages.md
- Docs/flow.md
Preencha as 17 seções do template Full.
Seção 3: defina os princípios com descrição aplicada ao projeto.
Seção 7: mapeie todos os papéis semânticos de cor.
Seção 8: liste os 13 estados obrigatórios com feedbacks esperados.
Seção 10: registre contrato de cada componente identificado nas páginas.
Seção 11: defina padrões para cada tipo de página presente em Docs/pages.md.
Seção 12: especifique regras de acessibilidade aplicadas ao contexto.
Marque [indefinido] onde houver decisão pendente de prototipagem.Definição de pronto
O design-system está pronto quando:
- Princípios definidos com descrição aplicada ao projeto — não genéricos
- Semântica de cores completa com os 12 papéis mapeados
- Os 13 estados de interface documentados com comportamento
- Contrato de componente preenchido para todos os componentes identificados em
Docs/pages.md - Padrões de página definidos para cada tipo de tela do projeto
- Seção 12 (Acessibilidade) com regras mínimas obrigatórias
- Seção 13 confirma consistência com
Docs/tokens.json - Aprovação registrada na seção 17
Documentar aparência sem documentar comportamento é o erro mais frequente. "O botão é azul" não é design system — "o botão primário tem destaque máximo, estado loading obrigatório e label no formato verbo + objeto" é design system.
Erros comuns
| Erro | Correção |
|---|---|
| Documentar aparência, ignorar comportamento | Cada componente precisa de estados e regras de uso |
| Cor sem papel semântico | Toda cor deve ter um papel — sem cores "decorativas" soltas |
| Estado de interação ausente | Os 13 estados são o mínimo — não omitir disabled, loading, empty |
| Design system desconectado de tokens | Toda semântica aqui deve ter correspondência em tokens.json |
| Acessibilidade como afterthought | Seção 12 é obrigatória — não é opcional |
Documentos que nascem do Design System
Docs/design-system.md (aprovado)
↓
Docs/tokens.json — valores estruturados derivados das semânticas definidas aqui
Prototype/ — implementações visuais validadas contra estas regras
Docs/tasks.md — tasks de UI referenciam componentes e estados deste documento