Transiciones fluidas con la API de View Transition

La API de View Transition te brinda el poder de crear transiciones visuales fluidas entre diferentes vistas de tu sitio web. Esto crea una experiencia del usuario más atractiva visualmente a medida que navegan por tu sitio, independientemente de si está compilado como una aplicación de varias páginas (MPA) o una aplicación de una sola página (SPA).

Estas son algunas situaciones típicas en las que usarías transiciones de vistas:

  • Una imagen en miniatura en la página de una ficha de producto que pasa a una imagen de tamaño completo del producto en la página de detalles del producto.
  • Una barra de navegación fija que permanece en su lugar mientras navegas de una página a otra.
  • Una cuadrícula con elementos que se mueven de posición a medida que filtras.
Transiciones creadas con la API de View Transition. Prueba el sitio de demostración. Requiere Chrome 111 o versiones posteriores.

Cómo implementar transiciones de vistas

Las transiciones de vista no están vinculadas a una arquitectura o un framework de aplicación específicos y se pueden activar no solo en un solo documento, sino también entre dos documentos diferentes.

Ambos tipos de transición de vistas se basan en los mismos principios y bloques de construcción:

  1. El navegador toma instantáneas de los estados anterior y nuevo.
  2. El DOM se actualiza mientras se suprime la renderización.
  3. Las transiciones se basan en animaciones de CSS.

Lo único que difiere entre ambos tipos es la forma en que se activan.


Transiciones de vista del mismo documento

Cuando una transición de vista se ejecuta en un solo documento, se denomina transición de vista del mismo documento. Por lo general, este es el caso de las aplicaciones de una sola página (SPA). Las transiciones de vista del mismo documento son compatibles con Chrome a partir de la versión 111.

Navegadores compatibles

  • Chrome: 111.
  • Edge: 111.
  • Firefox: No es compatible.
  • Safari: 18.

Origen

Cómo activar

Llama a document.startViewTransition para activar transiciones de vista del mismo documento:

function handleClick(e) {
  // Fallback for browsers that don't support this API:
  if (!document.startViewTransition) {
    updateTheDOMSomehow();
    return;
  }

  // With a View Transition:
  document.startViewTransition(() => updateTheDOMSomehow());
}

Ejemplo

El siguiente ejemplo de tarjetas es un SPA que usa transiciones de vista del mismo documento para animar las tarjetas a medida que se agregan o quitan tarjetas nuevas.

Grabación de la demostración de tarjetas. Requiere Chrome 111 o versiones posteriores.

Comienza con la compilación

Consulta la página de documentación específica para obtener información sobre las transiciones de vista del mismo documento.

Cómo compilar transiciones de vista del mismo documento


Transiciones de vista entre documentos

Cuando se produce una transición de vista entre dos documentos diferentes, se denomina transición de vista entre documentos. Esto es típico de los MPA. Las transiciones de vista entre documentos son compatibles con Chrome 126 y versiones posteriores.

Navegadores compatibles

  • Chrome: 126
  • Borde: 126
  • Firefox: No es compatible.
  • Versión preliminar de tecnología de Safari: Compatible.

Cómo activar

Las transiciones de vista entre documentos se activan mediante una navegación entre documentos del mismo origen, si ambas páginas habilitaron esta opción. En otras palabras, no hay una API a la que llamar para iniciar una transición de vista entre documentos. Cuando un usuario hace clic en un vínculo, el clic activa la transición de vista.

Para habilitar esta opción, usa el siguiente fragmento de CSS:

@view-transition {
  navigation: auto;
}

Ejemplo

El siguiente ejemplo de Stack Navigator es una MPA que usa transiciones de vista de varios documentos entre dos documentos diferentes. Según si profundizas en la navegación o no, las páginas se envían a la pila o se quitan.

Grabación de la demo de Stack Navigator. Se requiere Chrome 126 o versiones posteriores.

Comienza con la compilación

Obtén información sobre las transiciones de vista entre documentos.

Cómo compilar transiciones de vista entre documentos