Ejemplos de la View Transitions API

View Transitions API: ejemplos en vivo para SPA y multipágina | We.Inc

Ejemplos funcionales de la View Transitions API: startViewTransition en una lista que puedes barajar, elementos con nombre que se transforman, @view-transition entre páginas, tipos, React y compatibilidad.

Ejemplos de la View Transitions API

La View Transitions API anima el paso entre dos estados de una página. En una aplicación de una sola página, envuelve la actualización del DOM en document.startViewTransition(() => update()). Entre páginas del mismo origen, añade @view-transition { navigation: auto; } a ambas páginas. Dale a un elemento un view-transition-name único y el navegador lo transformará desde su posición anterior hasta la nueva.

Dos tipos de view transition

La mayoría de las explicaciones sobre view transitions describen el árbol de pseudoelementos y se quedan ahí. Esta página empieza con una demo que funciona en tu navegador: baraja una cuadrícula, abre una tarjeta en una vista de detalle y observa cómo se mueven los elementos con nombre. Después te da el código de cada patrón, la configuración entre páginas y las alternativas para navegadores sin soporte.

Preguntas frecuentes

¿Qué hace document.startViewTransition?

Captura la página actual, ejecuta tu callback de actualización y luego anima desde la captura anterior hasta el nuevo estado real. Devuelve un objeto ViewTransition con las promesas ready, finished y updateCallbackDone y un método skipTransition().

¿Cómo añado view transitions entre páginas?

Pon @view-transition { navigation: auto; } en el CSS tanto de la página que abandonas como de la página a la que llegas. Las páginas deben compartir origen, y por defecto obtienes un fundido cruzado. Da a los elementos equivalentes el mismo view-transition-name en ambas páginas para transformarlos.

¿Funcionan las view transitions en Firefox?

Las transiciones del mismo documento funcionan desde Firefox 144. Las transiciones entre documentos no eran compatibles con Firefox en el momento de escribir esto, así que en esos navegadores la navegación simplemente ocurre sin animación.

¿Cómo uso las view transitions en React?

Ejecuta document.startViewTransition y actualiza el estado dentro de flushSync de react-dom, para que React escriba el nuevo DOM de forma síncrona antes de que el navegador tome la nueva captura.

¿Cómo personalizo la animación?

Aplica estilos a los pseudoelementos. ::view-transition-old(name) es la captura saliente y ::view-transition-new(name) la entrante, y ::view-transition-group(name) controla el tamaño y la posición. Usa root como nombre para la página completa.

Qué ocurre durante una transición

Nombrar bien los elementos

Tipos para distintas direcciones

Transiciones en el mismo documento

startViewTransition con detección de soporte

Los navegadores sin la API ejecutan la actualización directamente, así que nada se rompe.

Transformar una miniatura en una imagen principal

Solo un elemento puede llevar el nombre a la vez, así que asígnalo a la miniatura pulsada justo antes de la transición.

React

startViewTransition con flushSync

flushSync hace que React confirme el nuevo DOM dentro del callback.

Transiciones entre documentos

Deslizar entre las páginas de un sitio multipágina

Inclúyelo en la hoja de estilos de cada página que deba participar. Solo mismo origen.

Referencia de la API

Las piezas de la View Transitions API

El movimiento reducido está activado, así que el cambio fue instantáneo.

Tu navegador no admite view transitions, así que el cambio fue instantáneo.

Demo en vivo

Baraja la cuadrícula o abre una tarjeta. Cada mosaico tiene su propio view-transition-name, así que el navegador lo anima hasta su nueva posición.

Barajar

Volver a la cuadrícula

El bloque de color y el título se transformaron desde la cuadrícula porque aquí conservan los mismos nombres.

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio