ZeideI survived only to tell
Browse the Archives

Diário de implementação — v2 (Home + A Jornada)

Diário de implementação — v2 (Home + A Jornada)

This notebook is in Portuguese, as written during the research. Translation follows in stages, after the first published version.

File
site/docs/14-diario-v2.md
Updated
2026-09-01
Terms of use
Written by the family with AI assistance, August–September 2026. The site's source of truth.

Continuação do 13-diario-v1.md. Contratos executados: 06-wireframes.md W1+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 majdanek perder 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#

BugCausaCorreção
Cena da linha 29 não rolavaalvo medido ANTES da imagem decodificar; rAF suspenso em aba ocultaimg.decode() antes de medir + scrollTo({behavior:'smooth'}) nativo + garantia por timeout
Moldura da linha 29 fora do scanposition: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 topomedido na imagem real; a cena agora parte do vazio (60%) e sobe
Busca global vaziacomum.js buscava /data/busca-index.json; o build gera busca-{lang}.jsonusar a URL do JSON embutido (GS.url)
Fio atravessando o texto no mobiletypo no seletor (.jr-thread-h).jr-thread + esconder hint
Rodapé inalcançável na Jornada desktopwheel SEMPRE virava scroll horizontalnas bordas do palco o wheel volta a rolar a página
Véu cinza no mobilefundo-da-fita sobre a coluna de leituradisplay: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#

  1. 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.
  2. 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.