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

+8 -19
View File
@@ -1130,31 +1130,20 @@ textarea {
}
}
/* Transição entre seções: cada seção sobe como um cartão e abre até a borda da tela.
CSS puro com linha do tempo de rolagem (Chrome, Edge, Safari 26+); sem suporte, a seção só aparece. */
/* Transições entre seções: app/components/cinematic/useCinematicScroll.ts (GSAP + Lenis).
O fundo escuro aparece nas frestas enquanto uma seção entra sobre a outra. */
.ds-main {
background: var(--ink);
}
@keyframes section-rise {
from {
clip-path: inset(8vh 4vw 0 4vw round 28px);
translate: 0 12vh;
}
to {
clip-path: inset(0 0 0 0 round 0);
translate: 0 0;
}
/* Lenis controla a suavidade da rolagem: o scroll-behavior nativo brigaria com ele */
html.lenis,
html.lenis body {
height: auto;
}
@supports (animation-timeline: view()) {
@media (prefers-reduced-motion: no-preference) {
.ds-main > section:not(.hero, .notebook-story) {
animation: section-rise linear both;
animation-timeline: view();
animation-range: entry 0% entry 85vh;
}
}
html.lenis {
scroll-behavior: auto;
}
/* Capa dos cards de projeto: captura real ou painel gerado em codigo */