Cross-document view transitions (@view-transition)
Chrome 126, Safari 18.2; Firefox ainda não (caniuse até o 158). Área de foco do Interop 2026.
Chrome 126
Edge 126
Safari 18.2
Firefox no
Habilita navegações animadas num site multipágina com uma at-rule em ambas as páginas; `view-transition-name`s compartilhados se transformam entre páginas. Dá a sites estáticos transições estilo SPA com zero JS.
CSS
@view-transition {
navigation: auto
}
::view-transition-old(root) {
animation-duration: .2s
}
::view-transition-new(root) {
animation-duration: .3s
}
::view-transition-group(fx-040-hero) {
animation-duration: .45s;
animation-timing-function: cubic-bezier(.2,.8,.2,1)
}
@media (prefers-reduced-motion: reduce) {
::view-transition-group(*) {
animation: none
}
}
.fx-040 :is(a,button,input,select,textarea):focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
HTML
<!-- page A -->
<a href="post.html" class="fx-040"><div style="aspect-ratio:16/10;background:linear-gradient(135deg,#dbeaff,#ece0ff)"></div></a>
<!-- page B has the same image with the same view-transition-name -->Fallback: Navegadores sem suporte navegam normalmente; nada mais muda.
Prompt
Habilite view transitions entre documentos neste site multipágina: adicione `@view-transition { navigation: auto }` à folha de estilo compartilhada, dê à imagem do hero / título nas páginas de lista e de detalhe o mesmo `view-transition-name`, ajuste as durações via `::view-transition-old/new(root)` e `::view-transition-group(name)`, e desative sob `prefers-reduced-motion`. Só páginas da mesma origem; o Firefox simplesmente navega sem animação.