@maestro-ai/mcp-server 5.7.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzers/security-analyzer.js +1 -1
- package/dist/analyzers/security-analyzer.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/content/skills/specialist-api-contract/SKILL.md +98 -0
- package/dist/content/skills/specialist-api-contract/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-api-contract/resources/reference/guide.md +109 -0
- package/dist/content/skills/specialist-architect/SKILL.md +111 -0
- package/dist/content/skills/specialist-architect/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-architect/resources/examples/example-architecture.md +345 -0
- package/dist/content/skills/specialist-architect/resources/reference/guide.md +86 -0
- package/dist/content/skills/specialist-architect/resources/templates/arquitetura.md +282 -0
- package/dist/content/skills/specialist-backend/SKILL.md +100 -0
- package/dist/content/skills/specialist-backend/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-backend/resources/reference/guide.md +160 -0
- package/dist/content/skills/specialist-design/SKILL.md +107 -0
- package/dist/content/skills/specialist-design/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-design/resources/examples/example-design.md +294 -0
- package/dist/content/skills/specialist-design/resources/reference/guide.md +67 -0
- package/dist/content/skills/specialist-design/resources/templates/design-doc.md +232 -0
- package/dist/content/skills/specialist-devops/SKILL.md +99 -0
- package/dist/content/skills/specialist-devops/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-devops/resources/reference/guide.md +116 -0
- package/dist/content/skills/specialist-discovery/SKILL.md +109 -0
- package/dist/content/skills/specialist-discovery/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-discovery/resources/examples/example-discovery.md +179 -0
- package/dist/content/skills/specialist-discovery/resources/reference/guide.md +48 -0
- package/dist/content/skills/specialist-discovery/resources/templates/discovery.md +187 -0
- package/dist/content/skills/specialist-domain/SKILL.md +105 -0
- package/dist/content/skills/specialist-domain/resources/checklists/gate-checklist.md +37 -0
- package/dist/content/skills/specialist-domain/resources/reference/guide.md +80 -0
- package/dist/content/skills/specialist-frontend/SKILL.md +99 -0
- package/dist/content/skills/specialist-frontend/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-frontend/resources/reference/guide.md +90 -0
- package/dist/content/skills/specialist-operations/SKILL.md +109 -0
- package/dist/content/skills/specialist-operations/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-operations/resources/reference/guide.md +129 -0
- package/dist/content/skills/specialist-planning/SKILL.md +100 -0
- package/dist/content/skills/specialist-planning/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-planning/resources/reference/guide.md +88 -0
- package/dist/content/skills/specialist-product/SKILL.md +113 -0
- package/dist/content/skills/specialist-product/resources/checklists/gate-checklist.md +40 -0
- package/dist/content/skills/specialist-product/resources/reference/guide.md +43 -0
- package/dist/content/skills/specialist-product/resources/templates/PRD.md +191 -0
- package/dist/content/skills/specialist-requirements/SKILL.md +107 -0
- package/dist/content/skills/specialist-requirements/resources/checklists/gate-checklist.md +36 -0
- package/dist/content/skills/specialist-requirements/resources/reference/guide.md +66 -0
- package/dist/content/skills/specialist-technical-design/SKILL.md +114 -0
- package/dist/content/skills/specialist-technical-design/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-technical-design/resources/reference/guide.md +86 -0
- package/dist/core/adr/ADRGenerator.js +2 -2
- package/dist/core/adr/ADRGenerator.js.map +1 -1
- package/dist/core/architecture/FitnessFunctions.js +2 -2
- package/dist/core/architecture/FitnessFunctions.js.map +1 -1
- package/dist/core/atam/ATAMAnalyzer.js +6 -6
- package/dist/core/atam/ATAMAnalyzer.js.map +1 -1
- package/dist/core/atam/ATAMReporter.js +2 -2
- package/dist/core/atam/ATAMReporter.js.map +1 -1
- package/dist/core/atam/QualityScenarios.js +1 -1
- package/dist/core/atam/QualityScenarios.js.map +1 -1
- package/dist/core/atam/RiskRegistry.js +5 -5
- package/dist/core/atam/RiskRegistry.js.map +1 -1
- package/dist/core/authority/AuthorityManager.js +3 -3
- package/dist/core/authority/AuthorityManager.js.map +1 -1
- package/dist/core/automation/AutoExecutor.js +2 -2
- package/dist/core/automation/AutoExecutor.js.map +1 -1
- package/dist/core/consistency/ConsistencyAnalyzer.js +2 -2
- package/dist/core/consistency/ConsistencyAnalyzer.js.map +1 -1
- package/dist/core/context/ContextDetector.js +2 -2
- package/dist/core/context/ContextDetector.js.map +1 -1
- package/dist/core/decision/AlternativeGenerator.js +1 -1
- package/dist/core/decision/AlternativeGenerator.js.map +1 -1
- package/dist/core/decision/ConfidenceCalculator.js +5 -5
- package/dist/core/decision/ConfidenceCalculator.js.map +1 -1
- package/dist/core/decision/DecisionEngine.js +6 -6
- package/dist/core/decision/DecisionEngine.js.map +1 -1
- package/dist/core/decision/DecisionMatrix.js +1 -1
- package/dist/core/decision/DecisionMatrix.js.map +1 -1
- package/dist/core/feedback/FeedbackLoop.js +1 -1
- package/dist/core/feedback/FeedbackLoop.js.map +1 -1
- package/dist/core/growth/GrowthProjector.js +2 -2
- package/dist/core/growth/GrowthProjector.js.map +1 -1
- package/dist/core/impact/ImpactAnalyzer.js +1 -1
- package/dist/core/impact/ImpactAnalyzer.js.map +1 -1
- package/dist/core/notification/NotificationManager.js +2 -2
- package/dist/core/notification/NotificationManager.js.map +1 -1
- package/dist/core/roadmap/RoadmapManager.js +3 -3
- package/dist/core/roadmap/RoadmapManager.js.map +1 -1
- package/dist/core/strangler/StranglerOrchestrator.js +6 -6
- package/dist/core/strangler/StranglerOrchestrator.js.map +1 -1
- package/dist/core/testing/TestRunner.js +2 -2
- package/dist/core/testing/TestRunner.js.map +1 -1
- package/dist/core/tradeoff/TradeoffAnalyzer.js +1 -1
- package/dist/core/tradeoff/TradeoffAnalyzer.js.map +1 -1
- package/dist/core/validation/ValidationPipeline.js +5 -5
- package/dist/core/validation/ValidationPipeline.js.map +1 -1
- package/dist/flows/types.d.ts +13 -8
- package/dist/flows/types.d.ts.map +1 -1
- package/dist/flows/types.js +256 -324
- package/dist/flows/types.js.map +1 -1
- package/dist/gates/readiness-gate.d.ts +48 -0
- package/dist/gates/readiness-gate.d.ts.map +1 -0
- package/dist/gates/readiness-gate.js +301 -0
- package/dist/gates/readiness-gate.js.map +1 -0
- package/dist/handlers/code-phase-handler.js +14 -7
- package/dist/handlers/code-phase-handler.js.map +1 -1
- package/dist/handlers/specialist-phase-handler.d.ts +11 -10
- package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
- package/dist/handlers/specialist-phase-handler.js +160 -64
- package/dist/handlers/specialist-phase-handler.js.map +1 -1
- package/dist/middleware/adr-generation.middleware.js +2 -2
- package/dist/middleware/adr-generation.middleware.js.map +1 -1
- package/dist/middleware/orchestration-pipeline.middleware.d.ts.map +1 -1
- package/dist/middleware/orchestration-pipeline.middleware.js +0 -3
- package/dist/middleware/orchestration-pipeline.middleware.js.map +1 -1
- package/dist/services/deliverable-gate.service.js +1 -1
- package/dist/services/deliverable-gate.service.js.map +1 -1
- package/dist/services/phase-config-loader.d.ts +28 -0
- package/dist/services/phase-config-loader.d.ts.map +1 -0
- package/dist/services/phase-config-loader.js +200 -0
- package/dist/services/phase-config-loader.js.map +1 -0
- package/dist/services/scoring-config.d.ts.map +1 -1
- package/dist/services/scoring-config.js +13 -10
- package/dist/services/scoring-config.js.map +1 -1
- package/dist/services/watcher.service.js +3 -3
- package/dist/services/watcher.service.js.map +1 -1
- package/dist/tools/consolidated/avancar.d.ts.map +1 -1
- package/dist/tools/consolidated/avancar.js +86 -5
- package/dist/tools/consolidated/avancar.js.map +1 -1
- package/dist/tools/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +46 -0
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/proximo.d.ts +1 -0
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +44 -30
- package/dist/tools/proximo.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/phase-config.d.ts +65 -0
- package/dist/types/phase-config.d.ts.map +1 -0
- package/dist/types/phase-config.js +11 -0
- package/dist/types/phase-config.js.map +1 -0
- package/dist/utils/gate-orientation.js +1 -1
- package/dist/utils/gate-orientation.js.map +1 -1
- package/dist/utils/migration-v10.d.ts +31 -0
- package/dist/utils/migration-v10.d.ts.map +1 -0
- package/dist/utils/migration-v10.js +145 -0
- package/dist/utils/migration-v10.js.map +1 -0
- package/dist/utils/prompt-mapper.d.ts +6 -2
- package/dist/utils/prompt-mapper.d.ts.map +1 -1
- package/dist/utils/prompt-mapper.js +72 -91
- package/dist/utils/prompt-mapper.js.map +1 -1
- package/dist/utils/skill-deployer.d.ts +32 -0
- package/dist/utils/skill-deployer.d.ts.map +1 -0
- package/dist/utils/skill-deployer.js +150 -0
- package/dist/utils/skill-deployer.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Gate Checklist — Design
|
|
2
|
+
|
|
3
|
+
> **Score mínimo para aprovação:** 70/100
|
|
4
|
+
> **Itens críticos:** Devem TODOS estar ✅ para aprovar
|
|
5
|
+
|
|
6
|
+
## Itens Críticos
|
|
7
|
+
|
|
8
|
+
| # | Item | Peso | Critério Pass |
|
|
9
|
+
|---|------|------|---------------|
|
|
10
|
+
| 1 | **Jornada do usuário principal mapeada** | 15 | Etapas, ações, telas e emoções do fluxo principal completo |
|
|
11
|
+
| 2 | **Wireframes cobrem telas do MVP** | 20 | Cada tela com layout, componentes e interações descritas |
|
|
12
|
+
| 3 | **Design system definido** | 15 | Cores (primary, secondary, error), tipografia (3+ tamanhos), componentes base (5+) |
|
|
13
|
+
|
|
14
|
+
## Itens Importantes
|
|
15
|
+
|
|
16
|
+
| # | Item | Peso | Critério Pass |
|
|
17
|
+
|---|------|------|---------------|
|
|
18
|
+
| 4 | **Navegação e mapa de telas** | 10 | Hierarquia de URLs/telas, padrão de navegação por dispositivo |
|
|
19
|
+
| 5 | **Estados de UI documentados** | 10 | Loading, empty, error e success para fluxo principal |
|
|
20
|
+
| 6 | **Acessibilidade WCAG 2.1 AA** | 10 | Checklist com contraste, labels, keyboard nav, focus visible |
|
|
21
|
+
| 7 | **Responsividade mobile-first** | 10 | Breakpoints definidos, adaptação por dispositivo |
|
|
22
|
+
|
|
23
|
+
## Itens Desejáveis
|
|
24
|
+
|
|
25
|
+
| # | Item | Peso | Critério Pass |
|
|
26
|
+
|---|------|------|---------------|
|
|
27
|
+
| 8 | **Personas com cenários de UI** | 5 | Cada persona com cenário específico de interação |
|
|
28
|
+
| 9 | **Referências visuais citadas** | 3 | Apps/sites de referência mencionados |
|
|
29
|
+
| 10 | **Tom visual definido** | 2 | Personalidade e sensação do produto |
|
|
30
|
+
|
|
31
|
+
## Scoring
|
|
32
|
+
|
|
33
|
+
- **≥ 70:** Aprovado automaticamente
|
|
34
|
+
- **50-69:** Aprovação manual — wireframes incompletos ou design system parcial
|
|
35
|
+
- **< 50:** Bloqueado — wireframes ausentes ou sem design system
|
|
36
|
+
|
|
37
|
+
## Instruções de Correção
|
|
38
|
+
|
|
39
|
+
| Item Faltando | Como Corrigir |
|
|
40
|
+
|---------------|---------------|
|
|
41
|
+
| Jornada incompleta | Mapear etapa a etapa: entrada → orientação → ação → feedback → retorno |
|
|
42
|
+
| Wireframes faltando | Descrever cada tela: URL, layout ASCII, componentes, interações |
|
|
43
|
+
| Sem design system | Definir: 6+ cores com tokens, 4+ tamanhos de tipografia, 5+ componentes base |
|
|
44
|
+
| Sem estados de UI | Para cada fluxo: loading (skeleton), empty (ilustração + CTA), error (retry) |
|
|
45
|
+
| Sem acessibilidade | Aplicar checklist WCAG: contraste, labels, keyboard, focus, alt text |
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
# Design Doc — TaskFlow
|
|
2
|
+
|
|
3
|
+
> **Fase:** 2 · Design
|
|
4
|
+
> **Data:** 2026-03-01
|
|
5
|
+
> **Status:** Aprovado
|
|
6
|
+
> **Base:** Discovery (`docs/01-discovery/discovery.md`)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Visão do Sistema
|
|
11
|
+
|
|
12
|
+
### 1.1 Propósito
|
|
13
|
+
|
|
14
|
+
TaskFlow é uma plataforma web de gestão de tarefas para PMEs brasileiras com equipes de 5-20 pessoas. Centraliza projetos, tarefas e comunicação num único lugar com foco em simplicidade e produtividade.
|
|
15
|
+
|
|
16
|
+
### 1.2 Tom Visual
|
|
17
|
+
|
|
18
|
+
| Aspecto | Definição |
|
|
19
|
+
|---------|-----------|
|
|
20
|
+
| **Personalidade** | Profissional mas acessível — não corporativo, não infantil |
|
|
21
|
+
| **Sensação** | Limpo, organizado, produtivo — como uma mesa arrumada |
|
|
22
|
+
| **Referências** | Linear (foco e simplicidade), Notion (flexibilidade), Todoist (clareza) |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. Personas e Cenários
|
|
27
|
+
|
|
28
|
+
### Persona 1: Marina — Gerente de Projetos
|
|
29
|
+
|
|
30
|
+
**Cenário principal:** Marina abre o TaskFlow no notebook às 8h para checar status dos 4 projetos. Precisa ver quais tarefas estão atrasadas e quem está bloqueado — em 30 segundos, sem clicar em cada projeto.
|
|
31
|
+
|
|
32
|
+
**Necessidades de UI:**
|
|
33
|
+
- Dashboard com resumo de TODOS os projetos visível sem scroll
|
|
34
|
+
- Indicadores visuais de atraso (vermelho) e risco (amarelo)
|
|
35
|
+
- Filtro rápido por "minhas tarefas" vs "do time"
|
|
36
|
+
|
|
37
|
+
### Persona 2: Carlos — Tech Lead
|
|
38
|
+
|
|
39
|
+
**Cenário principal:** Carlos abre o TaskFlow no monitor durante a daily standup. Compartilha tela mostrando o kanban do sprint atual. Precisa mover tarefas rapidamente e ver quem está com carga alta.
|
|
40
|
+
|
|
41
|
+
**Necessidades de UI:**
|
|
42
|
+
- Kanban com drag-and-drop fluido e responsivo
|
|
43
|
+
- Visualização de carga por membro (avatar + contagem)
|
|
44
|
+
- Quick-add de tarefa sem sair do board
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Mapa de Jornada do Usuário
|
|
49
|
+
|
|
50
|
+
### Jornada: Criar e acompanhar tarefa (fluxo principal)
|
|
51
|
+
|
|
52
|
+
| Etapa | Ação do Usuário | Tela | Emoção | Oportunidade |
|
|
53
|
+
|-------|-----------------|------|--------|-------------|
|
|
54
|
+
| 1. Login | Acessa app, faz login com Google | Login page | Neutro | Login em 1 clique (OAuth) |
|
|
55
|
+
| 2. Dashboard | Vê resumo dos projetos | Dashboard | Orientado | Highlight de tarefas atrasadas |
|
|
56
|
+
| 3. Seleciona projeto | Clica no projeto ativo | Kanban board | Focado | Último projeto aberto por padrão |
|
|
57
|
+
| 4. Cria tarefa | Clica "+" ou usa quick-add | Modal/Inline form | Produtivo | Templates de tarefa por tipo |
|
|
58
|
+
| 5. Detalha | Adiciona descrição, responsável, prazo | Task detail drawer | Confiante | Sugestões de responsável baseado em carga |
|
|
59
|
+
| 6. Move tarefa | Drag-and-drop para "Doing" | Kanban board | Satisfeito | Animação suave de transição |
|
|
60
|
+
| 7. Verifica progresso | Volta ao dashboard | Dashboard atualizado | Confiante | Gráfico de burndown atualizado |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 4. Arquitetura de Informação
|
|
65
|
+
|
|
66
|
+
### 4.1 Mapa de Navegação
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
[TaskFlow]
|
|
70
|
+
├── / (Landing page - marketing)
|
|
71
|
+
├── /login
|
|
72
|
+
├── /register
|
|
73
|
+
├── /app (Área autenticada)
|
|
74
|
+
│ ├── /dashboard (Home — resumo de todos os projetos)
|
|
75
|
+
│ ├── /projects
|
|
76
|
+
│ │ ├── /projects (Lista de projetos)
|
|
77
|
+
│ │ ├── /projects/new (Criar projeto)
|
|
78
|
+
│ │ └── /projects/[id] (Kanban board do projeto)
|
|
79
|
+
│ │ └── /projects/[id]/tasks/[taskId] (Detalhe - drawer)
|
|
80
|
+
│ ├── /my-tasks (Minhas tarefas - cross-project)
|
|
81
|
+
│ ├── /notifications
|
|
82
|
+
│ ├── /settings
|
|
83
|
+
│ │ ├── /settings/profile
|
|
84
|
+
│ │ └── /settings/team
|
|
85
|
+
│ └── /invite/[token] (Aceitar convite)
|
|
86
|
+
└── /404
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 4.2 Padrão de Navegação
|
|
90
|
+
|
|
91
|
+
| Dispositivo | Padrão | Componente |
|
|
92
|
+
|-------------|--------|-----------|
|
|
93
|
+
| **Desktop** | Sidebar fixa (240px) + Header com search | Sidebar: logo, nav items, user menu |
|
|
94
|
+
| **Mobile** | Bottom tabs (4 itens) + Hamburger para secundários | Dashboard, Projetos, Minhas Tarefas, Mais |
|
|
95
|
+
| **Tablet** | Sidebar colapsável (60px ícones) + Header | Toggle com botão hamburger |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 5. Design System
|
|
100
|
+
|
|
101
|
+
### 5.1 Cores
|
|
102
|
+
|
|
103
|
+
| Token | Valor | Uso |
|
|
104
|
+
|-------|-------|-----|
|
|
105
|
+
| `--primary` | #2563EB (blue-600) | Botões primários, links, seleção ativa |
|
|
106
|
+
| `--primary-hover` | #1D4ED8 (blue-700) | Hover em botões primários |
|
|
107
|
+
| `--secondary` | #64748B (slate-500) | Textos secundários, ícones inativos |
|
|
108
|
+
| `--background` | #FFFFFF | Fundo principal |
|
|
109
|
+
| `--surface` | #F8FAFC (slate-50) | Cards, sidebar, painéis |
|
|
110
|
+
| `--border` | #E2E8F0 (slate-200) | Bordas de cards e inputs |
|
|
111
|
+
| `--error` | #EF4444 (red-500) | Erros, tarefas atrasadas, ações destrutivas |
|
|
112
|
+
| `--success` | #22C55E (green-500) | Tarefas concluídas, status ok |
|
|
113
|
+
| `--warning` | #F59E0B (amber-500) | Prazos próximos, alertas |
|
|
114
|
+
| `--info` | #3B82F6 (blue-500) | Informações, dicas |
|
|
115
|
+
|
|
116
|
+
### 5.2 Tipografia
|
|
117
|
+
|
|
118
|
+
| Elemento | Fonte | Tamanho | Peso |
|
|
119
|
+
|----------|-------|---------|------|
|
|
120
|
+
| **H1** | Inter | 28px / 1.75rem | 700 Bold |
|
|
121
|
+
| **H2** | Inter | 22px / 1.375rem | 600 Semibold |
|
|
122
|
+
| **H3** | Inter | 18px / 1.125rem | 600 Semibold |
|
|
123
|
+
| **Body** | Inter | 15px / 0.9375rem | 400 Regular |
|
|
124
|
+
| **Small** | Inter | 13px / 0.8125rem | 400 Regular |
|
|
125
|
+
| **Code** | JetBrains Mono | 13px | 400 Regular |
|
|
126
|
+
|
|
127
|
+
### 5.3 Componentes Base
|
|
128
|
+
|
|
129
|
+
| Componente | Variantes | Tamanhos |
|
|
130
|
+
|-----------|-----------|----------|
|
|
131
|
+
| **Button** | Primary, Secondary, Ghost, Destructive, Icon | sm (32px), md (36px), lg (40px) |
|
|
132
|
+
| **Input** | Text, Password, Search, Select, Textarea | sm, md |
|
|
133
|
+
| **Card** | Default, Elevated, Interactive (hover shadow) | — |
|
|
134
|
+
| **Badge** | Default (gray), Priority (P1-red, P2-orange, P3-blue, P4-gray) | sm, md |
|
|
135
|
+
| **Avatar** | Image, Initials (colorido por nome) | xs (24), sm (32), md (40), lg (48) |
|
|
136
|
+
| **Modal** | Default, Confirm (danger), Form | sm (400px), md (560px), lg (720px) |
|
|
137
|
+
| **Toast** | Success, Error, Warning, Info | auto-dismiss 5s |
|
|
138
|
+
| **Drawer** | Right-side, 480px width | — |
|
|
139
|
+
| **KanbanColumn** | Com header, contagem, add button | fluid width |
|
|
140
|
+
| **TaskCard** | Com título, badge de prioridade, avatar, prazo | — |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 6. Wireframes
|
|
145
|
+
|
|
146
|
+
### Tela 1: Dashboard
|
|
147
|
+
|
|
148
|
+
**URL:** `/app/dashboard`
|
|
149
|
+
**Persona:** Marina — verificação rápida de status
|
|
150
|
+
**Objetivo:** Ver resumo de todos os projetos em 30 segundos
|
|
151
|
+
|
|
152
|
+
**Layout:**
|
|
153
|
+
```
|
|
154
|
+
┌─────────────────────────────────────────────────────────┐
|
|
155
|
+
│ [Sidebar 240px] │ [Header: "Dashboard" | Search | 🔔 Bell | Avatar] │
|
|
156
|
+
│ │ │
|
|
157
|
+
│ 🏠 Dashboard │ ┌─────────────────────────────────────────┐ │
|
|
158
|
+
│ 📁 Projetos │ │ Resumo: 12 tarefas pendentes | 3 atrasadas │
|
|
159
|
+
│ ✅ Minhas Tarefas│ └─────────────────────────────────────────┘ │
|
|
160
|
+
│ ⚙️ Config │ │
|
|
161
|
+
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
162
|
+
│ ────────── │ │ Projeto A│ │ Projeto B│ │ Projeto C│ │
|
|
163
|
+
│ Projetos: │ │ 5 doing │ │ 2 doing │ │ 1 doing │ │
|
|
164
|
+
│ • Projeto A │ │ 1 atrasada│ │ 0 atrasada│ │ 2 atrasada│ │
|
|
165
|
+
│ • Projeto B │ │ ████░ 60%│ │ ██░░░ 40%│ │ ███░░ 55%│ │
|
|
166
|
+
│ • Projeto C │ └──────────┘ └──────────┘ └──────────┘ │
|
|
167
|
+
│ │ │
|
|
168
|
+
│ │ ┌─ Tarefas Atrasadas ──────────────────────┐│
|
|
169
|
+
│ │ │ 🔴 Design da landing page - Projeto A ││
|
|
170
|
+
│ │ │ 🔴 API de autenticação - Projeto C ││
|
|
171
|
+
│ │ │ 🔴 Testes E2E do checkout - Projeto C ││
|
|
172
|
+
│ │ └──────────────────────────────────────────┘│
|
|
173
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Componentes:** SummaryBar, ProjectCard (grid 3 cols), OverdueTaskList
|
|
177
|
+
**Interações:** Click em ProjectCard → navega para kanban. Click em tarefa atrasada → abre drawer.
|
|
178
|
+
|
|
179
|
+
### Tela 2: Kanban Board
|
|
180
|
+
|
|
181
|
+
**URL:** `/app/projects/[id]`
|
|
182
|
+
**Persona:** Carlos — gestão visual do sprint
|
|
183
|
+
**Objetivo:** Ver e mover tarefas entre status com drag-and-drop
|
|
184
|
+
|
|
185
|
+
**Layout:**
|
|
186
|
+
```
|
|
187
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
188
|
+
│ [Sidebar] │ [Header: "Projeto A" | Filtros | + Nova Tarefa] │
|
|
189
|
+
│ │ │
|
|
190
|
+
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐│
|
|
191
|
+
│ │ │ To Do(5)│ │Doing(3) │ │Review(2)│ │ Done(8) ││
|
|
192
|
+
│ │ │ │ │ │ │ │ │ ││
|
|
193
|
+
│ │ │┌───────┐│ │┌───────┐│ │┌───────┐│ │┌───────┐││
|
|
194
|
+
│ │ ││🔴 P1 ││ ││🟡 P2 ││ ││🔵 P3 ││ ││✅ │││
|
|
195
|
+
│ │ ││Design ││ ││API ││ ││Tests ││ ││Login │││
|
|
196
|
+
│ │ ││📅 Mar5││ ││👤Carlos││ ││👤Ana ││ ││👤João │││
|
|
197
|
+
│ │ │└───────┘│ │└───────┘│ │└───────┘│ │└───────┘││
|
|
198
|
+
│ │ │┌───────┐│ │┌───────┐│ │ │ │ ││
|
|
199
|
+
│ │ ││🟡 P2 ││ ││🔵 P3 ││ │ │ │ ││
|
|
200
|
+
│ │ ││Backend││ ││Docs ││ │ │ │ ││
|
|
201
|
+
│ │ │└───────┘│ │└───────┘│ │ │ │ ││
|
|
202
|
+
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘│
|
|
203
|
+
└──────────────────────────────────────────────────────────────┘
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Componentes:** KanbanColumn (flex horizontal, scroll horizontal em mobile), TaskCard (draggable), FilterBar
|
|
207
|
+
**Interações:** Drag-and-drop entre colunas. Click em TaskCard → abre TaskDetailDrawer à direita. Quick-add via input no topo de cada coluna.
|
|
208
|
+
|
|
209
|
+
### Tela 3: Task Detail (Drawer)
|
|
210
|
+
|
|
211
|
+
**URL:** `/app/projects/[id]/tasks/[taskId]` (drawer overlay)
|
|
212
|
+
**Objetivo:** Ver e editar detalhes completos de uma tarefa
|
|
213
|
+
|
|
214
|
+
**Layout:**
|
|
215
|
+
```
|
|
216
|
+
┌──────────────────────────────────────────┐
|
|
217
|
+
│ [Drawer 480px - right side] │
|
|
218
|
+
│ │
|
|
219
|
+
│ ╳ Fechar │
|
|
220
|
+
│ │
|
|
221
|
+
│ # Design da Landing Page │
|
|
222
|
+
│ 🔴 P1 - Alta │ 📁 Projeto A │
|
|
223
|
+
│ │
|
|
224
|
+
│ ────────────────────────────── │
|
|
225
|
+
│ **Responsável:** 👤 Marina │
|
|
226
|
+
│ **Prazo:** 📅 5 Mar 2026 (atrasado!) │
|
|
227
|
+
│ **Status:** To Do → [dropdown] │
|
|
228
|
+
│ **Labels:** design, frontend │
|
|
229
|
+
│ ────────────────────────────── │
|
|
230
|
+
│ │
|
|
231
|
+
│ ## Descrição │
|
|
232
|
+
│ Criar landing page responsiva seguindo │
|
|
233
|
+
│ o design system definido... │
|
|
234
|
+
│ │
|
|
235
|
+
│ ## Subtarefas (2/4) │
|
|
236
|
+
│ ✅ Definir copy principal │
|
|
237
|
+
│ ✅ Escolher imagens │
|
|
238
|
+
│ ☐ Implementar mobile │
|
|
239
|
+
│ ☐ Implementar desktop │
|
|
240
|
+
│ │
|
|
241
|
+
│ ## Comentários │
|
|
242
|
+
│ 👤 Carlos: "Priorizar mobile-first" │
|
|
243
|
+
│ 📅 1 Mar 2026 │
|
|
244
|
+
│ │
|
|
245
|
+
│ [Input: Adicionar comentário...] │
|
|
246
|
+
└──────────────────────────────────────────┘
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 7. Estados de UI
|
|
252
|
+
|
|
253
|
+
### Fluxo: Dashboard
|
|
254
|
+
|
|
255
|
+
| Estado | Visual | Comportamento |
|
|
256
|
+
|--------|--------|--------------|
|
|
257
|
+
| **Loading** | 3 skeleton cards em grid + skeleton da SummaryBar | Shimmer animation, 1-2s |
|
|
258
|
+
| **Empty** | Ilustração de foguete + "Crie seu primeiro projeto!" + botão CTA azul | Redireciona para /projects/new |
|
|
259
|
+
| **Error** | Banner vermelho no topo "Erro ao carregar projetos" + botão "Tentar novamente" | Retry com exponential backoff |
|
|
260
|
+
| **Success** | Grid de ProjectCards + SummaryBar + OverdueTaskList | Dados reais, atualiza a cada 30s |
|
|
261
|
+
|
|
262
|
+
### Fluxo: Kanban Board
|
|
263
|
+
|
|
264
|
+
| Estado | Visual | Comportamento |
|
|
265
|
+
|--------|--------|--------------|
|
|
266
|
+
| **Loading** | 4 colunas skeleton com 3 task cards skeleton cada | Shimmer |
|
|
267
|
+
| **Empty** | Colunas vazias + mensagem central "Nenhuma tarefa ainda" + botão "Criar tarefa" | Template de tarefa pré-preenchido |
|
|
268
|
+
| **Error** | Banner + "Erro ao carregar tarefas" + Retry | Fallback: mostrar cache local |
|
|
269
|
+
| **Success** | Colunas com TaskCards, drag-and-drop ativo | Optimistic updates no drag |
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## 8. Acessibilidade
|
|
274
|
+
|
|
275
|
+
### 8.1 Checklist WCAG 2.1 AA
|
|
276
|
+
|
|
277
|
+
- [x] Contraste ≥ 4.5:1 para texto (blue-600 em white = 4.7:1 ✅)
|
|
278
|
+
- [x] Todos os inputs com label visível (não apenas placeholder)
|
|
279
|
+
- [x] Navegação completa via Tab (sidebar → header → content → drawer)
|
|
280
|
+
- [x] Focus ring visível (2px blue-500 com offset)
|
|
281
|
+
- [x] Imagens de avatar com alt="Avatar de [nome]"
|
|
282
|
+
- [x] Headings em ordem correta (H1 por page, H2 por seção)
|
|
283
|
+
- [x] Botões com ícone têm aria-label (ex: aria-label="Fechar drawer")
|
|
284
|
+
- [x] Skip-to-content link oculto visível com Tab
|
|
285
|
+
- [x] Drag-and-drop tem alternativa de teclado (Arrow keys + Enter para mover)
|
|
286
|
+
- [x] Toasts têm role="alert" e aria-live="polite"
|
|
287
|
+
|
|
288
|
+
### 8.2 Responsividade
|
|
289
|
+
|
|
290
|
+
| Breakpoint | Largura | Adaptação |
|
|
291
|
+
|-----------|---------|-----------|
|
|
292
|
+
| **Mobile** | < 640px | Sidebar vira bottom tabs (4 itens). Kanban: scroll horizontal. Cards: full width |
|
|
293
|
+
| **Tablet** | 640-1024px | Sidebar colapsável (60px). Kanban: 3 colunas visíveis. Dashboard: grid 2 cols |
|
|
294
|
+
| **Desktop** | > 1024px | Sidebar fixa (240px). Kanban: 4+ colunas. Dashboard: grid 3 cols |
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Guia de Referência — Design
|
|
2
|
+
|
|
3
|
+
## Frameworks de UX Design
|
|
4
|
+
|
|
5
|
+
### Design Thinking (5 etapas)
|
|
6
|
+
1. **Empatia** — Entender o usuário real, não o imaginado
|
|
7
|
+
2. **Definição** — Sintetizar a dor principal em 1 frase
|
|
8
|
+
3. **Ideação** — Gerar múltiplas soluções antes de escolher
|
|
9
|
+
4. **Prototipagem** — Wireframe rápido para validar
|
|
10
|
+
5. **Teste** — Validar com usuários reais (ou cenários)
|
|
11
|
+
|
|
12
|
+
### Jornada do Usuário
|
|
13
|
+
- Mapear ANTES de desenhar telas
|
|
14
|
+
- Etapas: Entrada → Orientação → Ação → Feedback → Retorno
|
|
15
|
+
- Cada etapa tem: ação, tela, emoção, oportunidade de melhoria
|
|
16
|
+
- Fluxo principal primeiro, fluxos alternativos depois
|
|
17
|
+
|
|
18
|
+
### Atomic Design
|
|
19
|
+
| Nível | Exemplo | Quando usar |
|
|
20
|
+
|-------|---------|-------------|
|
|
21
|
+
| **Atoms** | Button, Input, Badge | Componentes unitários reutilizáveis |
|
|
22
|
+
| **Molecules** | SearchBar (Input+Button), Card | Combinações simples de atoms |
|
|
23
|
+
| **Organisms** | Header, Sidebar, TaskList | Seções completas da UI |
|
|
24
|
+
| **Templates** | DashboardLayout, KanbanLayout | Estrutura sem dados reais |
|
|
25
|
+
| **Pages** | Dashboard, ProjectBoard | Templates com dados reais |
|
|
26
|
+
|
|
27
|
+
## Design System — Mínimo Viável
|
|
28
|
+
|
|
29
|
+
### Cores obrigatórias (8 tokens)
|
|
30
|
+
`primary`, `primary-hover`, `secondary`, `background`, `surface`, `error`, `success`, `warning`
|
|
31
|
+
|
|
32
|
+
### Tipografia obrigatória (5 níveis)
|
|
33
|
+
H1, H2, H3, Body, Small — com fonte, tamanho e peso definidos
|
|
34
|
+
|
|
35
|
+
### Componentes obrigatórios (8 mínimos)
|
|
36
|
+
Button, Input, Card, Badge, Avatar, Modal, Toast, Table
|
|
37
|
+
|
|
38
|
+
## Acessibilidade WCAG 2.1 AA — Resumo
|
|
39
|
+
|
|
40
|
+
| Critério | Regra | Ferramenta de teste |
|
|
41
|
+
|----------|-------|---------------------|
|
|
42
|
+
| Contraste | ≥ 4.5:1 texto normal, ≥ 3:1 texto grande | WebAIM Contrast Checker |
|
|
43
|
+
| Labels | Todo input com `<label>` associado, não só placeholder | Lighthouse |
|
|
44
|
+
| Keyboard | Tab navega tudo, Enter ativa, Escape fecha | Teste manual |
|
|
45
|
+
| Focus | Outline visível em elementos interativos | CSS `:focus-visible` |
|
|
46
|
+
| Alt text | Imagens informativas com alt descritivo | HTML validator |
|
|
47
|
+
| Headings | H1→H2→H3 sem pular níveis | axe DevTools |
|
|
48
|
+
| Aria | Botões com ícone precisam de `aria-label` | axe DevTools |
|
|
49
|
+
|
|
50
|
+
## Estados de UI — Os 4 Obrigatórios
|
|
51
|
+
|
|
52
|
+
| Estado | O que mostrar | Anti-pattern |
|
|
53
|
+
|--------|--------------|-------------|
|
|
54
|
+
| **Loading** | Skeleton/shimmer no layout final | Spinner genérico sem contexto |
|
|
55
|
+
| **Empty** | Ilustração + mensagem + CTA | Tela em branco |
|
|
56
|
+
| **Error** | Mensagem clara + ação de retry | "Erro desconhecido" |
|
|
57
|
+
| **Success** | Dados reais + interações ativas | Página sem feedback visual |
|
|
58
|
+
|
|
59
|
+
## Anti-patterns de Design
|
|
60
|
+
|
|
61
|
+
| Anti-pattern | Correção |
|
|
62
|
+
|-------------|----------|
|
|
63
|
+
| Wireframes sem estados de UI | Documentar loading/empty/error para CADA tela |
|
|
64
|
+
| Design system "depois" | Definir cores, tipo e componentes ANTES dos wireframes |
|
|
65
|
+
| Ignorar mobile | Mobile-first: começar pelo menor breakpoint |
|
|
66
|
+
| Copiar referência sem adaptar | Usar como inspiração, adaptar para o contexto do projeto |
|
|
67
|
+
| Wireframes com dados falsos bonitos | Usar dados realistas: nomes reais, textos de tamanho real |
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# Design Doc — [NOME DO PROJETO]
|
|
2
|
+
|
|
3
|
+
> **Fase:** 2 · Design
|
|
4
|
+
> **Data:** [DATA]
|
|
5
|
+
> **Autor:** Especialista de Design + Usuário
|
|
6
|
+
> **Status:** Draft | Em Revisão | Aprovado
|
|
7
|
+
> **Base:** Discovery Doc (`docs/01-discovery/discovery.md`)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Visão do Sistema
|
|
12
|
+
|
|
13
|
+
### 1.1 Propósito
|
|
14
|
+
|
|
15
|
+
[PREENCHER — O que o sistema é e para quem, em 2-3 frases. Extrair do Discovery.]
|
|
16
|
+
|
|
17
|
+
### 1.2 Tom Visual
|
|
18
|
+
|
|
19
|
+
| Aspecto | Definição |
|
|
20
|
+
|---------|-----------|
|
|
21
|
+
| **Personalidade** | [Ex: Profissional e acessível, não corporativo demais] |
|
|
22
|
+
| **Sensação** | [Ex: Limpo, organizado, produtivo] |
|
|
23
|
+
| **Referências** | [Ex: Notion (simplicidade), Linear (foco), Stripe (elegância)] |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 2. Personas e Cenários
|
|
28
|
+
|
|
29
|
+
<!-- Resumo das personas do Discovery com cenários de uso específicos para design -->
|
|
30
|
+
|
|
31
|
+
### Persona 1: [NOME]
|
|
32
|
+
|
|
33
|
+
**Cenário principal:** [Ex: "Maria abre o app no celular durante o café da manhã para checar tarefas do dia. Precisa ver tudo em 10 segundos sem scrollar muito."]
|
|
34
|
+
|
|
35
|
+
**Necessidades de UI:**
|
|
36
|
+
- [Ex: Dashboard resumido visível sem scroll em mobile]
|
|
37
|
+
- [Ex: Ações rápidas acessíveis com 1 toque]
|
|
38
|
+
- [Ex: Notificações não intrusivas de tarefas vencidas]
|
|
39
|
+
|
|
40
|
+
### Persona 2: [NOME]
|
|
41
|
+
|
|
42
|
+
**Cenário principal:** [PREENCHER]
|
|
43
|
+
|
|
44
|
+
**Necessidades de UI:**
|
|
45
|
+
- [PREENCHER]
|
|
46
|
+
- [PREENCHER]
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 3. Mapa de Jornada do Usuário
|
|
51
|
+
|
|
52
|
+
<!-- Jornada do fluxo PRINCIPAL — da entrada ao objetivo concluído -->
|
|
53
|
+
|
|
54
|
+
### Jornada: [NOME DO FLUXO PRINCIPAL]
|
|
55
|
+
|
|
56
|
+
| Etapa | Ação do Usuário | Tela/Componente | Emoção | Oportunidade |
|
|
57
|
+
|-------|-----------------|-----------------|--------|-------------|
|
|
58
|
+
| 1. Entrada | [Ex: Acessa URL] | Landing/Login | [Ex: Curioso] | [Ex: Onboarding rápido] |
|
|
59
|
+
| 2. Orientação | [Ex: Vê dashboard] | Dashboard | [Ex: Orientado] | [Ex: Tutorial contextual] |
|
|
60
|
+
| 3. Ação principal | [Ex: Cria tarefa] | Formulário | [Ex: Produtivo] | [Ex: Templates prontos] |
|
|
61
|
+
| 4. Feedback | [Ex: Vê confirmação] | Toast/Redirect | [Ex: Satisfeito] | [Ex: Sugestão de próximo passo] |
|
|
62
|
+
| 5. Retorno | [Ex: Volta ao dashboard] | Dashboard atualizado | [Ex: Confiante] | [Ex: Progresso visual] |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 4. Arquitetura de Informação
|
|
67
|
+
|
|
68
|
+
### 4.1 Mapa de Navegação
|
|
69
|
+
|
|
70
|
+
<!-- Hierarquia de telas e como o usuário navega entre elas -->
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
[App]
|
|
74
|
+
├── / (Landing/Marketing)
|
|
75
|
+
├── /login
|
|
76
|
+
├── /register
|
|
77
|
+
├── /app (Área autenticada)
|
|
78
|
+
│ ├── /dashboard (Home)
|
|
79
|
+
│ ├── /[recurso-principal]
|
|
80
|
+
│ │ ├── /lista
|
|
81
|
+
│ │ ├── /novo
|
|
82
|
+
│ │ └── /[id] (detalhe)
|
|
83
|
+
│ ├── /perfil
|
|
84
|
+
│ └── /configuracoes
|
|
85
|
+
└── /404
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 4.2 Padrão de Navegação
|
|
89
|
+
|
|
90
|
+
| Dispositivo | Padrão | Componente |
|
|
91
|
+
|-------------|--------|-----------|
|
|
92
|
+
| **Desktop** | [Ex: Sidebar fixa + Header] | [Ex: Sidebar 240px + TopBar] |
|
|
93
|
+
| **Mobile** | [Ex: Bottom tabs + Hamburger] | [Ex: BottomNav 5 itens] |
|
|
94
|
+
| **Tablet** | [Ex: Sidebar colapsável] | [Ex: Sidebar mini 60px] |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 5. Design System
|
|
99
|
+
|
|
100
|
+
### 5.1 Cores
|
|
101
|
+
|
|
102
|
+
| Token | Valor | Uso |
|
|
103
|
+
|-------|-------|-----|
|
|
104
|
+
| `--primary` | [Ex: #2563EB (blue-600)] | Ações principais, links |
|
|
105
|
+
| `--primary-hover` | [Ex: #1D4ED8 (blue-700)] | Hover em botões primários |
|
|
106
|
+
| `--secondary` | [Ex: #64748B (slate-500)] | Textos secundários |
|
|
107
|
+
| `--background` | [Ex: #FFFFFF] | Fundo principal |
|
|
108
|
+
| `--surface` | [Ex: #F8FAFC (slate-50)] | Cards, painéis |
|
|
109
|
+
| `--error` | [Ex: #EF4444 (red-500)] | Erros, ações destrutivas |
|
|
110
|
+
| `--success` | [Ex: #22C55E (green-500)] | Confirmações, status ok |
|
|
111
|
+
| `--warning` | [Ex: #F59E0B (amber-500)] | Alertas, atenção |
|
|
112
|
+
|
|
113
|
+
### 5.2 Tipografia
|
|
114
|
+
|
|
115
|
+
| Elemento | Fonte | Tamanho | Peso |
|
|
116
|
+
|----------|-------|---------|------|
|
|
117
|
+
| **H1** | [Ex: Inter] | [Ex: 32px / 2rem] | [Ex: 700 Bold] |
|
|
118
|
+
| **H2** | [Ex: Inter] | [Ex: 24px / 1.5rem] | [Ex: 600 Semi] |
|
|
119
|
+
| **H3** | [Ex: Inter] | [Ex: 20px / 1.25rem] | [Ex: 600 Semi] |
|
|
120
|
+
| **Body** | [Ex: Inter] | [Ex: 16px / 1rem] | [Ex: 400 Regular] |
|
|
121
|
+
| **Small** | [Ex: Inter] | [Ex: 14px / 0.875rem] | [Ex: 400 Regular] |
|
|
122
|
+
| **Code** | [Ex: JetBrains Mono] | [Ex: 14px] | [Ex: 400] |
|
|
123
|
+
|
|
124
|
+
### 5.3 Componentes Base
|
|
125
|
+
|
|
126
|
+
| Componente | Variantes | Tamanhos |
|
|
127
|
+
|-----------|-----------|----------|
|
|
128
|
+
| **Button** | Primary, Secondary, Ghost, Destructive | sm, md, lg |
|
|
129
|
+
| **Input** | Text, Password, Search, Select | sm, md |
|
|
130
|
+
| **Card** | Default, Elevated, Interactive | — |
|
|
131
|
+
| **Badge** | Default, Success, Warning, Error | sm, md |
|
|
132
|
+
| **Avatar** | Image, Initials, Icon | xs, sm, md, lg |
|
|
133
|
+
| **Modal** | Default, Confirm, Form | sm, md, lg |
|
|
134
|
+
| **Toast** | Success, Error, Warning, Info | — |
|
|
135
|
+
| **Table** | Default, Striped, Sortable | — |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 6. Wireframes
|
|
140
|
+
|
|
141
|
+
<!-- Cada tela principal descrita em markdown estruturado. Foco em LAYOUT e CONTEÚDO, não pixels. -->
|
|
142
|
+
|
|
143
|
+
### Tela 1: [NOME DA TELA]
|
|
144
|
+
|
|
145
|
+
**URL:** [Ex: /app/dashboard]
|
|
146
|
+
**Persona:** [Ex: Maria — verificação rápida]
|
|
147
|
+
**Objetivo:** [Ex: Ver resumo de tarefas do dia em 10 segundos]
|
|
148
|
+
|
|
149
|
+
**Layout:**
|
|
150
|
+
```
|
|
151
|
+
┌─────────────────────────────────────────────┐
|
|
152
|
+
│ [Header: Logo | Search | Notifications | Avatar] │
|
|
153
|
+
├──────────┬──────────────────────────────────┤
|
|
154
|
+
│ │ │
|
|
155
|
+
│ Sidebar │ [Conteúdo principal] │
|
|
156
|
+
│ │ │
|
|
157
|
+
│ - Item 1 │ [Card: Resumo do dia] │
|
|
158
|
+
│ - Item 2 │ [Card: Tarefas pendentes] │
|
|
159
|
+
│ - Item 3 │ [Card: Atividade recente] │
|
|
160
|
+
│ │ │
|
|
161
|
+
└──────────┴──────────────────────────────────┘
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Componentes:**
|
|
165
|
+
- [Ex: Header com SearchInput + NotificationBell + AvatarMenu]
|
|
166
|
+
- [Ex: SummaryCard com contadores (pendentes, concluídas, atrasadas)]
|
|
167
|
+
- [Ex: TaskList com filtro por status e ordenação por prioridade]
|
|
168
|
+
|
|
169
|
+
**Interações:**
|
|
170
|
+
- [Ex: Click em tarefa → abre detalhe em drawer lateral]
|
|
171
|
+
- [Ex: Quick-add via input no topo da lista]
|
|
172
|
+
|
|
173
|
+
### Tela 2: [NOME DA TELA]
|
|
174
|
+
|
|
175
|
+
<!-- Repetir o mesmo formato para cada tela do MVP -->
|
|
176
|
+
|
|
177
|
+
[PREENCHER]
|
|
178
|
+
|
|
179
|
+
### Tela 3: [NOME DA TELA]
|
|
180
|
+
|
|
181
|
+
[PREENCHER]
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 7. Estados de UI
|
|
186
|
+
|
|
187
|
+
<!-- Para cada fluxo crítico, documentar os 4 estados obrigatórios -->
|
|
188
|
+
|
|
189
|
+
### Fluxo: [NOME DO FLUXO PRINCIPAL]
|
|
190
|
+
|
|
191
|
+
| Estado | Visual | Comportamento |
|
|
192
|
+
|--------|--------|--------------|
|
|
193
|
+
| **Loading** | [Ex: Skeleton placeholders nas cards] | [Ex: Shimmer animation, 3 skeletons] |
|
|
194
|
+
| **Empty** | [Ex: Ilustração + "Nenhuma tarefa ainda" + CTA] | [Ex: Botão "Criar primeira tarefa"] |
|
|
195
|
+
| **Error** | [Ex: Banner vermelho + "Erro ao carregar" + Retry] | [Ex: Botão "Tentar novamente" + fallback cache] |
|
|
196
|
+
| **Success** | [Ex: Lista populada com dados reais] | [Ex: Infinite scroll ou paginação] |
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 8. Acessibilidade
|
|
201
|
+
|
|
202
|
+
### 8.1 Checklist WCAG 2.1 AA
|
|
203
|
+
|
|
204
|
+
- [ ] Contraste de cores ≥ 4.5:1 para texto normal, ≥ 3:1 para texto grande
|
|
205
|
+
- [ ] Todos os inputs com label associado (não apenas placeholder)
|
|
206
|
+
- [ ] Navegação completa via teclado (Tab, Enter, Escape)
|
|
207
|
+
- [ ] Focus visible em todos os elementos interativos
|
|
208
|
+
- [ ] Imagens com alt text descritivo
|
|
209
|
+
- [ ] Hierarquia de headings correta (H1 → H2 → H3)
|
|
210
|
+
- [ ] Aria-labels em botões com apenas ícone
|
|
211
|
+
- [ ] Skip-to-content link no topo da página
|
|
212
|
+
- [ ] Formulários com mensagens de erro associadas ao campo
|
|
213
|
+
|
|
214
|
+
### 8.2 Responsividade
|
|
215
|
+
|
|
216
|
+
| Breakpoint | Largura | Adaptação |
|
|
217
|
+
|-----------|---------|-----------|
|
|
218
|
+
| **Mobile** | < 640px | Stack vertical, bottom nav, cards fullwidth |
|
|
219
|
+
| **Tablet** | 640-1024px | Sidebar colapsável, grid 2 colunas |
|
|
220
|
+
| **Desktop** | > 1024px | Sidebar fixa, grid 3+ colunas |
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Checklist de Completude
|
|
225
|
+
|
|
226
|
+
- [ ] Jornada do usuário principal mapeada completa
|
|
227
|
+
- [ ] Wireframes cobrem TODAS as telas do MVP
|
|
228
|
+
- [ ] Design system definido (cores, tipografia, componentes)
|
|
229
|
+
- [ ] Navegação e mapa de telas claro
|
|
230
|
+
- [ ] Estados de UI (loading, empty, error) documentados
|
|
231
|
+
- [ ] Acessibilidade WCAG 2.1 AA considerada
|
|
232
|
+
- [ ] Responsividade mobile-first planejada
|