name: 'Lumo · Component Creation Protocol' description: 'Define como componentes Angular devem ser criados, estruturados, documentados e testados no Design System Lumo.'
Overview
Lumo · Component Creation Protocol
Objetivo
Esta Rule garante que todo componente Angular no Lumo seja criado de forma consistente, escalável e acessível, obedecendo ao Design System sem repetir princípios já definidos no Lumo · Core Principles.
Estrutura de Arquivos
Todo componente deve conter:
<component-name>
<component-name>.component.ts
<component-name>.component.html
<component-name>.component.spec.ts
<component-name>.docs.md
- Angular 20+: Standalone é padrão.
- TailwindCSS: Todo estilo deve ser via classes Tailwind.
- Documentação (
.docs.md):- Propósito do componente
- Todos os inputs e outputs
- Exemplos de uso
- Estados: default, hover, focus, active, disabled
Processo de Criação
- Definir intenção e papel do componente (Estrutural, Interativo ou Informacional)
- Definir layout e espaçamento mínimo
- Definir estados visuais essenciais (hover, active, focus, disabled)
- Criar arquivos seguindo a estrutura técnica e documentação
- Implementar acessibilidade moderna:
- ARIA attributes e roles corretos
- Foco lógico e visível
- Contraste adequado (mínimo 4.5:1 para texto)
- Área de clique touch-friendly
- Testar funcionalidade e acessibilidade
- Revisar consistência com o sistema
- Publicar como pacote npm:
export * from './<component-name>/<component-name>.component';
Padrões de Acessibildiade
- ARIA roles e labels corretos
- Keyboard navigation lógica
- Foco visível e gerenciável
- Contraste adequado
- Responsivo e touch-friendly
Antipadrões a Evitar
- Componentes que só funcionam isoladamente
- Dependência de sombra ou borda para hierarquia
- Cor de marca em fundo ou borda estrutural
- Padding, altura ou radius fora da escala semântica
- Componentes que exigem explicação para serem compreendidos