Communitygithub.com

Mattttfb/애니메이션 엔지니어링

웹(CSS, Framer Motion, GSAP, Three.js, Canvas), 모바일 및 데스크톱 애플리케이션에서 부드럽고 고성능의 애니메이션, 마이크로 인터랙션, 레이아웃 전환 및 모션 디자인을 위한 전문 가이드, 패턴 및 코드 구현을 제공합니다. 사용자가 애니메이션, 전환, 모션 그래픽, 인터랙티브 UI 효과 또는 동적 시각적 피드백을 요청할 때 활성화됩니다.

애니메이션 엔지니어링란 무엇인가요?

이 스킬은 고성능 웹 및 애플리케이션 애니메이션을 설계하고 코딩하기 위한 업계 표준 사례, 프로덕션 준비 패턴 및 수학적 물리학 모델을 에이전트에 제공합니다. Framer Motion, GSAP, Three.js, CSS 및 Canvas를 포함한 주요 애니메이션 라이브러리와 프레임워크를 다루며, 최적의 도구 선택과 GPU 가속, 접근성 및 자연스러운 타이밍에 대한 지침을 제공합니다. 이 스킬은 재조정을 유발하는 속성 대신 `transform`과 `opacity`와 같은 합성 속성만 애니메이션화하는 것을 강조하고, `prefers-reduced-motion` 설정을 존중합니다. 또한 마이크로 인터랙션과 복잡한 장면 전환에 대한 세부적인 지침과 함께 자연스러운 모션을 위한 커브 및 스프링 물리학 이징 토큰 라이브러리를 포함합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Mattttfb/antigravity-animation-toolkit/tree/HEAD/skills/animation-engineering

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

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

문서

애니메이션 엔지니어링 & 모션 크래프트

이 스킬은 에이전트가 웹 및 애플리케이션 인터페이스 전반에 걸쳐 유체적이고 성능 좋은 애니메이션을 설계하고 코딩할 수 있도록 업계 표준 관행, 프로덕션 준비 패턴 및 수학적 물리학 모델을 제공합니다.


1. 모션 성능의 황금률

  1. 합성 속성만 애니메이션화하세요:
    • 항상 transform (translate3d, scale, rotate) 및 opacity를 선호하세요.
    • 절대 기하학 속성(width, height, top, left, margin, padding)을 FLIP 기법(First, Last, Invert, Play)을 사용하지 않는 한 애니메이션화하지 마세요. 기하학 애니메이션은 CPU에서 값비싼 레이아웃 재계산(Reflow) 및 Paint를 트리거합니다.
  2. GPU로 책임감 있게 승격시키세요:
    • will-change: transform, opacity;를 활발하게 애니메이션화되는 요소에만 사용하고, 메모리가 제한된 경우 애니메이션 완료 후 제거하세요.
    • 필요할 때 transform: translateZ(0) 또는 backface-visibility: hidden으로 GPU 레이어 구성을 강제하세요.
  3. 사용자 접근성을 존중하세요:
    • 항상 @media (prefers-reduced-motion: reduce)를 지원하세요:
      @media (prefers-reduced-motion: reduce) {
        *, *::before, *::after {
          animation-duration: 0.01ms !important;
          animation-iteration-count: 1 !important;
          transition-duration: 0.01ms !important;
          scroll-behavior: auto !important;
        }
      }
      
  4. 자연스러운 타이밍 및 지속 시간:
    • 마이크로 인터랙션 (버튼 누름, 토글, 툴팁): 100ms - 200ms
    • 표준 전환 (드롭다운, 대화상자, 서랍, 카드): 200ms - 350ms
    • 복잡한 장면 전환 / 페이지 전환: 350ms - 500ms
    • 500ms보다 긴 애니메이션은 연속적인 분위기 배경 루프 또는 내러티브 스토리텔링이 아닌 이상 느리게 느껴집니다.

2. 기술 선택 매트릭스

시나리오 / 필요권장 도구이유
간단한 호버, 포커스, 활성 상태, 페이드/슬라이드CSS 전환 및 @keyframes 또는 Tailwind CSS제로 JavaScript 오버헤드, 120 FPS 하드웨어 가속.
React / Next.js UI, 모달, 공유 레이아웃 전환Framer Motion (motion)선언적 API, 스프링 물리학, 자동 FLIP (layoutId), AnimatePresence.
복잡한 타임라인, SVG 모핑, 스크롤 기반 UIGSAP (GreenSock) + ScrollTrigger비교할 수 없는 안무 제어, 정밀한 스크러빙, 브라우저 간 일관성.
3D 경험, 입자 네트워크, 셰이더Three.js / React Three Fiber / Canvas 2D수십만 개의 입자에 대한 직접 WebGL GPU 렌더링.
벡터 모션 그래픽 및 캐릭터 일러스트레이션Lottie / dotLottie / Rive작은 JSON/바이너리 페이로드, 확장 가능한 벡터 충실도, 인터랙티브 상태 머신.

3. 모션 곡선 (이징 토큰)

일정 속도의 컨베이어 벨트나 무한 회전 로더를 시뮬레이션하지 않는 한 UI 움직임에 linear를 사용하지 마세요. 자연스러운 움직임은 가속 및 감속합니다:

  • 경쾌한 진입 (표준 UI 팝업/열기): cubic-bezier(0.16, 1, 0.3, 1) (Expo Out - 빠른 초기 버스트, 부드러운 감속)
  • 부드러운 종료 (해제/닫기): cubic-bezier(0.7, 0, 0.84, 0) (Expo In - 화면 밖으로 가속)
  • 자연스러운 동적 / 강조: cubic-bezier(0.34, 1.56, 0.64, 1) (미묘한 오버슈트 바운스)
  • 스프링 물리학 (터치 및 드래그에 선호) :
    • 강성: 300 - 400
    • 감쇠: 25 - 35
    • 질량: 0.8 - 1.0

4. 심층 가이드 및 참고 자료

포괄적인 코드 패턴 및 자세한 연습은 다음 참고 자료를 참조하세요:


5. 검증 체크리스트

애니메이션 구성 요소를 구축할 때:

  • 애니메이션이 끊김이나 프레임 드롭 없이 부드럽게(60-120 FPS) 실행됩니까?
  • 애니메이션 중 레이아웃 이동(CLS)이 방지됩니까?
  • 종료 애니메이션이 요소 마운트 해제 전에 적절히 대기됩니까?
  • UI가 빠른 클릭/탭을 버벅거림 없이 처리합니까(중단 가능한 애니메이션)?
  • prefers-reduced-motion이 구현되었습니까?

관련 스킬