Componentes
Specs canônicas de anatomia, estados e regras de composição.
AppShell
Anatomia
- ·Sidebar fixa 240px
- ·Top Bar (breadcrumb + ações)
- ·Page Header (título + ações)
- ·Page Body
Proporções
Sidebar
Anatomia
- ·Brand
- ·Nav items
- ·Group labels (uppercase)
- ·Spacer
- ·User info no rodapé
Nav item
Borda esquerda 1px na cor de accent + background sutil
Card
Variantes
- Simples
- Com header
- Com footer
- Com tabs
- Completo
Regras
- ·Separação por contraste de superfície, não por borda (default)
- ·Border radius Large (16px)
- ·Overflow hidden
- ·Cards interativos ganham :focus-visible com anel da cor de accent
Por padrão sem borda. Se o usuário pedir borda explicitamente, executar com aviso 'padrão EnP é separação por contraste — aplicando borda conforme solicitado'.
Tabs
Especificações
Teclado: roving tabindex (setas navegam dentro do grupo, Tab entra/sai)
Proibições
- ·border-radius em tabs (base deve ser reta)
- ·background colorido em tab ativa
- ·font-weight diferente de 400/600
FormField
Padrões
label sempre acima do input
NÃO usar placeholder — nem como label, nem como exemplo
Validação: no blur, não a cada tecla
Fórmula de erro: o que aconteceu + por que + como resolver
Estados
DataTable
Regras
Modal
Implementação
Requisitos
Modal de confirmação
verbo + objeto, nunca 'Sim/Não' ou 'OK/Cancelar'
Toast 'Item removido [Desfazer]' por 5s é melhor que modal. Modal só para ações genuinamente irreversíveis.
Empty State
Estrutura
- 1Reconhecer o estado
- 2Dar contexto/valor
- 3Oferecer ação
Copy proibido
Responsividade
| Breakpoint | Mudança |
|---|---|
| lg (1024px) | Grid de métricas: 4 → 2 colunas |
| md (768px) | Sidebar → drawer; Split → stack vertical; DataTable → scroll horizontal |
| sm (480px) | Grid de métricas: 2 → 1 coluna; Tabs → scroll horizontal |
Acessibilidade
Nível WCAG
AA
Contraste texto
4.5:1 mín.
Toque mínimo
44px
Focus-visible
obrigatório
prefers-reduced-motion
obrigatório
Vitrine pública. Spec canônica vive em enp-design-system/skills/. Dados sincronizados via raw.githubusercontent.com (ISR 24h).