Et si votre site pouvait passer d’une page à l’autre avec une animation élégante, sans ce fameux « flash » de rechargement ? C’est désormais possible grâce à la View Transition API et à la règle CSS @view-transition, qui apportent des transitions de vues natives aux applications multi‑pages. Dans ce guide, nous vous montrons comment utiliser les view-transitions pour créer une navigation plus fluide, du rappel des fondamentaux jusqu’à une première personnalisation.
Sur le web, deux architectures dominent : les multi‑page applications (MPA) et les single‑page applications (SPA). Comprendre leur logique aide à situer la valeur des transitions de vues.
Historiquement, les animations de navigation lisses étaient l’apanage des SPA. Les view-transitions changent la donne : elles permettent aux MPAs d’offrir des transitions animées, tout en restant compatibles avec le principe de progressive enhancement. Si le navigateur ne prend pas en charge la fonctionnalité, la navigation standard continue de fonctionner sans casse.
La spécification CSS View Transitions est publiée en deux niveaux, chacun couvrant un périmètre fonctionnel distinct :
Lorsqu’un navigateur ne prend pas en charge les view-transitions, rien ne se brise : la feuille de style est interprétée comme une amélioration optionnelle, et la navigation reste classique. C’est un cas d’école de progressive enhancement.
La beauté de l’approche CSS, c’est sa simplicité. Pour déclencher une transition de vue entre deux pages d’un même site, il suffit d’ajouter une règle dédiée dans vos styles : « @view-transition { navigation: auto; } ». Cette seule déclaration active la gestion des transitions lors de la navigation inter‑pages, sans JavaScript.
Pour bien visualiser l’effet, créez deux documents HTML minimalistes : une page d’accueil (index.html) avec un titre, quelques paragraphes et un lien vers une seconde page, puis une page de détails (hobbies.html) avec un contenu succinct et un lien retour. Appliquez une feuille de style commune et donnez à chaque page une ambiance colorée distincte pour rendre la transition évidente au premier coup d’œil. Une fois la règle @view-transition activée, le passage de l’une à l’autre se fait avec une animation native, sans effort supplémentaire.
Cette approche était autrefois réservée à des frameworks SPA, souvent à grand renfort de JavaScript et d’orchestration d’états. Ici, le navigateur assure l’essentiel du travail.
La transition par défaut s’apparente à un fondu croisé. Vous pouvez l’adapter à votre direction artistique et créer, par exemple, un glissement latéral. Pour cela, deux pseudo‑éléments CSS sont au cœur des view-transitions :
Ces pseudo‑éléments offrent une surface de style dédiée à chaque étape de la navigation. L’idée : définir des animations CSS ciblées sur l’ancienne vue et/ou la nouvelle, afin de contrôler finement l’entrée et la sortie de l’écran.
Supposons que vous souhaitiez faire entrer la seconde page depuis la droite, puis la faire sortir dans la même direction lors du retour. Vous pouvez procéder ainsi :
Un détail important : par défaut, les view-transitions utilisent un mode de fusion « plus‑lighter » qui produit un fondu croisé entre les vues. Pour un glissement net, forcez « mix-blend-mode » à « normal » sur les pseudo‑éléments concernés, afin d’éviter ce fondu et de garder un rendu propre. Vous pouvez aussi ajuster l’empilement (z-index) de la vue sortante pour contrôler l’ordre visuel pendant l’animation.
Notez que rien ne vous oblige à animer les deux pages. Dans l’exemple ci‑dessus, seule la page hobbies.html est animée à l’aller comme au retour, mais vous pouvez chorégraphier les deux côtés si votre direction artistique l’exige.
Comme toute animation d’interface, une transition réussie doit servir l’expérience utilisateur. Quelques principes à garder en tête :
Pour explorer davantage, consultez la documentation et les exemples de référence :
Les view-transitions apportent enfin aux MPAs ce que les SPA monopolisaient depuis des années : des transitions de navigation fluides, expressives et performantes. Avec une simple règle CSS, vous débloquez un fondu croisé par défaut ; avec quelques sélecteurs et animations bien pensées, vous composez des mouvements sur‑mesure – du slide latéral à des chorégraphies plus ambitieuses.
Cerise sur le gâteau, l’approche respecte parfaitement le progressive enhancement : sur les navigateurs compatibles, vos pages gagnent en fluidité ; ailleurs, l’expérience reste pleinement fonctionnelle. Lancez‑vous, expérimentez, et faites de la navigation un moment de design à part entière.
ChatGPT accueille des applications : un nouveau terrain de jeu pour l’idéation et la productivité…
Une nouvelle ère de recherche pour l’Europe Google ouvre un nouveau chapitre de la recherche…
Perplexity franchit une nouvelle étape stratégique avec l’acquisition de l’équipe derrière Visual Electric, une jeune…
Un cap important pour les front-ends modernesDisponible sur les principaux systèmes, Chrome 142 beta introduit…
Du gadget au véritable canal de venteLongtemps perçus comme un mélange de curiosité technologique et…
Une Nouvelle Révolution dans la Création de Contenu : Présentation du Sora 2 et Sa…