feat(home): rolagem suave (Lenis) e seis transicoes de secao ligadas a rolagem

Cada passagem segura a secao que sai e a que entra na tela enquanto a
transicao acontece: dissolucao do hero no notebook, cartao, iris, corte
lateral, perspectiva, cortina diagonal e zoom. Medidas pelo layout
(offsetTop) para nao confundir os gatilhos com os transforms.
Remove letreiros e divisores entre secoes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Evandro Fonseca JuniorandClaude Opus 5.5 committed 2026-10-05 00:32:32 -03:00
1 parent 0ec0194441
commit df1c1888da
10 files changed
+262 -254

No files matched your search

+5 -2
View File
@@ -7,6 +7,7 @@ import type { PortfolioProjectView } from "@/lib/portfolio-data";
import NotebookFallback from "./NotebookFallback";
import { selectNotebookProjects } from "./notebookProjects";
import { getNotebookFrame, getNotebookSeekProgress } from "./notebookTimeline";
import { pageTop } from "../cinematic/useCinematicScroll";
const NotebookStage3D = dynamic(() => import("./NotebookStage3D"), {
ssr: false,
@@ -149,8 +150,10 @@ export default function NotebookStory({
onUpdate: applyProgress,
scrollTrigger: {
trigger: sectionRoot,
start: "top top",
end: "bottom bottom",
// medidas pelo layout: as transições da home deslocam a seção com transform
start: () => pageTop(sectionRoot),
end: () =>
pageTop(sectionRoot) + sectionRoot.offsetHeight - window.innerHeight,
scrub: true,
invalidateOnRefresh: true,
onRefresh: () => layoutReadyRef.current?.(),