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:
code
<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:
code
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