feat: add full project - backend, frontend, docker, specs and configs

This commit is contained in:
MatheusAlves96 2026-04-20 23:59:45 -03:00
parent b77c7d5a01
commit e6cb06255b
24489 changed files with 61341 additions and 36 deletions

View file

@ -0,0 +1,89 @@
---
description: "Tasks para a feature 008 - Light Theme"
---
# Tasks: Light Theme (008)
**Input**: Design documents de `/specs/008-light-theme/`
**Prerequisites**: plan.md (required), spec.md (required)
## Phase 1: Setup (Shared Infrastructure)
**Purpose**: Inicialização e configuração base para suporte a temas
- [ ] T001 Atualizar Tailwind para `darkMode: 'class'` em frontend/tailwind.config.ts
- [ ] T002 [P] Adicionar dependências/utilitários necessários para alternância de tema em frontend/package.json
---
## Phase 2: Foundational (Blocking Prerequisites)
**Purpose**: Definir tokens, guidelines e base para alternância
- [ ] T003 Definir tokens de cor (bg, text, border, accent, muted, hover, etc) para ambos temas em frontend/tailwind.config.ts
- [ ] T004 [P] Documentar tokens, exemplos e recomendações de contraste em DESIGN.md
- [ ] T005 [P] Garantir tokens disponíveis via classes utilitárias e/ou @apply em frontend/src/index.css
---
## Phase 3: User Story 1 (P1) — Alternância global, persistência, SSR, documentação
- [ ] T006 [US1] Criar ThemeProvider/contexto React para alternância de tema em frontend/src/contexts/ThemeContext.tsx
- [ ] T007 [P] [US1] Implementar persistência da escolha do tema (localStorage) e sincronização com prefers-color-scheme em ThemeProvider
- [ ] T008 [P] [US1] Garantir SSR/hidratação sem "flash" de tema incorreto em frontend/src/main.tsx e ThemeProvider
- [ ] T009 [US1] Adicionar toggle de tema (ícone sol/lua) no Navbar em frontend/src/components/Navbar.tsx
- [ ] T010 [P] [US1] Adicionar toggle de tema no painel admin em frontend/src/layouts/ClientLayout.tsx
- [ ] T011 [P] [US1] Garantir acessibilidade do toggle (foco, aria-label, contraste) em ambos componentes
- [ ] T012 [US1] Atualizar/criar seção de guidelines de tema em DESIGN.md (exemplos, recomendações, como estender)
---
## Phase 4: User Story 2 (P2) — Refatoração de componentes/páginas
- [ ] T013 [US2] Refatorar principais componentes para usar tokens e classes theme-aware em frontend/src/components/
- [ ] T014 [P] [US2] Refatorar principais páginas para usar tokens e classes theme-aware em frontend/src/pages/
- [ ] T015 [P] [US2] Garantir que todos respeitem o tema ativo (testar alternância)
---
## Phase 5: User Story 3 (P3) — Testes de acessibilidade e documentação para devs
- [ ] T016 [US3] Testar contraste mínimo AA+ em todos os estados (normal, hover, disabled) nos principais componentes/páginas
- [ ] T017 [P] [US3] Garantir foco visível e navegação por teclado nos toggles e componentes principais
- [ ] T018 [P] [US3] Validar ausência de "flash" de tema incorreto em SSR/hidratação
- [ ] T019 [US3] Documentar para devs: exemplos de uso de tokens, recomendações de contraste, como estender o tema e integrar novos componentes em DESIGN.md
---
## Phase 6: Polish & Cross-Cutting Concerns
- [ ] T020 Revisar documentação e exemplos em DESIGN.md
- [ ] T021 [P] Revisar todos os componentes para garantir consistência visual e acessibilidade
---
## Dependencies
- Phase 1 → Phase 2 → Phase 3 (US1) → Phase 4 (US2) → Phase 5 (US3) → Phase 6
- Tasks marcadas com [P] podem ser executadas em paralelo dentro da mesma fase
## Parallel Execution Examples
- T002 e T003 podem rodar em paralelo
- T007, T008, T010, T011 podem rodar em paralelo após T006
- T014 e T015 podem rodar em paralelo após T013
- T017 e T018 podem rodar em paralelo após T016
## Independent Test Criteria
- US1: Alternância funcional, persistência, sem flash, documentação clara
- US2: Todos componentes/páginas respeitam tema ativo
- US3: Contraste AA+, foco visível, documentação para devs
## MVP Scope
- Fase 3 (US1): Alternância global, persistência, SSR/hidratação, documentação inicial
## Formato Validado
- Todos os tasks seguem o formato checklist: checkbox, ID, [P] se paralelizável, [USx] se de user story, caminho de arquivo