feat: add full project - backend, frontend, docker, specs and configs
This commit is contained in:
parent
b77c7d5a01
commit
e6cb06255b
24489 changed files with 61341 additions and 36 deletions
61
specs/008-light-theme/spec.md
Normal file
61
specs/008-light-theme/spec.md
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
# Especificação da Feature: Light Theme
|
||||
|
||||
## Visão Geral
|
||||
|
||||
Permitir alternância entre tema escuro (Linear dark) e tema claro em todo o sistema (frontend React e páginas administrativas), promovendo acessibilidade, preferência visual e consistência de design. O tema claro deve ser moderno, acessível (contraste AA+), fácil de alternar e documentado para uso futuro.
|
||||
|
||||
## Atores
|
||||
- Usuário final (clientes, visitantes)
|
||||
- Administrador do sistema
|
||||
|
||||
## Cenários de Usuário & Testes
|
||||
- Usuário acessa o sistema e visualiza o tema de acordo com a preferência do sistema operacional ("prefers-color-scheme")
|
||||
- Usuário alterna manualmente entre tema claro e escuro via toggle global (ícone sol/lua no Navbar e painel admin)
|
||||
- Preferência de tema é persistida (localStorage) e respeitada em visitas futuras
|
||||
- Todas as páginas, componentes e formulários refletem corretamente o tema selecionado
|
||||
- Em SSR/hidratação, o tema correto é aplicado sem "flash" de tema incorreto
|
||||
- Contraste mínimo AA+ garantido em todos os estados (normal, hover, disabled)
|
||||
- Novos componentes podem adotar tokens de cor documentados
|
||||
|
||||
## Requisitos Funcionais
|
||||
1. Implementar paleta de cores clara (backgrounds, textos, bordas, acentos, hover, muted, etc) consistente e acessível
|
||||
2. Adicionar alternância global de tema (toggle) visível no Navbar e painel admin, com ícone sol/lua
|
||||
3. Persistir escolha do usuário em localStorage e sincronizar com prefers-color-scheme do SO
|
||||
4. Configurar Tailwind CSS para suportar dark/light usando a estratégia 'class'
|
||||
5. Garantir que todos os componentes, páginas e formulários respeitem o tema ativo
|
||||
6. Documentar tokens de cor (nomes, exemplos, guidelines de uso e contraste)
|
||||
7. Garantir fallback seguro para SSR/hidratação e acessibilidade (contraste mínimo, foco visível)
|
||||
|
||||
## Critérios de Sucesso
|
||||
- Usuário pode alternar entre temas e a escolha é lembrada em visitas futuras
|
||||
- Tema claro apresenta contraste AA+ em todos os elementos
|
||||
- Nenhum componente exibe cores erradas ou ilegíveis ao alternar tema
|
||||
- Preferência do SO é respeitada na primeira visita
|
||||
- Documentação de tokens e guidelines disponível para desenvolvedores
|
||||
- Não há "flash" de tema incorreto em SSR/hidratação
|
||||
|
||||
## Entidades/Objetos-Chave
|
||||
- Tokens de cor: bg, text, border, accent, muted, hover, etc
|
||||
- Preferência de tema: 'light', 'dark', 'system'
|
||||
- Componente de alternância (toggle)
|
||||
|
||||
## Restrições & Assunções
|
||||
- Tema escuro (Linear dark) já está implementado
|
||||
- Tema claro deve ser consistente com o dark, mas otimizado para acessibilidade
|
||||
- Persistência via localStorage; fallback para prefers-color-scheme
|
||||
- Tailwind já instalado; estratégia 'class' será usada
|
||||
- SSR pode ser relevante para futuras versões/admin
|
||||
|
||||
## Edge Cases
|
||||
- SSR/hidratação: evitar "flash" de tema incorreto
|
||||
- Usuário sem suporte a localStorage: fallback para sistema
|
||||
- Contraste mínimo em todos os estados (hover, disabled, etc)
|
||||
- Acessibilidade: foco visível, sem dependência exclusiva de cor
|
||||
|
||||
## Documentação
|
||||
- Listar tokens de cor, exemplos de uso e guidelines para novos componentes
|
||||
- Instruções para desenvolvedores sobre como aplicar tokens e garantir contraste
|
||||
|
||||
---
|
||||
|
||||
*Esta especificação não inclui detalhes de implementação, frameworks ou código. Foco em valor ao usuário, acessibilidade e consistência visual.*
|
||||
Loading…
Add table
Add a link
Reference in a new issue