# Implementation Plan: Página Sobre
**Branch**: `021-pagina-sobre` | **Date**: 2026-04-17 | **Spec**: [spec.md](./spec.md)
**Input**: Criar página estática `/sobre` com hero, história, diferenciais, métricas, equipe e CTA final.
## Summary
Criar `AboutPage.tsx` — uma página 100% estática com seis seções institucionais — e integrá-la ao roteamento SPA via `App.tsx`. Adicionalmente, atualizar o link "Sobre" no `Footer.tsx` de `#sobre` para `/sobre` (navegação client-side via ``). Sem backend, sem chamadas a API, sem novo estado global.
## Technical Context
**Language/Version**: TypeScript 5.5 / React 18
**Primary Dependencies**: react-router-dom v6 (já instalado), Tailwind CSS 3.4 (já configurado)
**Storage**: N/A — página 100% estática
**Testing**: N/A — componente puramente estático
**Target Platform**: SPA browser (desktop + mobile, 320 px → 1920 px)
**Project Type**: Web application — frontend SPA
**Performance Goals**: Tempo de renderização equivalente ao das demais páginas estáticas do site
**Constraints**: Layout responsivo sem overflow horizontal; sem chamadas a APIs; WhatsApp placeholder `5500000000000`
**Scale/Scope**: 1 nova page, 2 arquivos editados
## Constitution Check
*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
| Princípio | Status | Observação |
|-----------|--------|------------|
| I. Design-First | ✅ PASS | Todos os tokens do DESIGN.md são aplicados: `bg-canvas`, `bg-panel`, `text-text-primary/secondary/tertiary`, `border-white/[0.06]`, `rounded-2xl`, accent `#5e6ad2`. Nenhum inline style fora do sistema. |
| II. Separation of Concerns | ✅ PASS | Feature 100% frontend. Sem nenhuma chamada ao backend Flask. |
| III. Spec-Driven Development | ✅ PASS | `spec.md` aprovado; ciclo plan → tasks → implement respeitado. |
| IV. Data Integrity | ✅ N/A | Sem dados de API, sem banco de dados. Todo conteúdo é estático. |
| V. Security | ✅ PASS | Página pública, sem segredos, sem autenticação. Link WhatsApp usa `wa.me` com placeholder substituível. |
| VI. Simplicity First | ✅ PASS | 1 componente de page, sem abstração extra, sem helpers, sem contexto novo. |
**Resultado**: Sem violações. Pode prosseguir para Phase 0.
## Project Structure
### Documentation (this feature)
```text
specs/021-pagina-sobre/
├── plan.md # Este arquivo
├── research.md # Phase 0 output
├── data-model.md # Phase 1 output
├── quickstart.md # Phase 1 output
└── tasks.md # Phase 2 output (/speckit.tasks — NÃO gerado aqui)
```
### Source Code (repository root)
```text
frontend/
└── src/
├── pages/
│ └── AboutPage.tsx ← NOVO
├── App.tsx ← EDITADO (nova rota /sobre)
└── components/
└── Footer.tsx ← EDITADO (href #sobre → /sobre via )
```
**Structure Decision**: Web application — apenas camada frontend. Sem novos serviços, hooks, contextos ou tipos compartilhados. `AboutPage.tsx` segue exatamente o padrão de `PrivacyPolicyPage.tsx`.
## Complexity Tracking
*Nenhuma violação de Constitution detectada. Seção omitida conforme orientação do template.*