# Sprint 3 — Etapa 7: Polish — Identidad de marca en la web app
## Contexto
Sos Claude Code trabajando en **InQ ROI**. Las reglas de implementación están en `simulador-web/CLAUDE.md`. El brief del sprint está en `sprints/sprint-3/BRIEF.md`.
**Estado al iniciar esta etapa:**
- Etapas 1–6 completadas. Sprint 3 funcionalmente completo.
- La web app no muestra en ningún lugar el nombre del producto "InQ ROI" ni el logo de InQuality. El `AppFooter` existe pero tiene texto muy tenue (`text-slate-300`) que pasa desapercibido.
- El favicon actual (`public/favicon.svg`) es un gráfico de barras azul genérico — no representa la marca InQ.
- Los logos en PNG están en `assets/` en la raíz del proyecto. Vite sirve estáticos desde `public/`. Los archivos tienen espacios en el nombre y necesitan ser copiados con nombres limpios.
**Esta etapa es de branding puro. No hay lógica de negocio, no hay stores, no hay modelos.**
---
## Objetivo
Agregar identidad visual de InQ ROI en la web app:
1. **Nuevo componente `AppHeader`:** barra naranja horizontal con logo InQuality en blanco y nombre del producto "InQ ROI". Aparece en todas las páginas principales.
2. **Logos en `public/`:** copiar los PNGs relevantes con nombres sin espacios.
3. **Favicon actualizado:** isotipo InQ naranja en lugar del gráfico de barras azul genérico.
---
## Paso 0 — Copiar logos a `public/`
Antes de cualquier código, copiar los siguientes archivos desde `assets/` a `public/`:
```bash
# Ejecutar desde simulador-web/
cp "assets/MARCA FINAL 2023 AREA DE SEGURIDAD 1 BCO.png" "public/inquality-logo-white.png"
cp "assets/MARCA FINAL 2023 AREA DE SEGURIDAD 1 COLOR.png" "public/inquality-logo-color.png"
```
Estos son archivos binarios — copiarlos sin modificar. Los nombres de destino no tienen espacios para compatibilidad con Vite.
---
## Cambios autorizados
### `public/inquality-logo-white.png` (NUEVO — binario copiado)
### `public/inquality-logo-color.png` (NUEVO — binario copiado)
### `public/favicon.svg` (MODIFICAR)
Reemplazar el contenido actual con un favicon naranja InQ. Usar el isotipo simplificado — una "Q" con el naranja de marca en un fondo redondeado:
```svg
```
### `src/components/AppHeader.tsx` (NUEVO)
Componente de barra de marca. Diseño: fondo degradado `#F59845 → #ED3E8F` (gradiente de identidad InQ), logo blanco a la izquierda, texto "InQ ROI" a la derecha en blanco. Altura: 44px.
```tsx
export function AppHeader() {
return (
{/* Nombre del producto */}
InQ ROI
InQ ROI · Powered by InQuality · v0.1.0 · Hecho desde Paraguay 🇵🇾
``` --- ## ❌ Lo que NO entra en esta etapa - Cambios en stores, simulación, persistencia, dominio - Cambios en componentes de UI que no sean los listados arriba - Nuevo routing o cambios en `router.tsx` - Modificar el logo PNG o cambiar la identidad visual establecida - Agregar links de navegación en el `AppHeader` (solo marca, sin nav) - `pdf-sections.ts` — el header del PDF ya tiene logo (implementado en sprints anteriores) --- ## Verificación antes de entregar ```bash # 1. Build limpio npm run build # 2. Tests sin regresión npm run test # 3. Control de scope git diff --name-only HEAD ``` El diff debe mostrar únicamente: - `public/favicon.svg` - `public/inquality-logo-white.png` (binario nuevo) - `public/inquality-logo-color.png` (binario nuevo) - `src/components/AppHeader.tsx` (nuevo) - `src/features/library/LibraryPage.tsx` - `src/features/workspace/WorkspacePage.tsx` - `src/features/report/ReportPage.tsx` - `src/features/import/ImportPage.tsx` - `src/features/settings/SettingsPage.tsx` - `src/components/AppFooter.tsx` Si aparece cualquier archivo de `src/store/`, `src/domain/`, `src/persistence/`, o `src/lib/export/`: **revertir y reportar**. ### Verificación funcional mandatoria Antes de reportar, verificar manualmente: 1. **Logo visible en biblioteca:** abrir la home → ver barra naranja/magenta con logo blanco de InQuality y "InQ ROI" a la derecha. 2. **Logo en workspace:** abrir un proceso → la barra aparece encima del header del proceso. 3. **Logo en reporte:** navegar al reporte → la barra está arriba de todo, incluso por encima del banner stale si existe. 4. **Logo en import:** ir a importar BPMN → la barra está presente. 5. **Logo en settings:** ir a configuración → la barra está presente. 6. **Favicon:** en el tab del browser se ve el fondo naranja con "Q", no el gráfico de barras azul. 7. **Sin regresión de layout:** el workspace no tiene scroll horizontal inesperado por la nueva barra. --- ## Criterios de aceptación - [ ] Logo InQuality visible en las 5 páginas principales. - [ ] Favicon actualizado a isotipo naranja InQ. - [ ] Gradiente `#F59845 → #ED3E8F` correcto — no colores CONCILIA. - [ ] Build sin errores TypeScript. - [ ] Todos los tests previos siguen verdes (561). - [ ] Validación visual del director aprobada — OK formal requerido antes de cerrar. --- ## Reporte esperado al terminar 1. Resultado de `git diff --name-only HEAD`. 2. Resultado de `npm run build` y `npm run test`. 3. Confirmación de los 7 casos de verificación funcional. 4. Cualquier decisión de iniciativa tomada (Nivel 1/2/3). --- ## Referencias - `CLAUDE.md` — reglas de marca: gradiente `#F59845 → #ED3E8F`, no usar colores CONCILIA - `assets/MARCA FINAL 2023 AREA DE SEGURIDAD 1 BCO.png` — logo horizontal blanco (para fondo naranja) - `assets/MARCA FINAL 2023 AREA DE SEGURIDAD 1 COLOR.png` — logo horizontal color (para fondo blanco) - `src/components/AppFooter.tsx` — patrón de componente de marca existente - `methodology/PATTERNS.md` — C.7 (git diff como control preventivo)