使い方ガイドへスキップ
vercel-react-view-transitions作者 Vercel Labs

Vercel React View Transitions スキル。

Claude Code と Codex 向けのモーション・動画スキル:React の View Transition API を使用したネイティブライクなページトランジションを実装します。

  • モーションと動画
  • UI コード
vercel-labs/agent-skills · skills/react-view-transitions/SKILL.mdSKILL.md
--- name: vercel-react-view-transitions description: Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation … --- ## When to Animate ## Availability ## Implementation Workflow ## Core Concepts ## Styling with View Transition Classes ## Transition Types
2026-09-14 に上流ファイルから読み込まれたフロントマターとセクション見出し · 全 14,341 文字

01 できること

Claude Code と Codex で vercel-react-view-transitions Skill が行うこと

概要、ワークフロー、出力。いずれもスキルの SKILL.md から読み取った内容です。

SKILL.md より2026年9月14日読取 · 実行記録ではありません

スキル自身の言葉で

React の View Transition API を使って UI の状態間をアニメーションさせるためのガイドです。ViewTransition コンポーネントで「何を」を宣言し、startTransition、useDeferredValue、あるいは Suspense で「いつ」をトリガーし、CSS クラスで「どのように」を制御します。固定された優先順位で並ぶ 5 つのパターン(共有要素のモーフ、リストの ID、状態変化、ルート変化)に加え、addTransitionType によるタイプキー付きの方向性ナビゲーションと Next.js App Router との連携も扱います。

ViewTransition の境界をどこに置くべきか、default="none" が必要になるのはいつか、どのブラウザがサポートしているか(Chromium 125+、Firefox 144+、Safari 18.2+)、それ以外の環境でのグレースフルデグラデーションについて説明し、実装順序、CSS レシピ、パターン、トラブルシューティングのための参照ファイルを示します。

生成されるもの

  • 複数ページのアプリのために、タイプキー付きの enter・exit マップを保持する再利用可能な方向性ラッパーコンポーネントです。
  • アンマウントされるビューとマウントされるビューで同じ名前を再利用することで作成される共有要素モーフです。例えば、サムネイルがヒーロー画像になる場合などです。
  • ビュートランジションの疑似要素に紐づけられたCSSルールで、両方のスナップショットを保持する画像ペアを含みます。
  • サポートされていないブラウザではナビゲーションを壊さずにアニメーションをスキップする、段階的に劣化する実装です。
プロンプト例を見る ↗

仕組み

  1. 01
    アニメーションが何を表しているかを見極める

    表現している空間的な関係や連続性を言葉で説明できる場合にのみ、境界を追加してください。それが何を伝えているか説明できない場合は、追加しないでください。

  2. 02
    状態を境界でラップする

    Reactは内部で一意のview-transition-nameを割り当て、document.startViewTransitionを呼び出すため、startViewTransitionを自分で呼び出すことはありません。

  3. 03
    トランジションでトリガーする

    エンター、エグジット、アップデート、シェアは、startTransition、useDeferredValue、Suspenseからのみ発火します。通常のsetStateでは何もアニメーションしません。

  4. 04
    CSSでスナップショットをスタイリングする

    アウトゴーイングとインカミングのスナップショットは、独自のクラス名を持つビュートランジション疑似要素を通じてターゲットされ、レシピファイルがすぐに使えるアニメーションを提供します。

  5. 05
    トランジションタイプでタグ付けする

    addTransitionTypeはコンテキストタイプをスタックし、ツリー内の異なる境界がそれぞれ異なる反応をするようにします。タイプごとのオブジェクトは、これらのタイプをエンター、エグジット、シェア時のCSSクラスにマッピングします。

02 適合性を確認

vercel-react-view-transitions スキルを使用するタイミング

この種類のモーションと動画の作業には、Claude Code または Codex で vercel-react-view-transitions スキルを使用してください。適合性と制限は、スキル自身のファイルから取得されています。

適している場合

  • JavaScriptのアニメーションループではなく、ブラウザのネイティブなdocument.startViewTransitionを使用してUI状態間をアニメーションさせます。
  • リストの再並べ替えアニメーションと、順序付けられたビュー間の前方または後方への方向性のあるナビゲーションです。
  • サードパーティのアニメーションライブラリを導入せずに、Reactで状態のトランジションを実現したいチーム向けです。
  • Suspenseのフォールバックと、シンプルなエンターおよびエグジットの文字列プロップによって駆動される、データ到着時のコンテンツの表示です。

境界を知る

  • Chromium 125+、Firefox 144+、Safari 18.2+以外のブラウザは単にアニメーションをスキップするため、そこではトランジションは見えません。
  • ページナビゲーション中のアイテムごとの段階的なアニメーションは、現時点ではNext.jsで利用できません。
  • 1つのユニットとしてマウントまたはアンマウントされる親の内部にあるネストされた境界は、独自のエンターまたはエグジットアニメーションを実行しません。
  • 前方および後方のナビゲーションは、タイプで紐づけられた方向性のあるスライドを再生できません。これらのトランジションはタイプを持たないためです。

提供すべきもの

  • 監査対象となる既存のアプリこのスキルは実行中のアプリに適用されるものであり、実装リファレンスはコードの変更からではなく、監査から始めて段階的に従うことを意図しています。
  • 各ナビゲーションが階層的か横断的かどうかリストから詳細への移動は空間的な深さを伝えるため、タイプで紐づけられた前方・後方のスライドを得ますが、タブ間のナビゲーションはそうではありません。
  • あなたのケースに対応するCSSレシピレシピファイルには、コピーしてアプリ独自のマークアップとクラス名に適応させるためのアニメーションが収められています。

03 スキルの内部

vercel-react-view-transitions スキルが Claude Code と Codex に与えるルール

SKILL.mdがエージェントに設定する7つの具体的な指示、デフォルト、制限 — ファイルの中で結果を変える部分です。

  1. 適用可能なパターンをすべて順番に実装する

    共有要素、Suspense リビール、リスト ID、状態変化、ルート変化の順に取り組みます。アプリにそのユースケースがない場合のみパターンをスキップしてください。

  2. 境界は DOM ノードより前に置く

    div が ViewTransition をラップすると enter と exit が抑制され、アニメーションが黙って実行されなくなります。

  3. Default="none" は意図的に使用する

    名前付きまたは共有要素、type-keyed なページ境界にこれを設定してください。設定しないと、すべてのトランジションでブラウザのクロスフェードが発火してしまいます。

  4. 各名前付き境界に一意な名前を付ける

    同じ名前の ViewTransition は一度に1つしかマウントできないため、photo-${id} のようなアイテムごとの名前を使用し、同じ名前付き境界をモーダルとページの両方でレンダリングする再利用可能なコンポーネントを確認してください。

  5. enter と exit をペアにし、方向性のある VT はページ内に保持する

    方向性のあるアニメーションは常に両側を定義し、方向性のある境界はレイアウトではなくページコンポーネントに配置してください。

  6. 共有モーフのあるページでは絶対にフェードアウトしない

    フェードアウトの exit は共有要素のモーフを壊してしまうため、その exit には代わりに方向性のあるスライドを使用してください。

  7. Reduced Motion 用の CSS を追加する

    CSS レシピにある reduced-motion のブロックは、アニメーションと一緒にグローバルスタイルシートに追加する必要があります。

04 実際に使う

Claude Code または Codex に vercel-react-view-transitions をインストールする

npx skills add コマンドを実行し、エージェントで最初のタスクを実行して、結果をチェックリストで確認します。

Claude Code、Codex、またはあなたのエージェントに vercel-react-view-transitions を追加する

プロジェクトで実行してください。インストーラーが、どのエージェントに追加するかを尋ねます。

Terminal
npx skills add https://github.com/vercel-labs/agent-skills --skill vercel-react-view-transitions

skills/react-view-transitions/SKILL.md 用の一般的な skills CLI 形式です。リポジトリによっては独自のパスがドキュメント化されている場合があります。

スキルに最初のモーション・動画タスクを与える

スキル自身の用語で記述されています。角括弧の部分はご自身の内容に置き換えてください。

Starter prompt
Add view transitions to [my Next.js App Router app]: tapping [a list item] should morph [its image] into the detail page hero instead of hard-navigating. Use directional nav-forward and nav-back slides for that hierarchical navigation, give the detail content a Suspense reveal when [the data] resolves, and keep background revalidations silent with default="none". Extract the type-keyed page transition into a reusable wrapper and add the reduced motion CSS.

出典:SKILL.md をスキル自身の用語に沿って記述。

最初の結果を確認

SKILL.md 自体が正しい結果として示しているもの:

  • コードを変更する前に、実装リファレンスにあるオーディットを実行してください。
  • 接続済みのモーフが実際に発火するか確認してください。default="none" で明示的な share プロパティがない場合、share は none に解決され、何もアニメーションしません。
  • モーフすべきすべてのリンクが、next/link の transitionTypes か addTransitionType のいずれかで transition type を追加していることを確認します。
  • タブ間のナビゲーションで方向性のあるスライドが使われていないことを確認してください。使われている場合、アプリにはない空間的な奥行きを暗示してしまいます。

OpenDesign で vercel-react-view-transitions を SKILL.md リンクからインポートします: Plugins → Add → Skill → Import from link、その後トップバーで選択してください。

05 オープンソースで追跡可能

ソース、ライセンス、検証

このページの情報の出所と、最終確認日時です。

Repository
github.com/vercel-labs/agent-skills ブランチ main
スキルファイル
skills/react-view-transitions/SKILL.md 検証時にコンテンツチェックサムを記録。コミット 063bee9
License
MIT(SKILL.md で宣言)スキルレベルまたはリポジトリレベルでライセンスファイルは見つかりませんでした。上記の値は SKILL.md が宣言しているものです。SKILL.md で宣言された MIT。リポジトリに LICENSE ファイルは見つかりませんでした。
リポジトリスター数
31,174 GitHub スナップショットは 2026-09-14 に vercel-labs/agent-skills リポジトリ全体を対象に取得されました。vercel-react-view-transitions の評価や使用数ではありません。
OpenDesign により検証済み
2026-09-14 ソースファイル、パス、ライセンステキスト、スター数を確認済み。OpenDesign 本体にはバンドルされていません(2026-08-28 確認)。このページには実行記録がありません。
スキル自身による説明
React の View Transition API(`<ViewTransition>` コンポーネント、`addTransitionType`、CSS ビュートランジション疑似要素)を使用してスムーズでネイティブライクなアニメーションを実装するためのガイドです。ページトランジションの追加、ルート変更のアニメーション、共有要素アニメーションの作成、コンポーネントの入退場アニメーション、リストの並び替えアニメーション、方向性のある(前進/後退)ナビゲーションアニメーションの実装、Next.js でのビュートランジション統合など、ユーザーがこれらの機能を求める場合に使用します。また、ユーザーがビュートランジション、`startViewTransition`、`ViewTransition`、トランジションタイプについて言及した場合や、サードパーティのアニメーションライブラリを使わずに React で UI 状態間のアニメーションを実装したい場合にも使用します。

SKILL.md のフロントマターの説明です。ファイル全体は約 14,341 文字です。GitHub で完全なファイルを読む

Vercel React View Transitions

実際の Motion & Video タスクで vercel-react-view-transitions を実行します。

OpenDesign をダウンロードし、SKILL.md リンクから vercel-react-view-transitions をインポートし、上記のプロンプトを貼り付けて、結果の前に計画を確認してください。

ターミナル
npx skills add https://github.com/vercel-labs/agent-skills --skill vercel-react-view-transitions

OpenDesign デスクトップ版

ひとつのデザインシステムで、すべての制作物をブランドらしく

完全な Vibe Design Workspace で、同じブランドルールを Web サイト、スライド、操作できるプロトタイプ、ダッシュボード、画像、HTML 動画に展開できます。ローカルの Codex、Claude Code、Cursor などを接続して無料で制作しましょう。

  • Web、スライド、プロトタイプ、ダッシュボード、画像、動画
  • 140+ のデザインシステムと完全なテンプレート/スキルライブラリ
  • ローカル Codex と 21+ のコーディングエージェントを接続 · 無料
無料ダウンロード

macOS と Windows に対応