0Pricing
CSS Academy · レッスン

View Transitions API

CSS View Transitions APIを使って、ページや要素の滑らかなトランジションアニメーションを作成します。

「View Transitions API」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。

View Transitions API とは

View Transitions API(Chrome 111 以降)を使うと、ページの異なる状態間やページ遷移の間を、滑らかにアニメーションさせられます。変更前と変更後のスクリーンショットを取得し、CSS アニメーションを使ってその間をモーフィングすることで、ウェブ上でアプリのようなトランジションを実現します。

同一ドキュメント内のトランジション

DOM の更新を document.startViewTransition(() => updateDom()) で囲むと、同じページ内のトランジションを開始できます。ブラウザーが以前の状態を取得し、更新を実行してから新しい状態を取得し、その間を自動的にクロスフェードします。

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

デフォルトのクロスフェード

CSS を何も指定しなくても、View Transitions はページの以前の状態と新しい状態の間でシンプルなクロスフェードを実行します。この JavaScript の 1 行だけで、以前なら複雑な CSS アニメーションの制御や専用のアニメーションライブラリが必要だった、洗練されたトランジションを追加できます。

CSS 疑似要素

この API は 4 つの疑似要素を公開します。::view-transition(ルートのオーバーレイ)、::view-transition-old(root)(以前のページのスクリーンショット)、::view-transition-new(root)(新しいページのスクリーンショット)、::view-transition-image-pair(root) です。CSS アニメーションでこれらをカスタマイズできます。

view-transition-name による名前付きトランジション

トランジションの前後で存在し続ける要素に view-transition-name: hero-image を指定します。API がその要素を以前の位置とサイズから新しい位置とサイズへモーフィングするため、要素単位の滑らかなアニメーションを自動的に作成できます。

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

カスタムアニメーション

疑似要素にカスタムキーフレームを指定すると、デフォルトのクロスフェードを上書きできます。前方へのナビゲーションでは右からスライドインし、戻る操作では左からスライドインさせます。::view-transition-new(root) と ::view-transition-old(root) を @keyframes の対象にしてください。

MPA トランジション(Navigation API)

ドキュメントをまたぐ View Transitions(Chrome 126 以降)を使うと、マルチページアプリでページ全体のナビゲーション間をアニメーションさせられます。CSS に @view-transition { navigation: auto; } を追加するだけで、ブラウザーが HTML ページ間のトランジションを自動的に処理します。JavaScript は必要ありません。

アクセシビリティ:動きの設定への配慮

前庭障害のあるユーザーに、動きの激しいトランジションを体験させてはいけません。トランジションのアニメーションを @media (prefers-reduced-motion: no-preference) で囲むと、動きを減らしたいユーザーにはカスタムアニメーションを無効にしつつ、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>

SPA フレームワークとの統合

React Router v6.4 以降、Vue Router、Astro は View Transitions をサポートしています。これらのフレームワークは、ルート変更を自動的に startViewTransition で囲みます。ナビゲーションやレイアウトの外枠など、トランジション中も残る要素に view-transition-name を指定して、ルートごとのトランジションスタイルを設定できます。

パフォーマンスに関する考慮事項

View Transitions はページのスクリーンショットを取得するため、複雑なレイアウトでは負荷が高くなることがあります。合成レイヤーが多い大規模なページでは、取得中に動きが引っかかる場合があります。トランジションの時間は 300ms 未満にし、非常に複雑なサブツリーのトランジションは避けてください。

段階的な機能強化

使用する前に API の利用可能性を確認してください。if (!document.startViewTransition) { updateDom(); return; } フォールバックでは、アニメーションなしで通常どおり DOM を更新します。View Transitions は段階的な機能強化です。対応していない環境でもアプリは動作し、対応している環境では体験が向上します。

理解度チェック

View Transition 中に、要素へ view-transition-name を指定すると何が可能になりますか?

まとめ

View Transitions API を使うと、最小限のコードで DOM の状態間やページ遷移間のクロスフェードとモーフィングのアニメーションを実現できます。名前付きのトランジション要素は自動的にモーフィングされ、疑似要素にカスタムアニメーションを指定するとデフォルトのクロスフェードを置き換えられます。prefers-reduced-motion に配慮し、対応していないブラウザーには段階的な機能強化を使用してください。

よくある質問

「View Transitions API」レッスンは無料ですか?

はい。「View Transitions API」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。

「View Transitions API」で何を学びますか?

CSS View Transitions APIを使って、ページや要素の滑らかなトランジションアニメーションを作成します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

CSS Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「View Transitions API」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCSS Academyレッスンでコードを書いて実行できますか?

はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ネイティブCSSネスティング
  2. :has()関係擬似クラス
  3. スコープ付きスタイルのための@scope
  4. View Transitions API
← CSS Academyに戻る