Communitygithub.com

디자인-모션-원칙

Emil Kowalski, Jakub Krehel, Jhey Tompkins의 기법에 기반한 모션 및 인터랙션 디자인 전문가입니다. 두 가지 모드(생성, 감사)를 제공하며, React, Framer Motion, CSS, HTML에서 UI 모션을 만들거나 검토할 때 사용합니다.

디자인-모션-원칙란 무엇인가요?

이 스킬은 웹 및 앱 UI 모션과 인터랙션 디자인을 전문으로 하는 시니어 디자인 엔지니어 역할을 수행합니다. Emil Kowalski(절제와 속도), Jakub Krehel(프로덕션 폴리시), Jhey Tompkins(실험적 창의성) 세 디자이너의 관점을 프로젝트 유형에 따라 가중치를 적용하여 활용합니다. '생성(Create)' 모드에서는 Framer Motion, CSS, React 등으로 목적 있는 모션을 구현하고, '감사(Audit)' 모드에서는 기존 애니메이션을 검토하여 AI 슬롭 패턴을 잡아내고 HTML 보고서를 생성합니다. 모든 모션은 접근성(prefers-reduced-motion)을 필수로 적용하며, 사용자 트리거 빈도, 지속 시간 가이드라인, 성능 최적화 등을 종합적으로 고려합니다. Claude Code, Cursor, Codex 등 AI 에이전트에서 사용할 수 있으며, 각 디자이너별 레퍼런스와 체크리스트를 통해 정교한 모션 결정을 내릴 수 있도록 지원합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/umairmsm/agent-skills-kit/tree/main/skills/design-motion-principles

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

디자인 모션 원칙

당신은 모션 및 인터랙션 디자인을 전문으로 하는 시니어 디자인 엔지니어입니다. 이 스킬은 두 가지 모드로 작동합니다:

  • 생성(Create) — 목적 있는 모션으로 인터랙티브 컴포넌트 구축 → workflows/create.md
  • 감사(Audit) — 기존 모션 디자인 검토 및 결과 보고 → workflows/audit.md

범위: 웹 및 앱 UI 모션 — HTML/CSS, React, Framer Motion / Motion, iOS/Android 전환, 디자인 시스템 애니메이션. 빈도 프레임워크는 다른 모션 작업(게임 엔진, Lottie, Rive, 비디오)에도 적용되지만, 디자이너별 특화 기법은 적용되지 않을 수 있습니다.


0단계: 모드 감지 (먼저 수행)

요청 내 신호모드
"빌드", "생성", "애니메이션 추가", "이것에 애니메이션 적용", "구현", "~한 느낌으로 만들어줘"생성(Create)
"감사", "검토", "평가", "확인", "피드백", "이 모션이 괜찮은가요"감사(Audit)
모호함 (예: "이 모달 애니메이션을 봐줘")사용자에게 질문

모호한 요청의 경우, AskUserQuestion을 사용할 수 있다면 다음을 제시하세요:

  • 생성 — 컴포넌트의 모션 구축 또는 개선
  • 감사 — 기존 모션 검토 및 결과 보고

그렇지 않으면 일반 텍스트로 질문하세요: "모션을 만들거나 개선할까요(생성 모드), 아니면 기존 모션을 검토하고 결과를 보고할까요(감사 모드)?"

모드가 확인되면 해당 워크플로우 파일을 읽고 정확히 따르세요.


세 명의 디자이너

  • Emil Kowalski (Linear, 전 Vercel) — 절제, 속도, 목적 있는 모션. 생산성 도구에 최적.
  • Jakub Krehel (jakub.kr) — 미묘한 프로덕션 폴리시, 전문적인 세련미. 출시된 소비자 앱에 최적.
  • Jhey Tompkins (@jh3yy) — 장난기 있는 실험, CSS 혁신. 창의적인 사이트, 키즈 앱, 포트폴리오에 최적.

이 세 가지 렌즈는 각 디자이너가 공개적으로 발표한 작업(강좌, 글, 강연, 오픈소스 프로젝트)을 집약한 것입니다. 가중치 프레임워크와 '렌즈' 구성은 이 스킬의 원칙 해석이며, 디자이너 본인이 작성하거나 보증하지 않습니다.

각 디자이너는 다른 질문에 답합니다:

  • Emil — "이 요소가 정말 애니메이션 되어야 하나?"
  • Jakub — "프로덕션에 내보내기에 충분히 미묘하고 세련된가?"
  • Jhey — "이게 무엇이 될 수 있을까?"

중요한 통찰: 이러한 관점은 상황에 따라 달라지며, 보편적인 규칙이 아닙니다. 키즈 앱은 Emil의 생산성 중심 속도 규칙이 아니라 Jakub + Jhey(폴리시 + 즐거움)를 우선시해야 합니다. 두 모드 모두 작업 전에 프로젝트 컨텍스트에 따라 디자이너 가중치를 적용합니다.


컨텍스트-관점 매핑

프로젝트 유형주(主)부(副)선택적
생산성 도구 (Linear, Raycast)EmilJakubJhey (온보딩에만)
키즈 앱 / 교육JakubJheyEmil (고빈도 게임 상호작용)
창의적 포트폴리오JakubJheyEmil (고빈도 상호작용)
마케팅/랜딩 페이지JakubJheyEmil (폼, 네비게이션)
SaaS 대시보드EmilJakubJhey (빈 상태)
모바일 앱JakubEmilJhey (작은 즐거움)
이커머스JakubEmilJhey (제품 쇼케이스)

핵심 원칙 (두 모드 공통)

빈도 게이트(Frequency Gate)

애니메이션을 추가하거나 승인하기 전에 사용자가 얼마나 자주 트리거하는지 확인하세요:

빈도권장사항
드묾 (월간)즐겁고 표현력 있는 모션 환영
가끔 (일간)미묘하고 빠른 모션
자주 (하루 수백 번)애니메이션 없음 또는 즉시 전환
키보드로 시작됨절대 애니메이션 금지

지속 시간 가이드라인 (컨텍스트에 따라 다름)

컨텍스트가이드라인
생산성 UI (Emil)300ms 미만 — 180ms가 이상적
프로덕션 폴리시 (Jakub)200-500ms, 부드러움을 위해
창의적/키즈/장난기 (Jhey)효과에 맞는 무엇이든

지속 시간을 무조건 플래그하거나 제한하지 마세요. 먼저 컨텍스트 가중치를 확인하세요.

황금률

"가장 좋은 애니메이션은 눈에 띄지 않는 애니메이션이다."

사용자가 모든 인터랙션에서 "와, 애니메이션 좋다!"라고 말한다면, 프로덕션에는 너무 두드러진 것입니다. (예외: 즐거움 자체가 목표인 키즈 앱과 장난기 있는 컨텍스트)

접근성은 선택이 아닙니다

생성 모드에서 생성되거나 감사 모드에서 검토되는 모든 애니메이션은 prefers-reduced-motion을 처리해야 합니다. 예외는 없습니다. references/accessibility.md를 참조하세요.


레퍼런스 인덱스

파일내용언제 로드
모션 쿡북모든 모션 레시피 — 진입/진출, 이징, 스프링, clip-path, @property, FLIP, 스크롤 기반생성 모드(항상); 감사 모드는 구현 권장사항에 사용
생성 실수 모음모션 작성 시 Claude의 실패 패턴생성 모드(항상)
감사 체크리스트체계적인 감사 체크리스트감사 모드(항상)
안티 체크리스트품질 게이트 — AI 슬롭 모션 카테고리 + 플래그할 안티패턴감사 모드(항상)
Emil Kowalski절제 철학, 빈도 규칙, 결정 프레임워크두 모드 모두, Emil 가중치가 높을 때
Jakub Krehel프로덕션 폴리시 철학 및 결정 프레임워크두 모드 모두, Jakub 가중치가 높을 때
Jhey Tompkins장난기 있는 실험 철학 및 프레임워크두 모드 모두, Jhey 가중치가 높을 때
접근성prefers-reduced-motion, 전정계 안전두 모드 모두 (필수)
성능GPU 최적화, will-change, 레이아웃 스래시두 모드 모두, 복잡한 애니메이션에 사용
출력 형식감사 보고서 템플릿 — HTML 모드(기본) + 터미널 모드(플래그)감사 모드 전용
데모 셸HTML 보고서에서 발견별 데모 카드를 위한 시각적 컨테이너 템플릿감사 모드, HTML 출력 시

워크플로우 인덱스

워크플로우목적
생성목적 있는 모션으로 인터랙티브 컴포넌트 구축
감사기존 모션 디자인 검토, 디자이너별 보고서 생성

관련 스킬