사용 가이드로 건너뛰기
vercel-react-view-transitions작성자 Vercel Labs

Vercel React View Transitions 스킬.

모션 및 비디오를 위한 Claude Code 및 Codex 스킬입니다: React의 View Transition API를 사용한 네이티브 느낌의 페이지 전환.

  • Motion & Video
  • 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.md에서 그대로 읽어 정리한 내용입니다.

SKILL.md에서2026-09-14 읽음 · 실행 기록 아님

스킬 자체의 표현으로

React의 View Transition API로 UI 상태 간 애니메이션을 구현하는 가이드입니다: ViewTransition 컴포넌트로 무엇을 전환할지 선언하고, startTransition, useDeferredValue 또는 Suspense로 언제 전환을 트리거할지 결정하며, CSS 클래스로 어떻게 전환할지 제어합니다. 고정된 우선순위 순서로 다섯 가지 패턴을 다루며, 공유 요소 모프, 목록 아이덴티티, 상태 변경과 라우트 변경, 그리고 addTransitionType과 Next.js App Router 연동을 통한 타입 기반 방향성 내비게이션을 포함합니다.

ViewTransition 경계가 어디에 위치해야 하는지, default="none"이 언제 필요한지, 어떤 브라우저가 이를 지원하는지(Chromium 125+, Firefox 144+, Safari 18.2+) 그리고 그 외 브라우저에서의 우아한 성능 저하 방식을 설명하며, 구현 순서, CSS 레시피, 패턴, 문제 해결을 위한 참고 파일을 안내합니다.

산출물

  • 멀티 페이지 앱을 위해 타입 기반 진입 및 종료 맵을 담은 재사용 가능한 방향성 래퍼 컴포넌트.
  • 마운트 해제되는 뷰와 마운트되는 뷰에 동일한 이름을 재사용하여 만들어지는 공유 요소 모프(shared element morph)로, 예를 들어 썸네일이 히어로 이미지로 변하는 경우입니다.
  • 두 스냅샷을 모두 담는 이미지 페어를 포함하여, 뷰 트랜지션 가상 요소(pseudo-element)에 연결된 CSS 규칙입니다.
  • 지원하지 않는 브라우저에서는 내비게이션이 깨지는 대신 애니메이션을 건너뛰도록 우아하게 저하되는 구현 방식입니다.
예시 프롬프트 보기 ↗

작동 방식

  1. 01
    애니메이션이 무엇을 표현하는지 파악하기

    경계(boundary)가 표현하는 공간적 관계나 연속성을 명확히 설명할 수 있을 때만 경계를 추가하십시오. 무엇을 전달하는지 말할 수 없다면 추가하지 마십시오.

  2. 02
    상태를 경계(boundary)로 감싸기

    React는 내부적으로 고유한 view-transition-name을 할당하고 document.startViewTransition을 호출하므로, 직접 startViewTransition을 호출할 필요가 없습니다.

  3. 03
    트랜지션으로 트리거하기

    진입, 종료, 업데이트, 공유 애니메이션은 startTransition, useDeferredValue 또는 Suspense에서만 발생합니다. 일반적인 setState로는 아무것도 애니메이션되지 않습니다.

  4. 04
    CSS로 스냅샷 스타일링하기

    나가는 스냅샷과 들어오는 스냅샷은 사용자 지정 클래스 이름을 가진 뷰 트랜지션 가상 요소를 통해 타겟팅되며, 레시피 파일이 바로 사용할 수 있는 애니메이션을 제공합니다.

  5. 05
    트랜지션 타입으로 태그하기

    addTransitionType은 컨텍스트 타입을 스택으로 쌓아 트리 내 서로 다른 경계(boundary)가 각기 다르게 반응하도록 하며, 타입별 객체는 진입, 종료, 공유 시 이러한 타입을 CSS 클래스에 매핑합니다.

02 적합성 확인

vercel-react-view-transitions Skill 사용 시점

Claude Code 또는 Codex에서 이러한 종류의 모션 및 비디오 작업이 필요할 때 vercel-react-view-transitions skill을 사용합니다. 적합성과 제한사항은 skill 자체 파일에서 가져왔습니다.

적합한 경우

  • 자바스크립트 애니메이션 루프가 아니라 브라우저의 네이티브 document.startViewTransition을 통해 UI 상태 간 애니메이션을 수행합니다.
  • 목록 재정렬 애니메이션과 정렬된 뷰 간의 방향성 있는 전진 또는 후진 내비게이션입니다.
  • 서드파티 애니메이션 라이브러리를 도입하지 않고 React에서 상태 전환을 구현하고자 하는 팀입니다.
  • Suspense 폴백과 간단한 enter, exit 문자열 프로퍼티로 구동되어, 데이터가 도착함에 따라 콘텐츠를 드러냅니다.

한계 인지하기

  • Chromium 125+, Firefox 144+, Safari 18.2+ 이외의 브라우저는 애니메이션을 그냥 건너뛰므로, 해당 환경에서는 트랜지션이 보이지 않습니다.
  • 페이지 내비게이션 중 항목별 순차(stagger) 애니메이션은 현재 Next.js에서 지원되지 않습니다.
  • 하나의 단위로 마운트되거나 마운트 해제되는 부모 안에 중첩된 경계(boundary)는 자체적인 진입 또는 종료 애니메이션을 실행하지 않습니다.
  • 전진/후진 내비게이션은 타입에 연결된 방향성 슬라이드를 재생할 수 없습니다. 해당 트랜지션에는 타입이 전달되지 않기 때문입니다.

제공할 사항

  • 점검할 기존 앱이 스킬은 실행 중인 앱에 적용되며, 구현 참조 자료는 코드 변경이 아니라 점검(audit)부터 시작하여 단계별로 따라가도록 만들어졌습니다.
  • 각 내비게이션이 계층적인지 수평적인지목록에서 상세 화면으로 이동하는 경우 공간적 깊이를 전달하기 때문에 타입에 연결된 전진/후진 슬라이드가 적용되지만, 탭 간 이동에는 적용되지 않습니다.
  • 해당 사례에 맞는 CSS 레시피레시피 파일에는 복사한 뒤 앱 고유의 마크업과 클래스 이름에 맞게 조정할 애니메이션이 담겨 있습니다.

03 스킬 내부

vercel-react-view-transitions Skill이 Claude Code와 Codex에 부여하는 규칙

SKILL.md가 에이전트를 위해 설정하는 7가지 구체적 지침, 기본값, 한도 — 결과를 바꾸는 파일의 부분

  1. 적용 가능한 모든 패턴을 순서대로 구현하십시오

    공유 요소, Suspense 노출, 리스트 아이덴티티, 상태 변경, 라우트 변경 순으로 작업하십시오. 앱에 해당 사용 사례가 없는 패턴만 건너뛰십시오.

  2. 경계(Boundary)를 DOM 노드 앞에 배치하십시오

    div가 ViewTransition을 감싸면 enter와 exit가 억제되어 애니메이션이 조용히 전혀 실행되지 않습니다.

  3. default="none"을 의도적으로 사용하십시오

    명명된(named) 또는 공유(shared) 요소와 타입 기반 페이지 경계에 이를 설정하십시오. 그렇지 않으면 전환마다 브라우저의 크로스페이드가 발생합니다.

  4. 각 명명된 경계에 고유한 이름을 부여하십시오

    한 번에 이름당 하나의 ViewTransition만 마운트될 수 있으므로 photo-${id}와 같이 항목별 이름을 사용하고, 모달과 페이지 양쪽에서 명명된 경계를 렌더링하는 재사용 컴포넌트를 확인하십시오.

  5. Enter와 Exit를 짝을 맞추고, 방향성 있는 VT는 페이지에 유지하십시오

    방향성 애니메이션은 항상 양쪽을 모두 정의하고, 방향성 경계는 레이아웃이 아닌 페이지 컴포넌트에 배치하십시오.

  6. 공유 모프가 있는 페이지에서는 절대 페이드 아웃하지 마십시오

    페이드 아웃 exit는 공유 요소 모프를 깨뜨리므로, 해당 exit에는 방향성 슬라이드를 대신 사용하십시오.

  7. 모션 감소(Reduced Motion) CSS를 추가하십시오

    CSS 레시피의 모션 감소 블록은 애니메이션과 함께 전역 스타일시트에 포함되어야 합니다.

04 활용하기

Claude Code 또는 Codex에 vercel-react-view-transitions 설치

npx skills add 명령 한 번 실행 후, 에이전트에서 첫 번째 작업을 수행하고 결과 체크리스트를 확인합니다.

Claude Code, Codex 또는 귀하의 Agent에 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 자체가 올바른 결과의 모습으로 제시하는 내용:

  • 코드를 변경하기 전에 구현 참조서에 있는 감사(audit)를 실행하십시오.
  • 연결된 모프가 실제로 실행되는지 확인하십시오: default="none"이고 명시적 share prop이 없으면 share는 none으로 처리되어 아무 것도 애니메이션되지 않습니다.
  • 모프되어야 하는 모든 링크가 next/link의 transitionTypes 또는 addTransitionType을 통해 전환 유형을 추가하는지 확인합니다.
  • 탭 간 내비게이션에 방향성 슬라이드가 사용되지 않도록 하십시오. 이는 앱에 없는 공간적 깊이를 암시합니다.

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 vercel-labs/agent-skills 리포지토리 전체에 대해 2026-09-14에 촬영한 GitHub 스냅샷입니다. vercel-react-view-transitions에 대한 평점이나 사용 횟수가 아닙니다.
OpenDesign에서 검증됨
2026-09-14 소스 파일, 경로, 라이선스 텍스트 및 스타 수가 확인되었습니다. OpenDesign 메인에 번들로 포함되지 않음(2026-08-28 확인); 이 페이지에 실제 실행 기록이 없습니다.
스킬 자체 설명
"React의 View Transition API(`<ViewTransition>` 컴포넌트, `addTransitionType`, CSS view transition 가상 요소)를 사용하여 부드럽고 자연스러운 애니메이션을 구현하는 가이드입니다. 사용자가 페이지 전환 추가, 라우트 변경 애니메이션, 공유 요소 애니메이션 생성, 컴포넌트 진입/종료 애니메이션, 리스트 재정렬 애니메이션, 방향성(앞으로/뒤로) 내비게이션 애니메이션 구현, 또는 Next.js에서 view transitions 통합을 원할 때마다 이 스킬을 사용하십시오. 또한 사용자가 view transitions, `startViewTransition`, `ViewTransition`, transition types를 언급하거나 타사 애니메이션 라이브러리 없이 React에서 UI 상태 간 애니메이션에 대해 질문할 때도 사용합니다."

SKILL.md의 front-matter 설명입니다. 전체 파일은 약 14,341자입니다. GitHub에서 전체 파일 읽기.

Vercel React View Transitions

실제 모션 및 비디오 작업에서 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에서 하나의 브랜드 규칙을 웹사이트, 슬라이드, 인터랙티브 프로토타입, 대시보드, 이미지, HTML 영상에 적용하세요. 로컬 Codex, Claude Code, Cursor 등을 연결해 무료로 제작할 수 있습니다.

  • 웹, 슬라이드, 프로토타입, 대시보드, 이미지, 영상
  • 140개+ 디자인 시스템과 전체 템플릿·스킬 라이브러리
  • 로컬 Codex 및 21개+ 코딩 에이전트 연결 · 무료
무료 다운로드

macOS, Windows 지원