Frontend Web - Componentes¶
Este documento descreve a organização de componentes no estado atual do web.
Camadas de componentes¶
src/components/ui/*-
biblioteca base reutilizável (Radix + utilitários)
-
src/components/* -
componentes globais de aplicação (layout, guards, fallback, erros)
-
src/modules/<dominio>/<submodulo>/components/* - componentes específicos de feature
Regra de composição¶
view.tsxmonta componentes de apresentação.page.tsxinjeta dados e handlers naview.- componentes internos do submódulo não devem acessar serviço HTTP diretamente.
Componentes globais críticos¶
src/components/ProtectedRoute.tsx(autorização)src/components/Sidebar.tsx(navegação por papel/módulo)src/components/ProfileRouter.tsx(roteamento de perfil)src/components/AccessibilityPanel.tsx(controles de acessibilidade)src/components/PageFallback.tsx(fallback de lazy loading)
Convenções para novos componentes¶
- Nomear por contexto de domínio e não por detalhe técnico.
- Manter props explícitas (evitar objetos genéricos sem contrato).
- Evitar lógica de consulta/mutação em componentes de apresentação.
- Extrair componentes quando
view.tsxou um content component crescer excessivamente. - Co-localizar testes com o componente quando possível.
Onde documentar novos componentes¶
- Componentes base: atualizar este arquivo e
design-system.md. - Componentes de feature: documentar no README do submódulo (quando existir) ou na documentação de domínio correspondente.