사용 가이드로 건너뛰기
animate-expo작성자 Emil Kowalski

Animate Expo 스킬.

Claude Code 및 Codex용 모바일 앱 디자인 스킬: React Native 및 Expo를 위한 제스처, 스프링 및 트랜지션.

  • 모바일 앱
  • UI 코드
emilkowalski/skills · skills/animate-expo/SKILL.mdSKILL.md
--- name: animate-expo description: Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen … --- ## Operating Posture ## Hard Rules ## The Build Sequence ## Setup that silently breaks motion ## 120fps ## Recipes
2026-09-14에 업스트림 파일에서 읽은 앞부분 및 섹션 제목 · 전체 17,458자

01 기능

Claude Code와 Codex에서 animate-expo 스킬이 하는 일

요약, 워크플로, 산출물을 모두 해당 스킬의 SKILL.md에서 그대로 읽어 정리한 내용입니다.

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

스킬 자체의 표현으로

React Native와 Expo에서의 모션을 위한 구축용 스킬입니다. 애니메이션 요청을 실제 기기에서 리뷰를 통과할 수 있는 구현으로 전환하며, 느낌이 맞는지를 결정하는 순서대로 판단을 내립니다: 애니메이션을 적용해야 하는지, 어떤 스레드에서 실행되는지, 어떤 속성인지, 스프링인지 타이밍인지, 제스처가 어떻게 전달되는지, 어떻게 저하되는지.

모든 것은 모바일의 세 가지 사실에서 출발합니다: hover가 없다는 점, 두 개의 런타임이 존재한다는 점, 사용자의 손가락이 요소 위에 있다는 점입니다. Expo 앱을 애니메이션화하거나, 제스처, 시트, 화면 전환, 누름 피드백, 햅틱을 추가하거나, 기기에서 끊기는 모션을 수정하는 모든 사람을 위한 것입니다. 코드는 Reanimated, Gesture Handler, Expo Router, expo-haptics로 작성됩니다.

산출물

  • 선택지로 제시되지 않고 직접 작성된 구현 코드 자체입니다.
  • 빈도 등급과 지정된 목적을 명시하는 짧은 게이트 결과로, 무엇이 거부되었는지와 그 이유를 포함합니다.
  • 재료 목록: 도구, 속성, 스프링 또는 커브와 지속 시간, 그리고 작업이 실행되는 런타임.
  • 제스처 핸드오프와 햅틱 타이밍은 코드만으로 확인할 수 없으므로, 실제 기기에서 감각적으로 확인해야 할 항목 목록입니다.
예시 프롬프트 보기 ↗

작동 방식

  1. 01
    애니메이션을 다른 무엇보다 먼저 게이트하기

    빈도 표는 애니메이션이 발생할지 여부 자체를 결정하며, 최상위 등급은 멈추고 코드를 작성하지 않습니다. 탭은 계층이 아니라 동등한 대상이므로 탭 전환은 절대 슬라이드하지 않습니다.

  2. 02
    목적을 한 단어로 명시합니다

    이 스킬은 진행하기 전에 단어 하나로 된 의도를 강제합니다 — 피드백, 공간적 일관성, 상태 표시, 급격한 변화 방지, 설명, 또는 즐거움(마지막은 드문 첫 경험 순간에만 해당).

  3. 03
    작동하는 가장 저비용 도구 선택하기

    표를 따라 내려가며 맞는 첫 번째 행에서 멈춥니다: CSS transition, CSS keyframes, 레이아웃 애니메이션, shared value와 Gesture, 그다음 네이티브 스택, formSheet, NativeTabs, Link.Menu, RefreshControl, Lottie 또는 Skia.

  4. 04
    애니메이션 대상 속성 제한하기

    transform과 opacity는 비용이 들지 않지만, 그 외의 모든 속성은 레이아웃 패스를 강제해 해당 노드와 형제 노드에 대해 매 프레임 Yoga를 다시 실행하게 만듭니다.

  5. 05
    손가락 동작에 따라 스프링 또는 타이밍 선택하기

    손가락이 주도한 모든 인터랙션에는 스프링을 사용해 인터럽션 중에도 속도가 이어지도록 하며, 그 외에는 타이밍 커브를 사용하되 절대 ease-in은 사용하지 않습니다.

  6. 06
    프레임을 JS 스레드에서 분리하기

    shared value는 React state 대신 useAnimatedStyle에 전달되며, RN 런타임 호출은 제스처 업데이트 안에서 실행되는 대신 onEnd나 임계값 반응으로 미뤄집니다.

02 적합성 확인

animate-expo 스킬을 사용해야 하는 경우

작업이 이러한 종류의 모바일 앱 디자인일 때 Claude Code 또는 Codex에서 animate-expo 스킬을 사용합니다. 아래의 적합성 및 제한 사항은 스킬 자체 파일에서 가져온 것입니다.

적합한 경우

  • Expo 앱에서 제스처, 시트, 화면 전환, 프레스 피드백, 햅틱을 포함해 무엇이든 애니메이션할 때.
  • 손가락이 관여하는 모션으로, 인터럽션 가능성과 속도 핸드오프가 마감 처리가 아니라 기본 요건으로 다뤄져야 하는 경우.
  • 지정된 레시피 중 하나에 해당하는 요청으로, 빈 파일이 아니라 레시피에서 시작해야 하는 경우.
  • 호버가 없는 플랫폼을 위해 웹 어포던스를 재설계하는 경우로, 호버 상태는 프레스, 위치, 또는 아무것도 없는 상태로 바뀌어야 합니다.

한계 인지하기

  • 웹 애니메이션은 다른 스킬에 속합니다.
  • Expo Go에서 모션을 테스트하는 것은 성능 환경이 아니므로 찾고 있는 문제를 숨깁니다.
  • 빈도 게이트를 통과하지 못한 요청 — 스킬이 이유를 명시하고 애니메이션 작성을 거부합니다.
  • Reanimated 4는 New Architecture를 요구하므로 여전히 이전 아키텍처를 사용하는 프로젝트.

제공할 사항

  • 인터랙션과 발생 빈도빈도 등급이 무엇이든 만들어질지 여부를 결정합니다; 탭 전환, 키보드 열기/닫기, 스크롤, 설정 토글은 최상위 등급에 속합니다.
  • 한 단어로 지정된 목적단일하게 명명 가능한 목적이 없으면 빌드하지 않습니다.
  • Expo를 통해 설치되는, 프로젝트에 필요한 패키지설치는 Expo CLI를 통해 이루어지므로 버전이 프로젝트의 SDK에 맞춰 해결됩니다. 이는 일반 npm install로는 할 수 없는 방식입니다.

03 스킬 내부

animate-expo 스킬이 Claude Code와 Codex에 제공하는 규칙

SKILL.md가 에이전트에게 설정하는 8가지 구체적인 지시, 기본값, 제한 — 결과를 바꾸는 파일의 부분입니다.

  1. 순서대로 시퀀스 실행하기

    1단계와 2단계는 이후 모든 과정을 결정하므로, 어떤 도구나 속성을 선택하기 전에 빈도와 명명된 목적을 먼저 정해야 합니다.

  2. Core Animated가 아닌 Reanimated

    Core Animated는 브리지를 거치지 않고는 제스처로 구동할 수 없으며, useNativeDriver는 transform과 opacity 외에는 아무것도 허용하지 않습니다.

  3. 근사값 사용 금지

    커브와 스프링 설정은 파일 내 표에서 가져와야 하며, 임의로 만들어서는 안 됩니다.

  4. 애니메이션과 함께 제공되는 모션 감소 처리

    접근성 처리는 별도 후속 작업이 아니라 동일한 변경의 일부입니다.

  5. 릴리스 빌드에서만 느낌을 판단하기

    검증은 지원하는 기기 중 가장 느린 기기에서, 릴리스 빌드로 진행합니다. 시뮬레이터와 개발 빌드는 인정되지 않습니다.

  6. Apple의 두 가지 스프링 파라미터 사용하기

    스프링은 mass, stiffness, damping이 아니라 duration과 dampingRatio, velocity로 작성합니다. 기본 안착값은 { duration: 400, dampingRatio: 1 }이며, 확고한 경계를 유지해야 할 때는 overshootClamping: true를 사용합니다.

  7. 터치 타겟 존중하기

    iOS에서는 최소 44x44pt, Android에서는 48dp를 시각적 요소를 키우는 대신 hitSlop으로 확보하고, 드리프트로 인해 탭이 취소되지 않도록 pressRetentionOffset을 함께 사용합니다.

  8. 사용자 동작당 한 번의 햅틱

    햅틱은 시각적 요소와 동일한 프레임에서, 인과 관계가 발생하는 순간에 작동해야 하며, 스크롤 중이나 프레임마다 작동해서는 안 되고, 유일한 피드백으로 사용해서도 안 됩니다.

04 활용하기

Claude Code 또는 Codex에 animate-expo 설치

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

Claude Code, Codex 또는 귀하의 에이전트에 animate-expo 추가

프로젝트에서 실행합니다. 설치 프로그램이 어떤 에이전트에 추가할지 묻습니다.

Terminal
npx skills add https://github.com/emilkowalski/skills --skill animate-expo

skills/animate-expo/SKILL.md에 대한 일반적인 skills CLI 형식이며, 저장소가 자체 경로를 문서화할 수 있습니다.

스킬에 첫 모바일 앱 디자인 작업 부여

스킬 자체의 용어로 작성되었습니다. 대괄호 부분은 각자의 자료로 교체합니다.

Starter prompt
In my Expo app the [filter sheet] is a bottom sheet people open a few times a session, and dragging it down should dismiss it, snapping back if the drag was short. Add press feedback to the [row component] in the list and a selection haptic when the sheet detent catches. Keep all of it on the UI thread — nothing should stutter on a three-year-old Android — and ship reduced-motion handling in the same change.

출처: 스킬 자체의 용어로 SKILL.md에서 작성했습니다.

첫 번째 결과 확인

SKILL.md 자체가 올바른 결과의 모습으로 제시하는 내용:

  • 실제 기기에서 직접 상호작용을 시험해 보십시오: 튕겨보고, 진행 중에 중단시키고, 되돌려보십시오.
  • ProMotion iPhone에서 CADisableMinimumFrameDurationOnPhone이 설정되어 있는지 확인하십시오. 최근 Expo SDK는 기본적으로 이를 설정합니다.
  • 모션 감소 설정이 완전히 없어지는 것이 아니라 더 적고 더 부드러운 형태로 저하되며, opacity와 색상 설명은 유지되는지 확인하십시오.
  • 아무것도 실행되지 않을 때는 조용히 실패하는 원인부터 확인하십시오: worklets Babel 플러그인과 앱을 감싸는 GestureHandlerRootView입니다.

OpenDesign에서 SKILL.md 링크를 통해 animate-expo를 가져옵니다: Plugins → Add → Skill → Import from link, 그런 다음 상단 바에서 선택합니다.

05 오픈 소스, 추적 가능

출처, 라이선스 및 검증

이 페이지의 사실이 어디에서 왔으며 언제 마지막으로 확인되었는지 안내합니다.

Repository
github.com/emilkowalski/skills 브랜치 main
스킬 파일
skills/animate-expo/SKILL.md 검증 시 콘텐츠 체크섬 기록됨; 커밋 d23d7f8
License
MIT LICENSE에서 확인.
리포지토리 스타
37,516 GitHub 스냅샷은 2026-09-14에 emilkowalski/skills 리포지토리 전체를 대상으로 촬영되었으며, 이 카탈로그에는 9개의 스킬이 포함되어 있습니다. animate-expo의 평가 점수나 사용 횟수가 아닙니다.
OpenDesign에서 검증됨
2026-09-14 소스 파일, 경로, 라이선스 텍스트 및 스타 수가 확인되었습니다. OpenDesign 메인에 번들로 포함되지 않음(2026-08-28 확인); 이 페이지에 실제 실행 기록이 없습니다.

SKILL.md 내부

  1. 운영 태도시니어 엔지니어처럼 행동하십시오: 결정하고, 이유를 한 줄로 명시하고, 코드를 작성하십시오.
  2. 필수 규칙절대 타협할 수 없는 다섯 가지 원칙: 시퀀스 순서, Reanimated, 표로 정리된 값, reduced motion, 릴리스 빌드 판단.
  3. 빌드 시퀀스주파수 게이트부터 속성, 스프링, 스레드, 햅틱까지 9단계로 이어지는 순서.
  4. 모션을 조용히 망가뜨리는 설정애니메이션이 전혀 실행되지 않는 원인이 되는 설치, Babel 플러그인, 루트 뷰, 아키텍처 문제.
  5. 120fpsCADisableMinimumFrameDurationOnPhone을 활성화하여 ProMotion iPhone에 8ms 프레임 예산을 제공합니다.
  6. 레시피누름 피드백, 시트, 스와이프, 헤더, 키보드 UI, 탭에 대해서는 RECIPES.md를 참조합니다.
  7. 절대 사용 금지금지된 패턴과 대신 사용해야 할 대안을 짝지은 2열 표.
  8. 출력코드와 함께 게이트 판정 결과, 구성 요소, 체감 확인해야 할 항목을 몇 줄로 정리합니다.
  9. 어조단정적이고 간결하게; 애니메이션을 전혀 넣지 말아야 할 때는 그렇게 말합니다.
스킬 자체 설명
"React Native 및 Expo에서 애니메이션을 구축하며, 올바른 느낌을 결정하는 순서대로 결정을 내립니다 — 애니메이션을 적용해야 하는지, 어떤 스레드에서 실행되는지, 어떤 속성인지, 스프링인지 타이밍인지, 제스처가 어떻게 전달되는지, 어떻게 저하되는지. Reanimated, Gesture Handler, Expo Router 및 expo-haptics를 사용하여 구현을 작성합니다. Expo 앱에서 무언가를 애니메이션화하거나, 제스처, 시트, 화면 전환, 누르기 피드백 또는 햅틱을 추가하거나, 기기에서 끊기는 모션을 수정할 때 사용합니다. 웹 애니메이션의 경우 `animate`를 사용합니다."

SKILL.md의 프론트매터 설명입니다. 전체 파일은 약 17,458자입니다. GitHub에서 전체 파일 읽기.

06 설치하기 전에

animate-expo 스킬에 대한 질문

이 답변은 2026-09-14 기준으로 확인한 SKILL.md 내용을 근거로 하며, 실행 기록을 바탕으로 한 것이 아닙니다.

코어 Animated API 대신 Reanimated를 쓰는 이유는 무엇입니까?

코어 Animated는 브리지를 거치지 않고는 제스처로 구동할 수 없으며, useNativeDriver는 transform과 opacity 외에는 아무것도 허용하지 않습니다. Reanimated 워크릿은 UI 스레드에서 실행되며 JS가 바쁜 동안에도 계속 동작합니다.

해당 인터랙션이 하루에 수십 번씩 발생하면 어떻게 됩니까?

게이트는 최상위 빈도 등급에 대해서는 애니메이션을 전혀 반환하지 않습니다 — 플랫폼 기본값을 사용하거나 아무것도 넣지 말고 멈추십시오. 애니메이션은 시트, 모달, 토스트, 성공 상태처럼 드물고 가끔 일어나는 순간을 위해 남겨둡니다.

Animate Expo

실제 모바일 앱 디자인 작업에서 animate-expo를 실행합니다.

OpenDesign을 다운로드하고 SKILL.md 링크에서 animate-expo를 가져와 위의 프롬프트를 붙여넣고 결과 전에 계획을 읽으십시오.

터미널
npx skills add https://github.com/emilkowalski/skills --skill animate-expo

OpenDesign 데스크톱

하나의 디자인 시스템으로 모든 결과물에 브랜드 일관성을

완전한 Vibe Design Workspace에서 하나의 브랜드 규칙을 웹사이트, 슬라이드, 인터랙티브 프로토타입, 대시보드, 이미지, HTML 영상에 적용하세요. 로컬 Codex, Claude Code, Cursor 등을 연결해 무료로 제작할 수 있습니다.

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

macOS, Windows 지원