perf(movimento): sem tempo morto, vídeos regravados e 3D sem React Three Fiber

Legenda do mergulho até Projetos cobrir a cena; transição de página sem blur e com fundo escuro; foco no conteúdo ao trocar de página; listas com marcador e dois pesos de título; vídeos da SEV e da SC Plus regravados sem quadros brancos; scrub a 12-15 fps (-30%); vitrine com uma parada de Tab e setas, contador no celular e CSS sob demanda; âncoras num módulo só (fragment-nav); FramePulse com setInterval; CSS morto removido.
This commit is contained in:
Evandro Fonseca Junior committed 2026-10-14 17:01:37 -03:00
1 parent f8545cd442
commit 6ac87824f3
68 files changed
+5735 -3300

No files matched your search

+3 -3
View File
@@ -56,7 +56,7 @@ const section = () => document.querySelector(".hero") as HTMLElement;
/** Rola o hero no meio do mergulho e diz se a rolagem chegou a escrever o progresso no CSS. */
function scrollWritesProgress() {
section().getBoundingClientRect = () =>
({ top: -700, height: 3000, bottom: 2300 }) as DOMRect;
({ top: -700, height: 2760, bottom: 2300 }) as DOMRect;
act(() => {
window.dispatchEvent(new Event("scroll"));
jest.advanceTimersByTime(40);
@@ -192,10 +192,10 @@ describe("HeroField (ambient background)", () => {
const hero = container.querySelector(".hero") as HTMLElement;
expect(hero).toHaveAttribute("data-dive");
await idle();
// 3000 px de hero: 800 de palco, 800 da tela de Projetos subindo e 1400 de mergulho
// 2760 px de hero (altura = 1,7 tela de cauda + o mergulho): 800 de palco, 560 de Projetos subindo e 1400 de mergulho
let top = 0;
hero.getBoundingClientRect = () =>
({ top, height: 3000, bottom: top + 3000 }) as DOMRect;
({ top, height: 2760, bottom: top + 2760 }) as DOMRect;
Object.defineProperty(window, "innerHeight", {
configurable: true,
value: 800,