Continuação do
13-diario-v1.md. Contratos executados:06-wireframes.mdW1+W3 ·10-design-avancado.md(A1 fio, A2 fundos/posters, B1–B3) · decisão 32 (B2 busca global) · decisão 35 (P3.3 linha 29, P4 foto-objeto, P5 física) · Entregue e verificado em 01/09/2026.
O que o v2 entregou#
- Rotas definitivas:
/= home (W1) ·/entrevista/·/jornada/+ espelhos/en/…. (A Entrevista saiu da raiz ANTES de qualquer deploy público — sem links quebrados no mundo.) - Home: a foto de 1938 como objeto (P4: tilt ±3° no mouse, giroscópio no toque com permissão iOS, brilho de papel; estático sob reduced-motion), as duas portas (Memorial desabilitado "em breve"), o arco em 7 linhas, cards de seção.
- A Jornada: 10 capítulos em 9.250px de palco horizontal; escala distorcida (decisão 7) com régua honesta (hachura + "anos comprimidos" nos trechos Kalisz e A vida); trilhas vida+mundo (toggle); 61 eventos (23+ nível 1, resto em "+N detalhes"); dots com a taxonomia completa (forma+cor+ícone+grau); posters de evento no hover; painel deslizante com badges, figura com proveniência, citação verbatim (EN: PT + tradução marcada), fontes e nav; PiP arrastável com dot-pulse quando o vídeo cruza timestamps; filtros com estado na URL; deep links
#e-{id}; teclado (setas/Enter/PgUp/PgDn); wheel→horizontal com lerp e snap de capítulo; dots magnéticos. - O fio da vida (A1): SVG gerado NO BUILD com a série real — engrossa 3→7 (1929), perde Frania (1930), split em dez/1939 (o fio dele ∥ o feixe de 5), o feixe termina em fade (~1942, gradiente), Marisha em pontilhado que desvanece sem terminar, o vale de 1, o recomeço, o terminus marcado (18/10/2000) e o leque abrindo em 23 linhas no epílogo. Desenha-se com o scroll (scroll-driven CSS, clip-path). Tabela-espelho acessível num
<details>no epílogo. Aria-label narrativo no SVG. - A linha 29 (P3.3): no painel do evento do Groix, a p. 13 REAL do manifesto rola do vazio até a linha 29 acender (moldura âmbar). A página tem SÓ DOIS passageiros — ele e um menino apátrida de 12 anos — o que tornou a cena mais forte do que o planejado.
- Busca global (B2): modal ⌘K// em todas as páginas; índice por idioma gerado no build (61 eventos + 487 turnos); grupos "Na jornada"/"Na entrevista"; ↑↓/Enter.
- Epílogo: "O quinto milagre" com a frase final dele [135:58] e CTA para a família na entrevista [134:25].
- Fundos de capítulo da própria fita (blur 40, opacity .10/.16 claro/escuro) — só desktop.
- Anos-fantasma por capítulo (10 §C2), View Transitions cross-document, JS por página ≤ 11 KB gzip.
Decisões de implementação (registro)#
- Geometria no build, não no cliente: capítulos com largura fixa em px; posições dos eventos são
pos(0–1) curados à mão; régua e fio são SVGs com coordenadas absolutas gerados pelo gerador. Zero layout JS. - Painéis pré-renderizados em
<template id="tpl-{id}">— o JS só clona; conteúdo indexável e sem templating no cliente. - Mobile = coluna vertical (W3): sem palco horizontal, sem fio (é linguagem do eixo horizontal), sem fundo-da-fita (virava véu sobre texto), painel vira bottom-sheet.
- A verificação da fórmula de Majdanek agora roda TAMBÉM sobre os dados da timeline (o build falha se o evento
majdanekperder a fórmula). - Página 13 do Groix em imagem única (pdftoppm 110dpi) — dimensões reais 1962×1417.
Bugs achados e corrigidos durante os testes#
| Bug | Causa | Correção |
|---|---|---|
| Cena da linha 29 não rolava | alvo medido ANTES da imagem decodificar; rAF suspenso em aba oculta | img.decode() antes de medir + scrollTo({behavior:'smooth'}) nativo + garantia por timeout |
| Moldura da linha 29 fora do scan | position:absolute sem contexto (o top:% referia-se à janelinha de 318px, não ao conteúdo) | wrapper .inner relativo com a altura do conteúdo |
| Posição da linha errada (63%) | chute; a p.13 real tem a linha 29 a ~30% do topo | medido na imagem real; a cena agora parte do vazio (60%) e sobe |
| Busca global vazia | comum.js buscava /data/busca-index.json; o build gera busca-{lang}.json | usar a URL do JSON embutido (GS.url) |
| Fio atravessando o texto no mobile | typo no seletor (.jr-thread-h) | .jr-thread + esconder hint |
| Rodapé inalcançável na Jornada desktop | wheel SEMPRE virava scroll horizontal | nas bordas do palco o wheel volta a rolar a página |
| Véu cinza no mobile | fundo-da-fita sobre a coluna de leitura | display:none no mobile |
Aprendizado de ambiente (para o próximo agente)#
O painel de browser do harness suspende rAF e congela o compositor quando oculto — capturas podem vir em branco/velhas e animações rAF não rodam. Não é bug do site: (a) traga o painel para frente (tabs_select) antes de screenshots; (b) se travar, feche e reabra o tab; (c) prefira animações nativas (scrollTo smooth, CSS) a rAF manual — são também mais robustas para usuários.
Verificação final (todos )#
Desktop claro/escuro: capítulos, régua com hachura, fio+split+fade+Marisha+leque, ano-fantasma, fundos da fita · painel (foto-1938, Majdanek EN com tradução, linha 29 acendendo sobre o nome dele) · PiP tocando com dot-pulse e expandir com timecode #t=111m56s · filtros (12 dots escondidos, ?sem=historia) · +4 detalhes · teclado (setas→Enter abriu "Morre Frania") · busca global ("carroça" → 2 eventos + 1 turno) · home (tilt 1.5°/1.8° medido, portas, arco) · mobile (coluna limpa, bottom-sheet, filtros empilhados) · EN completo · deep links #e-groix.
Pendências conscientes (v3)#
Memorial + Mapa + Arquivo/Pessoas (com z-cw nos documentos de morte — nenhum scan de morte entrou no v2 de propósito: a página de Majdanek do livro dos mortos é de um homônimo já descartado) · prólogo (P1) · som da fita (P2) · cenas fuga e dez trens (P3.1–3.2) · página-tese (P6) · OG por entidade (quando houver URLs próprias) · AVIF/WebP (pipeline sharp) · Lighthouse CI no deploy.
01/09 · Pós-entrega — duas mudanças do Flavio#
- A foto de 1938 identificada (decisão 37): em pé Szyja·Mojsie·Majer. Corrigido em cascata (dados-biograficos → catálogo → linha-do-tempo → timeline.mjs → legenda da home → wireframes → roteiro). A "posição 3" sai da lista do que não sabemos.
- Fim dos emojis na UI (decisão 36): biblioteca própria
lib/icons.mjs(15 ícones SVG stroke, estilo Lucide, à mão); tema (sol/lua/contraste), busca, taxonomia, graus, portas da home, badges — tudo mono. Verificado: zero emoji em todas as páginas do dist.