技能 vercel-react-view-transitions
📦

vercel-react-view-transitions

安全

為 React 應用程式新增原生檢視轉場效果

為 React 應用程式新增流暢的頁面轉場和共享元素動畫,需要理解 View Transitions API 及其整合模式。此技能提供逐步指導、CSS 配方,以及來自 Vercel Labs 的 Next.js 模式。

支援: Claude Codex Code(CC)
🥈 79 白銀
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「vercel-react-view-transitions」。 為我的產品清單新增轉場

預期結果:

使用唯一金鑰將產品項目包裝在 <ViewTransition> 中,為 ::view-transition-old/new 擬似元素新增 CSS,並在狀態變更時使用 startTransition 觸發動畫。

正在使用「vercel-react-view-transitions」。 為什麼瀏覽器後退按鈕沒有動畫?

預期結果:

瀏覽器後退/前進按鈕使用同步的 popstate 事件,這與 startViewTransition 不相容。請改用帶有明確 URL 的 router.push() 以維持動畫支援。

正在使用「vercel-react-view-transitions」。 如何讓清單重新排序有動畫?

預期結果:

使用項目的 ID 為每個項目指派唯一的 view-transition-name 值。當項目重新排序時,瀏覽器會自動捕捉位置變更並平滑地製作動畫。

安全審計

安全
v1 • 4/19/2026

All static findings are false positives. The skill is legitimate documentation from Vercel Labs for implementing React View Transitions. No malicious code patterns exist. All 781 flagged instances are benign keyword matches in markdown documentation (backticks for code formatting, words like 'keystroke' in UI context, TypeScript type names, and standard documentation URLs).

8
已掃描檔案
2,199
分析行數
0
發現項
1
審計總數
未發現安全問題
審計者: claude

品質評分

59
架構
100
可維護性
87
內容
50
社群
100
安全
91
規範符合性

你能建構什麼

為 Next.js 應用程式新增頁面轉場

在使用 App Router 和實驗性 viewTransition 旗標的 Next.js 應用程式中,當使用者在路由之間導航時,實作流暢的滑入轉場效果。

建立共享元素動畫

讓產品圖片從網格卡片平滑地變形到詳細頁面檢視,創造出像原生行動應用程式般的高級感。

為資料載入狀態製作動畫

將突兀的內容閃爍替換為流暢的 Suspense 顯示效果,優雅地為資料擷取後出現的內容製作動畫。

試試這些提示

新增頁面轉場
為我的 Next.js 應用程式新增檢視轉場,讓頁面在導航時滑入
實作共享元素
我有一個產品網格。當點擊產品時,圖片應該從網格動畫到詳細頁面的主圖區
修復動畫衝突
當 Suspense 解析時,我的檢視轉場會中斷。如何防止巢狀動畫干擾頁面轉場?
方向性導航
實作前進和後退導航動畫,讓它們向相反方向滑入,讓使用者在應用程式中感受到空間深度

最佳實務

  • 從稽核步驟開始 - 在撰寫程式碼之前先識別所有需要轉場的地方
  • 從技能中複製 CSS 配方,而不是從頭開始撰寫自訂動畫
  • 務必以 reduced-motion 偏好設定和舊版瀏覽器的優雅降級進行測試

避免

  • 不要直接呼叫 document.startViewTransition() - 讓 ViewTransition 元件處理它
  • 避免為側向導航(分頁)使用方向性滑動 - 這會錯誤地暗示空間深度
  • 不要將 ViewTransition 包裝在 div 內 - 元件必須是外部包裝器才能啟用進入/退出

常見問題

我需要哪個 React 版本?
需要 React canary 版本。Next.js App Router 自動包含它。對於其他框架,請安裝 react@canary 和 react-dom@canary。
這與 App Router 相容嗎?
可以。在 next.config.js 中啟用 experimental.viewTransition,在 next/link 上使用 transitionTypes 屬性,並遵循 references/nextjs.md 中的模式。
為什麼我的動畫無法運作?
檢查 ViewTransition 是否將元件包裝為外部元素,使用 startTransition/useDeferredValue/Suspense 作為觸發器,並設定 default="none",除非您希望每次變更都有交叉淡入淡出效果。
如何處理瀏覽器支援?
不支援的瀏覽器會優雅地略過動畫。務必從 css-recipes 參考檔案中新增 reduced-motion 媒體查詢 CSS。
我可以讓瀏覽器後退按鈕有動畫嗎?
不行。瀏覽器後退/前進按鈕使用同步的 popstate,這與 startViewTransition 不相容。請改用帶有明確 URL 的 router.push()。
如何防止背景更新期間的動畫?
在 ViewTransition 元件上設定 default="none"。這會停用動畫,除非使用 enter/exit/share 屬性明確啟用。