Cross-document view transitions (@view-transition)
Chrome 126, Safari 18.2; Firefox todavía no (caniuse hasta 158). Área de foco de Interop 2026.
Chrome 126
Edge 126
Safari 18.2
Firefox no
Activa en un sitio multipágina las navegaciones animadas con una sola at-rule en ambas páginas; los `view-transition-name` compartidos se transforman entre páginas. Da a los sitios estáticos transiciones tipo SPA con cero 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: Los navegadores sin soporte navegan de forma normal; nada más cambia.
Prompt
Habilita view transitions entre documentos en este sitio multipágina: añade `@view-transition { navigation: auto }` a la hoja de estilos compartida, da a la imagen del hero / título el mismo `view-transition-name` en las páginas de lista y de detalle, ajusta duraciones con `::view-transition-old/new(root)` y `::view-transition-group(name)`, y desactívalo bajo `prefers-reduced-motion`. Solo páginas del mismo origen; Firefox simplemente navegará sin animación.