사용 가이드로 건너뛰기
gsap-performance작성자 GreenSock

GSAP Performance 스킬.

모션 및 비디오를 위한 Claude Code 및 Codex 스킬: GSAP 성능: 트랜스폼, 레이아웃 스래싱 방지, will-change, 배칭.

  • Motion & Video
  • UI 코드
greensock/gsap-skills · skills/gsap-performance/SKILL.mdSKILL.md
--- name: gsap-performance description: Official GSAP skill for performance — prefer transforms, avoid layout thrashing, will-change, batching. Use when optimizing GSAP animations, reducing jank, or when the user asks about animation performance, FPS, or smooth 60fps. --- ## When to Use This Skill ## Prefer Transform and Opacity ## will-change ## Batch Reads and Writes ## Many Elements (Stagger, Lists) ## Frequently updated properties (e.g. mouse followers)
2026-09-14에 업스트림 파일에서 읽은 머리말 및 섹션 제목 · 전체 4,105자

01 기능

Claude Code와 Codex에서 gsap-performance Skill이 하는 일

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

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

스킬 자체의 표현으로

저렴한 속성을 선택하고 레이아웃 작업을 피함으로써 애니메이션을 부드러운 60fps로 유지하기 위한 공식 GSAP 가이드입니다. width, height, top, left, margin, padding 대신 transform 키(x, y, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY)와 opacity를 애니메이션하도록 안내하며, will-change는 실제로 애니메이션되는 요소에만 CSS로 지정하고, 레이아웃 스래싱을 막기 위해 모든 DOM 읽기를 쓰기 전에 수행하도록 합니다.

배칭 가이드에서는 수동 딜레이 트윈 대신 stagger를 사용하는 방법, 긴 목록에 대한 가상화, 마우스 팔로워를 위한 gsap.quickTo(), 디바운스된 ScrollTrigger.refresh()를 활용한 pin 및 scrub 조정, 화면 밖 트윈 종료를 다룹니다. 이는 GSAP 애니메이션을 새로 만드는 것이 아니라 기존 애니메이션을 조정하는 디자이너와 개발자를 위한 것입니다.

산출물

  • 애니메이션 대상 요소의 CSS에 추가할 will-change 선언입니다.
  • 컨테이너의 mousemove 리스너로 구동되는, x와 y에 대한 gsap.quickTo() 설정입니다.
예시 프롬프트 보기 ↗

작동 방식

  1. 01
    컴포지터 친화적 속성 애니메이션하기

    애니메이션을 transform 키와 opacity로 제한하여 레이아웃과 페인트를 유발하지 않고 컴포지터에서 작업이 처리되도록 합니다.

  2. 02
    GSAP이 쓰기를 배칭하도록 두기

    GSAP은 이미 내부적으로 업데이트를 배칭하므로, 위험은 그 주변에서 읽기와 쓰기를 섞어 사용하는 자신의 DOM 코드에 있습니다.

  3. 03
    자주 변하는 값에는 트윈 하나를 재사용하기

    포인터가 움직일 때마다 업데이트되는 속성의 경우, gsap.quickTo()는 업데이트마다 새 트윈을 할당하는 대신 하나의 트윈을 계속 유지합니다.

  4. 04
    스크롤 기반 작업 제어하기

    scrub: 1과 같은 작은 scrub 값은 스크롤 중 수행되는 작업을 줄일 수 있지만, 파일에서는 이 설정을 저사양 기기에서 테스트하도록 권장합니다.

  5. 05
    보이지 않는 애니메이션 정지하기

    예를 들어 사용자가 해당 섹션에서 벗어났을 때, 화면 밖의 비활성 애니메이션을 일시 정지하거나 종료합니다.

02 적합성 확인

gsap-performance 스킬을 사용하는 경우

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

적합한 경우

  • 기존 GSAP 애니메이션이 프레임을 떨어뜨리고 있어 레이아웃 및 페인트 비용을 줄이고 싶은 경우입니다.
  • 누군가 GSAP 프로젝트에서 끊김, FPS, 또는 빠른 애니메이션을 위한 모범 사례에 대해 질문하는 경우입니다.
  • 긴 목록을 애니메이션하고 있으며 가상화와 수백 개의 동시 트윈을 피하는 방법에 대한 조언이 필요한 경우입니다.
  • 스크롤 섹션이 요소를 고정하고 있어 무엇을 승격시킬지 제한해야 하는 경우입니다.

한계 인지하기

  • 혹시 몰라서 모든 요소에 will-change나 force3D를 설정하는 것은 명백히 잘못된 방식입니다; 이는 실제로 애니메이션되는 요소에만 적용해야 합니다.
  • 저사양 기기에서 테스트되지 않은 경우, 수백 개의 겹치는 트윈이나 ScrollTrigger는 안티패턴으로 간주됩니다.

제공할 사항

  • 애니메이션이 현재 변경하고 있는 속성transform과 opacity가 레이아웃 부담이 큰 속성을 대체할 수 있는지 판단하려면 무엇이 애니메이션되고 있는지 알아야 합니다.

03 스킬 내부

gsap-performance Skill이 Claude Code와 Codex에 제공하는 규칙

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

  1. 레이아웃을 유발하는 속성 피하기

    width, height, top, left, margin, padding는 레이아웃을 유발하여 끊김(jank)을 일으킬 수 있으므로, transform으로 같은 효과를 낼 수 있다면 이를 피해야 합니다.

  2. Left와 Top이 아닌 X와 Y로 이동

    GSAP의 x와 y는 기본적으로 transform(translate)이므로, 이동에는 left나 top 대신 이를 사용해야 합니다.

  3. 애니메이션이 실제로 일어나는 곳에만 will-change 사용

    애니메이션이 적용될 요소에만 CSS에서 will-change를 설정합니다. 이는 브라우저에 레이어 승격을 힌트로 알려주는 것이므로, 애니메이션 대상 요소에만 적용해야 합니다.

  4. 수동 지연 대신 stagger 사용

    여러 요소에 동일한 애니메이션을 적용할 때는, 직접 작성한 지연 값을 가진 개별 트윈을 여러 개 만드는 대신 stagger를 사용해야 합니다.

  5. 프레임마다 타임라인을 새로 만들지 않기

    타임라인을 재사용해야 합니다. 매 프레임마다 새로운 타임라인을 만드는 것은 낭비로 지적됩니다.

  6. 실제 레이아웃 변경 시에만 ScrollTrigger 새로고침

    레이아웃이 실제로 변경될 때(예: 콘텐츠 로드 후)만 ScrollTrigger.refresh()를 호출하고, 리사이즈마다 호출하지 않으며 가능한 경우 디바운스합니다.

  7. 시작한 것은 정리하기

    화면 밖 애니메이션을 정리하거나 종료하고, 레이아웃이 변경될 때 가능하면 디바운스하여 ScrollTrigger를 새로고침해야 필요 이상으로 계속 실행되는 것을 막을 수 있습니다.

04 활용하기

Claude Code 또는 Codex에 gsap-performance 설치

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

Claude Code, Codex 또는 사용 중인 에이전트에 gsap-performance 추가

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

Terminal
npx skills add https://github.com/greensock/gsap-skills --skill gsap-performance

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

스킬에 첫 번째 모션 및 비디오 작업 제공

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

Starter prompt
Here is my [product landing page] with a GSAP intro and a pinned ScrollTrigger section, and it drops frames on an [older Android phone]. Go through the animation and tell me which properties I should swap for transforms, which elements genuinely need will-change, and whether my ScrollTrigger.refresh() calls fire more often than the layout actually changes. I also have a [custom cursor] that follows the pointer and feels heavy.

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

첫 번째 결과 확인

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

  • DOM 읽기와 쓰기가 서로 뒤섞여 있는지 확인하세요. 이는 반복적인 레이아웃 스래싱(thrashing)을 일으키므로, 읽기 작업이 모두 먼저 이루어져야 합니다.
  • 계속 실행 중인 것이 없는지 확인하세요. 남아 있는 트윈과 ScrollTrigger는 계속 동작하며 성능과 정확성을 저해합니다.
  • 애니메이션 대상 속성이 transform과 opacity로 유지되는지 확인하세요. 그래야 브라우저가 컴포지팅 작업만 처리하게 됩니다.

OpenDesign에서는 gsap-performance가 기본 포함되어 있습니다: 상단 바에서 Plugins → Skills를 선택하세요.

05 오픈 소스, 추적 가능

출처, 라이선스 및 검증

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

Author
GreenSock
Repository
github.com/greensock/gsap-skills 브랜치 main
스킬 파일
skills/gsap-performance/SKILL.md 검증 시 기록된 콘텐츠 체크섬; 커밋 aed9cfd
License
MIT LICENSE에서 가져옴; SKILL.md에 "MIT"로 표기됨.
리포지토리 스타
15,248 이 카탈로그의 8개 스킬을 포함하는 전체 greensock/gsap-skills 저장소에 대해 2026-09-14에 촬영된 GitHub 스냅샷입니다. gsap-performance의 평가 또는 사용 횟수가 아닙니다.
OpenDesign에서 검증됨
2026-09-14 소스 파일, 경로, 라이선스 텍스트 및 별 개수가 확인되었습니다. OpenDesign 메인에 번들로 포함됨(2026-08-28 확인됨); 이 페이지에 실시간 실행이 기록되지 않았습니다.

SKILL.md 내부

  1. 이 Skill을 사용할 때60fps 또는 끊김을 위해 GSAP 애니메이션을 최적화할 때 적용하며, 관련 skill을 안내합니다.
  2. Transform과 Opacity 우선 사용transform 속성과 opacity를 애니메이션하고, 레이아웃 속성은 피하며, left와 top보다 x와 y를 사용하세요.
  3. will-change애니메이션이 적용될 요소의 CSS에 will-change를 추가하여 레이어 승격을 힌트로 알려주세요.
  4. 읽기와 쓰기 일괄 처리GSAP는 쓰기를 일괄 처리합니다. 스래싱을 피하려면 모든 DOM 읽기를 쓰기보다 먼저 수행하세요.
  5. 많은 요소(Stagger, 목록)stagger가 수동 지연보다 낫습니다. 긴 목록은 가상화하고, 새로 만들기보다 타임라인을 재사용하세요.
  6. 자주 업데이트되는 속성(예: 마우스 팔로워)자주 업데이트되는 x와 y 값에는 mousemove 핸들러와 함께 gsap.quickTo를 사용하세요.
  7. ScrollTrigger와 성능필요한 요소만 고정하고, scrub 값은 작게 시도하며, 레이아웃이 변경될 때만 refresh하세요.
  8. 동시 작업 줄이기화면 밖 애니메이션은 일시정지하거나 종료하고, 무거운 속성 애니메이션은 단순화하거나 순차적으로 처리하세요.
  9. 모범 사례네 가지 체크리스트: transform과 opacity, 범위가 지정된 will-change, stagger, 정리 및 refresh.
  10. 하지 말아야 할 것안티패턴: 이동에 레이아웃 속성 사용, will-change 또는 force3D를 무분별하게 적용, 테스트되지 않은 대량 실행, 정리 무시.
스킬 자체 설명
"공식 GSAP 성능 스킬 — 트랜스폼 선호, 레이아웃 스래싱 방지, will-change, 일괄 처리. GSAP 애니메이션 최적화, 버벅임 감소 또는 사용자가 애니메이션 성능, FPS, 부드러운 60fps에 대해 질문할 때 사용하십시오."

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

06 설치하기 전에

gsap-performance 스킬에 관한 질문

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

이것을 gsap-core 대신 사용해야 하나요?

아닙니다. 이 스킬은 일반적인 GSAP 작업 위에 놓이는 성능 레이어입니다. 애니메이션은 gsap-core(transform, autoAlpha)와 gsap-timeline으로 구성되며, ScrollTrigger 성능 관련 세부 사항은 gsap-scrolltrigger에 있습니다.

마우스 팔로워는 어떻게 만들어야 하나요?

x와 y 값에 대해 duration과 ease를 지정하여 gsap.quickTo()를 사용하고, 반환된 함수를 mousemove 리스너에서 호출하세요. 매 업데이트마다 새 tween을 생성하는 대신 하나의 tween을 재사용합니다.

GSAP Performance

실제 모션 및 비디오 작업에서 gsap-performance 실행

gsap-performance 스킬은 OpenDesign에 포함되어 있습니다. 앱을 다운로드하고, Plugins → Skills에서 스킬을 선택하고, 위의 프롬프트를 붙여넣은 다음 결과 전에 계획을 읽으십시오.

터미널
npx skills add https://github.com/greensock/gsap-skills --skill gsap-performance