diff --git a/.impeccable.md b/.impeccable.md index 4f1bb1b..5cc4204 100644 --- a/.impeccable.md +++ b/.impeccable.md @@ -24,3 +24,20 @@ Corner Instrument. Dark, physical, rugged surfaces; high-contrast numbers; techn 3. Replace generic cards with instrument surfaces, rails, strips, separators, and timeline details. 4. History must be inspectable: saved windows open into detailed, timestamped training evidence. 5. UI copy stays PT-BR; code identifiers stay English. + +## Estado atual (2026-06-15) + +Direção 01 — Corner Instrument refinada para **Instrumento Forte** (release v2). Mudanças: + +- **JetBrains Mono tabular** em todos os displays numéricos (BPM 110px, métricas 28px, detalhes 18px, score 56px). Fontes bundled em `assets/fonts/JetBrainsMono-{Regular,Medium,Bold,ExtraBold}.ttf` + `android/app/src/main/assets/fonts/`. `fontVariant: ['tabular-nums']` para alinhamento perfeito de dígitos. +- **6 novos componentes** (LiveDot, PressableSurface, EmptyState, DialTile, TrackRow, InsightRow) e **2 hooks** (usePulseAnimation, useMotionPreference). 9 novos testes TDD. +- **Animações orquestradas** via Reanimated 4 + Worklets 0.9: LiveDot pulse (1.6s), BPM pulse condicional (0.8s), stop alert ring durante captura (1.6s), tab cross-fade (200ms), stagger reveal em listas (50ms por row), press feedback refinado (scale 0.96/opacity 0.82), pin pulse 1.4→1 com easeOutBack. +- **TrainingChart refinado**: 6 furos laterais (1.5×4px) estilo ECG + LiveDot no readout. +- **BLE, SQLite, hooks de monitor NÃO foram tocados** — apenas refinamento de UI/UX. +- **applicationId preservado**: `com.healthtracking.fightrate` — APK instala por cima da versão anterior mantendo dados. +- **Tokens adicionados ao `src/theme/`**: `displayNumeric`, `displaySmallNumeric`, `metricNumeric`, `detailNumeric`, `ringWarn`, `motion.{easeOutQuart, easeOutExpo, easeOutBack, easeInOutQuart, duration, stagger}`. +- **Componentes existentes modificados sem breaking change**: ActionButton (stopAlert), StatusTag (size), SectionPanel (divider, subtle), MetricTile (numeric). + +Próxima iteração: avaliar **Direção C (Cinemática)** — entrada de tela com reveal, transições slide, sombras direcionais, esqueletos geométricos. + +Verificação: `npm run typecheck` (0 erros), `npm test -- --runInBand` (74/74 passa), `npm run lint` (config pre-existente, erro de jest/globals — não bloqueante). APK 32.5 MB → 9.8 MB (.7z).