0Pricing
CSS Academy · Lezione

View Transitions API

Crei animazioni fluide di transizione tra pagine ed elementi utilizzando la CSS View Transitions API.

View Transitions API è una lezione CSS Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CSS Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CSS Academy include 4 lezioni in totale.

Che cos'è la View Transitions API

La View Transitions API (Chrome 111+) consente transizioni fluide e animate tra stati diversi di una pagina o tra navigazioni di pagina. Cattura schermate prima e dopo il cambiamento e le trasforma l'una nell'altra usando animazioni CSS, permettendo di ottenere sul web transizioni simili a quelle delle app.

Transizioni nello stesso documento

Avvii una transizione nella stessa pagina racchiudendo un aggiornamento del DOM in document.startViewTransition(() => updateDom()). Il browser cattura lo stato precedente, esegue l'aggiornamento, cattura il nuovo stato e applica automaticamente una dissolvenza incrociata tra i due.

<button id="update-btn">Update Content</button>
<div class="content">Before update</div>

Dissolvenza incrociata predefinita

Senza alcun CSS, View Transitions esegue una semplice dissolvenza incrociata tra lo stato precedente e quello nuovo della pagina. Questa singola riga di JavaScript aggiunge una transizione curata che in precedenza richiedeva un'orchestrazione complessa di animazioni CSS o una libreria di animazione dedicata.

Pseudo-elementi CSS

L'API espone quattro pseudo-elementi: ::view-transition (overlay principale), ::view-transition-old(root) (schermata della pagina precedente), ::view-transition-new(root) (schermata della nuova pagina) e ::view-transition-image-pair(root). Li personalizzi con animazioni CSS.

Transizioni con nome tramite view-transition-name

Assegni view-transition-name: hero-image a un elemento che rimane presente durante la transizione. L'API trasforma questo elemento dalla posizione e dimensione precedenti a quelle nuove, creando automaticamente un'animazione fluida a livello di elemento.

<div class="hero-img"></div>

Animazioni personalizzate

Sostituisca la dissolvenza incrociata predefinita con keyframe personalizzati sui pseudo-elementi: faccia scorrere l'elemento da destra per la navigazione in avanti e da sinistra per tornare indietro. Applichi @keyframes a ::view-transition-new(root) e ::view-transition-old(root).

Transizioni MPA (Navigation API)

Le View Transitions tra documenti (Chrome 126+) animano le navigazioni complete tra pagine nelle applicazioni multipagina. Aggiunga @view-transition { navigation: auto; } al CSS: il browser gestirà automaticamente la transizione tra le pagine HTML, senza bisogno di JavaScript.

Accessibilità: rispettare le preferenze di movimento

Gli utenti con disturbi vestibolari non dovrebbero essere esposti a transizioni ricche di movimento. Racchiuda le animazioni di transizione in @media (prefers-reduced-motion: no-preference) per disabilitare le animazioni personalizzate per chi preferisce un movimento ridotto, mantenendo comunque l'aggiornamento funzionale del DOM.

<p>This rule targets browser-generated <code>::view-transition-old(root)</code> and <code>::view-transition-new(root)</code> pseudo-elements &mdash; visible only during an active view transition, not in a static preview.</p>

Integrazione con i framework SPA

React Router v6.4+, Vue Router e Astro supportano View Transitions. I framework racchiudono automaticamente i cambi di route in startViewTransition. Configuri gli stili delle transizioni per ogni route con view-transition-name sugli elementi persistenti, come la navigazione e i gusci del layout.

Considerazioni sulle prestazioni

View Transitions cattura schermate della pagina, un'operazione che può essere costosa nei layout complessi. Pagine estese con molti livelli compositati possono mostrare scatti durante la cattura. Mantenga la durata della transizione sotto i 300 ms ed eviti di applicarla a sottoalberi estremamente complessi.

Miglioramento progressivo

Verifichi la disponibilità dell'API prima di utilizzarla: if (!document.startViewTransition) { updateDom(); return; }. Il fallback aggiorna normalmente il DOM senza animazione. View Transitions è un miglioramento progressivo: l'applicazione funziona anche senza, ma l'esperienza migliora nei browser che le supportano.

Verifica delle conoscenze

Che cosa consente view-transition-name su un elemento durante una View Transition?

Riepilogo

La View Transitions API consente animazioni di dissolvenza incrociata e trasformazione tra stati del DOM o navigazioni di pagina con una quantità minima di codice. Gli elementi con una transizione nominata si trasformano automaticamente; le animazioni personalizzate dei pseudo-elementi sostituiscono la dissolvenza incrociata predefinita. Rispetti prefers-reduced-motion e utilizzi il miglioramento progressivo per i browser non supportati.

Domande Frequenti

La lezione «View Transitions API» è gratuita?

Sì — il testo completo di «View Transitions API» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CSS Academy, passa a CoddyKit PRO. Il corso CSS Academy include 4 lezioni in totale.

Cosa imparerò in «View Transitions API»?

Crei animazioni fluide di transizione tra pagine ed elementi utilizzando la CSS View Transitions API. Eserciti CSS Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare CSS Academy?

Non è richiesta alcuna esperienza precedente. CSS Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «View Transitions API»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione CSS Academy?

Sì. Ogni lezione CSS Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Nesting CSS nativo
  2. Pseudo-classe relazionale :has()
  3. @scope per stili con ambito locale
  4. View Transitions API
← Torna a CSS Academy