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

Apple Design 스킬.

Claude Code 및 Codex용 UX 리서치 스킬: 웹으로 변환된 Apple의 제스처, 물리적 모션 및 공간 계층 구조.

  • UX 및 리서치
  • UI 코드
emilkowalski/skills · skills/apple-design/SKILL.mdSKILL.md
--- name: apple-design description: Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style … --- ## The Core Idea ## 1. Response — kill latency ## 2. Direct manipulation — 1:1 tracking ## 3. Interruptibility — the single most important principle ## 4. Behavior over animation — use springs ## 5. Velocity handoff — the seam between drag and animation
2026-09-14에 업스트림 파일에서 읽은 앞부분 및 섹션 제목 · 전체 22,559자

01 기능

Claude Code와 Codex에서 apple-design Skill이 하는 일

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

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

스킬 자체의 표현으로

Apple Design은 Apple의 WWDC 인터페이스 강연, 특히 Designing Fluid Interfaces(WWDC 2018)를 유동적이고 물리적인 웹 UI를 만들기 위한 규칙으로 정제한 것입니다. 드래그, 스와이프, 시트, 스프링, 모멘텀, 중단 가능한 전환, 반투명 재질과 깊이감, 타이포그래피(광학적 크기, 자간, 행간), 모션 감소 동작 등 제스처 기반 인터페이스를 다루는 디자이너와 개발자를 대상으로 합니다.

핵심 원리는 모션이 현재 화면상의 값에서 시작해야 하고, 사용자의 속도를 이어받아 모멘텀을 앞으로 투영해야 하며, 언제든 붙잡고 되돌릴 수 있어야 한다는 것입니다. 스프링은 본질적으로 중단 가능하고 속도를 인식하기 때문에 고정된 지속 시간의 애니메이션을 대체하며, 이 skill은 공통 어휘로 사용되는 Apple의 8가지 디자인 원칙으로 마무리됩니다.

산출물

  • :active 상태에서 100ms ease-out 전환으로 컨트롤을 확대하는 프레스 피드백 CSS.
  • 임계 감쇠 기본값과 모멘텀 바운스 변형을 나란히 보여주는 모션 스프링 호출.
  • 기본값 0.998의 decelerationRate로 모멘텀 투영을 구현하는 project() 헬퍼.
  • 반투명 툴바를 불투명 배경으로 교체하고 블러를 없애는 투명도 감소 CSS.
예시 프롬프트 보기 ↗

작동 방식

  1. 01
    포인터 다운 시 즉시 반응

    피드백은 릴리스가 아니라 프레스에 속합니다. 컨트롤이 눌리는 즉시 강조 표시하고, 약 300ms의 탭 지연을 포함해 입력 경로상에서 필수적이지 않은 모든 것을 회귀로 취급합니다.

  2. 02
    포인터를 1:1로 추적

    캡처를 사용하는 포인터 이벤트를 활용해 포인터가 요소의 경계를 벗어나도 추적이 유지되도록 하고, 요소의 중심으로 스냅시키는 대신 사용자가 붙잡은 지점을 존중해야 합니다.

  3. 03
    움직임을 중단 가능하게 만들기

    움직이는 요소는 이동 중에도 붙잡을 수 있고 되돌릴 수 있어야 하며, 사용자는 방향을 바꾸기 위해 현재 애니메이션이 끝나기를 기다릴 필요가 없어야 합니다.

  4. 04
    스프링으로 움직임을 모델링하기

    스프링은 목표값을 바꾸는 것만으로 새 입력을 받아들이므로 움직임이 계속 이어집니다. 고정 시간 스크립트에는 다시 목표로 삼을 대상이 없습니다.

  5. 05
    릴리스 속도를 그대로 전달하기

    드래그와 애니메이션 사이에 이음새가 생기지 않도록, 놓는 순간의 포인터 속도를 스프링에 그대로 전달합니다. API가 상대 속도를 요구할 경우 남은 거리로 정규화합니다.

  6. 06
    모멘텀을 계산한 뒤 스냅시키기

    손가락을 놓은 위치에서 그대로 스냅시키지 마십시오. 스크롤 감속처럼 정지 위치를 예측하고, 그 예측 지점에서 가장 가까운 스냅 대상을 선택하십시오.

02 적합성 확인

apple-design 스킬 사용 시점

이러한 종류의 UX 리서치 작업일 때 Claude Code 또는 Codex에서 apple-design 스킬을 사용합니다. 아래의 적합성과 한계는 스킬 자체 파일에서 가져온 것입니다.

적합한 경우

  • 드래그, 스와이프, 시트, 모멘텀, 중단 가능한 전환 등 제스처 기반 UI를 만들거나 검토할 때.
  • 내비게이션 바, 툴바, 시트가 떠 있는 기능 레이어로 작동하는, 반투명한 소재와 깊이감을 다루는 작업.
  • 옵티컬 사이즈, 트래킹, 리딩이 크기에 따라 달라져야 하는, 사이즈 스케일 상의 타이포그래피 작업.
  • 모션 축소, 투명도 축소, 대비 증가가 나중에 덧붙이는 게 아니라 컴포넌트에 처음부터 내재된 접근성 점검.
  • 결정을 논의할 때 애플의 디자인 원칙을 명시적인 공용 어휘로 삼고자 하는 팀.

한계 인지하기

  • 사용자가 요소를 터치할 수 있게 되는 순간부터 이 skill이 배제하는, 미리 스크립트화된 고정 시간 애니메이션.
  • 최종 제스처 상태만 알려주는 인식기. 피드백이 의존하는 연속적인 추적 정보를 버리기 때문입니다.
  • 반투명 레이어 아래로 콘텐츠가 스크롤되도록 하는 대신 고정된 영역을 차지하는 불투명한 크롬.
  • 확인 대화상자를 기본 습관처럼 사용하는 것. 이 파일은 확인 대화상자를 정말로 파괴적이고 되돌릴 수 없는 작업에만 한정합니다.

제공할 사항

  • 제스처 코드와 그 포인터 히스토리이 skill은 현재 지점 하나만이 아니라 setPointerCapture와 짧은 속도/위치 히스토리를 기대하므로, 포인터 이벤트 구현을 함께 가져오십시오.
  • 속도를 재목표에 반영하는 스프링 라이브러리웹 매핑은 Motion / Framer Motion을 통해 이루어지며, 라이브러리는 재목표 과정에서도 속도를 유지해야 합니다. 모든 스프링 구현이 그렇게 하지는 않습니다.
  • 검토를 원하는 반투명 크롬툴바, 내비게이션 바, 시트는 backdrop-filter blur와 반투명 배경을 가진 반투명 레이어로 만들어지며, 콘텐츠는 그 아래로 스크롤됩니다.

03 스킬 내부

apple-design Skill이 Claude Code와 Codex에 부여하는 규칙

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

  1. 기본값은 임계 감쇠 스프링으로

    대부분의 UI는 오버슈트 없이 안정되도록 댐핑 1.0으로 시작하고, 플릭이나 드래그 릴리스처럼 제스처 자체가 모멘텀을 지닌 경우에만 댐핑 0.8 정도로 바운스를 추가하십시오.

  2. 발표 값에서 애니메이션 시작하기

    인터럽트가 발생하면 요소의 실시간 화면 트랜스폼 값을 읽어 그 지점부터 새 애니메이션을 시작해야 합니다. 논리적 값이나 목표 값에서 시작하면 눈에 띄는 점프가 발생합니다.

  3. CSS 트랜지션으로 제스처를 제어하지 마십시오

    CSS 트랜지션과 @keyframes는 진행 중에 부드럽게 잡거나 되돌릴 수 없으므로, 제스처 기반 모션은 스프링 라이브러리로 처리해야 합니다.

  4. 2D 모션을 두 개의 스프링으로 분리하기

    2D 거리에 대한 단일 스프링 대신 X축과 Y축을 독립적인 스프링으로 실행해야 합니다. 두 축의 속도가 다르면 서로 어긋나기 때문입니다.

  5. Apple의 프로젝션 방식을 사용하고, 교과서 방식은 사용하지 마십시오

    물리학 교과서의 v²/(2·decel) 공식은 Apple이 실제로 사용하는 방식이 아닙니다. 일반적인 스크롤 느낌에는 decelerationRate 0.998의 지수 감쇠 형태를, 좀 더 빠른 느낌을 원한다면 0.99를 사용하십시오.

  6. 반전 지점에서 속도를 부드럽게 이어가기

    제스처가 반전되는 순간 하나의 애니메이션을 다른 애니메이션으로 교체하면 속도가 불연속적으로 끊기는, 즉 벽에 부딫히는 듯한 느낌이 발생합니다. 대신 현재 속도에서 다시 목표를 설정하는 스프링 라이브러리를 선택하십시오.

  7. 밝고 투명한 표면을 겹쳐 쌓지 마십시오

    재질의 무게감은 계층 구조를 나타내는 방식입니다. 무거운 재질은 구조적인 영역을 구분하고, 가벼운 재질은 상호작용 요소를 강조합니다. 따라서 밝고 투명한 레이어를 서로 겹쳐서는 안 됩니다.

  8. 모든 크기에 하나의 트래킹 값을 사용하지 마십시오

    자간은 크기에 따라 달라집니다. 큰 디스플레이 텍스트는 음수 트래킹을, 작은 텍스트는 약간의 양수 트래킹을 필요로 하므로, 고정된 자간 값은 어딘가에서 반드시 어긋나게 됩니다.

04 활용하기

Claude Code 또는 Codex에 apple-design 설치

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

Claude Code, Codex 또는 사용자의 에이전트에 apple-design 추가

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

Terminal
npx skills add https://github.com/emilkowalski/skills --skill apple-design

skills/apple-design/SKILL.md에 대한 일반적인 skills CLI 형식입니다. 저장소가 자체 경로를 문서화할 수도 있습니다.

스킬에 첫 UX 리서치 작업 제공

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

Starter prompt
I'm building a bottom sheet in [React] that users drag down to dismiss. It currently uses a CSS transition, so a flick snaps from wherever I released and the sheet can't be grabbed again while it's closing. Rework it with Pointer Events and a spring so it tracks the finger 1:1, hands off the release velocity, and projects momentum to pick the snap point.

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

첫 번째 결과 확인

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

  • 닫히는 중인 요소를 다시 진행 중에 잡아, 닫힘을 먼저 완료하지 않고 손가락을 따라오는지 확인하십시오.
  • 제스처를 반전시켜 속도 불연속이 발생하는지 확인하십시오. 이는 재타겟팅 과정에서 속도가 이어지지 않았다는 뜻입니다.
  • 모션에 대한 판단은 개발자의 기기에서는 무너지므로, 실제 사람들과 실제 환경에서 테스트하십시오.
  • 모션을 슬로우 모션이나 프레임 단위로 재생해 보십시오. 흥미로운 결함은 정속 재생 시에는 보이지 않습니다.
  • 랜딩 지점이 릴리스 지점이 아니라 예측된 종료 지점에서 나온 것인지 확인하십시오.
  • 투명도 감소 변형을 확인하십시오. 투명한 표면은 더 서리 낀 듯하거나 불투명해져야 하며, 배경 불투명도는 높이고 블러는 낮춰야 합니다.

OpenDesign에서는 apple-design을 SKILL.md 링크로 가져옵니다: Plugins → Add → Skill → Import from link, 그런 다음 상단 바에서 선택하십시오.

05 오픈 소스, 추적 가능

출처, 라이선스 및 검증

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

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

SKILL.md 내부

  1. 1. 반응 — 지연 시간 제거포인터 다운 시 즉시 반응하고, 모든 지연 시간을 점검하며, 상호작용 전반에 걸쳐 피드백을 끊김 없이 유지하십시오.
  2. 2. 직접 조작 — 1:1 트래킹콘텐츠를 포인터에 고정하고, 잡은 위치의 오프셋을 존중하며, 짧은 속도 기록을 유지하십시오.
  3. 3. 중단 가능성 — 가장 중요한 단일 원칙입력을 절대 잠그지 않고, 표시 값에서 애니메이션을 시작하며, 방향 전환 시 속도를 블렌딩하고, 2D 스프링을 분리합니다.
  4. 4. 애니메이션보다 동작 — 스프링을 사용합니다댐핑 비율과 응답이 물리 값을 대체하며, 댐핑 1.0을 기본값으로 하고 바운스는 모멘텀에만 사용합니다.
  5. 5. 속도 전달 — 드래그와 애니메이션 사이의 접합점해제 속도를 스프링에 전달하며, 필요할 때 남은 거리로 정규화합니다
스킬 자체 설명
Apple의 인터페이스 디자인 및 유연하고 물리적인 모션 접근 방식을 웹으로 번역한 것입니다. 제스처 기반 UI, 스프링 애니메이션, 드래그/스와이프/시트 인터랙션, 모멘텀 및 중단 가능한 전환, 반투명 재질과 깊이, 타이포그래피(광학 크기 조정, 자간, 행간), 모션 감소 또는 Apple 스타일 인터페이스 뒤에 있는 디자인 기반(피드백, 공간 일관성, 절제)을 구축하거나 검토할 때 사용합니다.

SKILL.md의 전문 설명입니다. 전체 파일은 약 22,559자입니다. GitHub에서 전체 파일 읽기.

Apple Design

실제 UX 연구 작업에 apple-design을 실행합니다.

OpenDesign을 다운로드하고, SKILL.md 링크에서 apple-design을 가져온 뒤, 위 프롬프트를 붙여넣고 결과 전에 계획을 확인하십시오.

터미널
npx skills add https://github.com/emilkowalski/skills --skill apple-design

OpenDesign 데스크톱

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

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

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

macOS, Windows 지원