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
View File
@@ -2,6 +2,7 @@
import { usePathname } from "next/navigation";
import { ViewTransition } from "react";
import { useFocusOnNavigation } from "@/app/hooks/useFocusOnNavigation";
/**
* O conteúdo leva o nome "page" e anima com page-out/page-in (globals.css) a cada troca de página.
@@ -10,6 +11,7 @@ import { ViewTransition } from "react";
* update="none" corta. Com a chave, a página que sai e a que entra formam o par que o React anima.
* update="none": a hidratação e a revelação de Suspense também são transições do React e animariam a página
* inteira na chegada (a tela piscava duas vezes); só a troca de página anima.
* Depois de cada troca o foco vai para #main-content, sem rolar (useFocusOnNavigation); a carga inicial não mexe no foco.
*
* Só no `next dev`, algumas rotas (/servicos/engenharia-de-software, /servicos/arquitetura-de-software e
* /servicos/integracao-hardware-software-iot, às vezes o 404) mostram no console "Each child in a list should have a
@@ -22,6 +24,7 @@ import { ViewTransition } from "react";
*/
export default function Template({ children }: { children: React.ReactNode }) {
const pathname = usePathname();
useFocusOnNavigation(pathname);
return (
<ViewTransition key={pathname} name="page" update="none">
{children}