fix(home): transicoes estaveis, diagrama desenhado na entrada, rolagem suave nos links e transicao entre paginas

- visibilidade de cada cena calculada pela posicao da rolagem: nada vaza antes
  da passagem nem aparece atras de transparencias depois
- sem scale em ancestrais do canvas do notebook (tela desalinhada)
- IA -> qualidade em 2D (abertura em portas); a rotacao 3D adiava a pintura
  do diagrama, que agora se desenha junto com a entrada
- iris com aceleracao gradual; hero para de desenhar ao fim do mergulho
- links internos rolam suavemente ate o fim da transicao do destino
- navegacao entre paginas com ViewTransition (app/template.tsx)

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:50:57 -03:00
1 parent df1c1888da
commit a3a206fb7a
6 files changed
+202 -45

No files matched your search

+45
View File
@@ -2315,3 +2315,48 @@ html.lenis {
transition: none;
}
}
/* Navegação entre páginas (app/template.tsx liga as transições de visualização do React): a página atual
recua e desfoca, a nova chega de baixo. O cabeçalho tem nome próprio e fica parado durante a troca. */
.site-header {
view-transition-name: site-header;
}
::view-transition-group(site-header) {
animation: none;
}
::view-transition-group(page) {
animation: none;
}
::view-transition-old(page) {
animation: page-out 280ms cubic-bezier(0.7, 0, 0.84, 0) both;
}
::view-transition-new(page) {
animation: page-in 640ms var(--ease-out) 160ms both;
}
@keyframes page-out {
to {
opacity: 0;
transform: scale(0.97);
filter: blur(8px);
}
}
@keyframes page-in {
from {
opacity: 0;
transform: translateY(40px) scale(1.015);
filter: blur(10px);
}
}
@media (prefers-reduced-motion: reduce) {
::view-transition-old(page),
::view-transition-new(page) {
animation: none;
}
}