【ビュートランジションズエーピーアイ】

View Transitions API とは?

💡 ページ切り替えをネイティブアプリ級になめらかにする、画面遷移の魔法
📌 このページのポイント
View Transitions API — ページ遷移アニメーション 旧ページ 画像A スナップショット 撮影 クロスフェード +モーフィング 新ページ 画像A(拡大) view-transition-name: hero SPA対応 document.startViewTransition() MPA対応 @view-transition ルール
View Transitions APIのイメージ
ひよこ ひよこ

ページ移動するときにパッと切り替わるのが普通だけど、それをなめらかにできるってこと?

ペンギン先生 ペンギン先生

そのとおり。View Transitions APIを使うと、古い画面のスナップショットを撮って、新しい画面にクロスフェードするようなアニメーションを自動でやってくれるんだ。ネイティブアプリみたいな体験がWebでも実現できるよ

ひよこ ひよこ

SPAじゃないと使えないの?

ペンギン先生 ペンギン先生

最初はSPA向けのdocument.startViewTransition()だけだったけど、今はMPA(通常のページ遷移)でも使えるようになったよ。CSSの@view-transitionルールを指定するだけで、サーバーサイドレンダリングのサイトでもページ間のなめらかな遷移が実現できるんだ

ひよこ ひよこ

特定の要素だけアニメーションさせることもできるの?

ペンギン先生 ペンギン先生

view-transition-nameというCSSプロパティで要素に名前をつけると、遷移前後で同じ名前の要素が自動的にマッチングされて、移動やリサイズのアニメーションが適用されるよ。商品一覧から詳細ページに遷移するとき、商品画像が飛んでいくような演出ができるんだ

ひよこ ひよこ

アニメーションのカスタマイズはどうやるの?

ペンギン先生 ペンギン先生

::view-transition-old()や::view-transition-new()といった擬似要素にCSSアニメーションを適用するだけでカスタマイズできるよ。フェード・スライド・ズームなど自由自在だね。AstroNext.jsなどのフレームワークも対応を進めていて、導入のハードルはどんどん下がっているよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「View Transitions API」って出てきたら「ページ遷移をなめらかにアニメーションさせるAPI」と思えればだいたいOK!
📖 おまけ:英語の意味
「View Transitions API」 = ビュー(画面)遷移API
💬 View(画面)のTransition(遷移・切り替わり)をスムーズにするAPIという意味だよ
← 用語集にもどる