본문으로 건너뛰기
cccskills
무료GitHub에 공개

gsap-performance

Diagnose GSAP and ScrollTrigger performance.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md4.4 KB
  • agents/openai.yaml262 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

GSAP Performance

When to Use This Skill

Apply when the affected animation uses GSAP or ScrollTrigger. Diagnose measured frame, layout/paint or lifecycle cost. Generic motion diagnosis belongs to animation-jank-qa, and a broad release review to motion-performance-qa.

Related skills: motion-performance-qa, animation-jank-qa, animation-tool-router, and reduced-motion-design.

Prefer Transform and Opacity

Animating transform (x, y, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY) and opacity usually avoids layout and can reduce paint cost; compositor isolation depends on the browser, layer composition and effect. Measure instead of assuming GPU acceleration. Avoid animating layout-heavy properties when a transform can achieve the same effect.

  • Prefer: x, y, scale, rotation, opacity.
  • Avoid when possible: width, height, top, left, margin, padding because they trigger layout and can cause jank.

GSAP's x and y use transforms by default; use them instead of left/top for movement.

will-change

Use will-change selectively on elements that will animate soon. It hints the browser to prepare for animation work, but overusing it can increase memory pressure.

will-change: transform;

Remove or narrow will-change when an element no longer needs it.

Batch Reads and Writes

GSAP batches updates internally. When mixing GSAP with direct DOM reads/writes or layout-dependent code, avoid interleaving reads and writes in a way that causes repeated layout thrashing. Prefer doing all reads first, then all writes, or let GSAP handle the writes in one go.

Many Elements: Staggers and Lists

  • Use stagger instead of many separate tweens with manual delays when the animation is the same.
  • For long lists, consider virtualization or animating only visible items; avoid creating hundreds of simultaneous tweens if it causes jank.
  • Reuse timelines where possible; avoid creating new timelines every frame.

Frequently Updated Properties

Prefer gsap.quickTo() for properties that update often, such as mouse-follower x/y. It reuses a single tween instead of creating new tweens on each update.

let xTo = gsap.quickTo("#id", "x", { duration: 0.4, ease: "power3" }),
    yTo = gsap.quickTo("#id", "y", { duration: 0.4, ease: "power3" });

document.querySelector("#container").addEventListener("mousemove", (e) => {
  xTo(e.pageX);
  yTo(e.pageY);
});

ScrollTrigger and Performance

  • pin: true pins the trigger element during the active range; it is not a GPU-promotion guarantee. Pin only the intended surface and inspect spacing and surrounding layout.
  • Numeric scrub sets catch-up smoothing (seconds). Animation can continue after scrolling stops; it does not inherently reduce work. Measure total frame cost and responsiveness on relevant devices.
  • Call ScrollTrigger.refresh() only when layout actually changes, such as after content load. Debounce refresh calls when possible.

Reduce Simultaneous Work

  • Pause or kill off-screen or inactive animations when they are not visible, such as when the user navigates away.
  • Avoid animating huge numbers of properties on many elements at once; simplify or sequence if needed.

Best Practices

  • Animate transform and opacity where possible; use will-change only on elements that actually animate.
  • Use stagger instead of many separate tweens with manual delays when the animation is the same.
  • Use gsap.quickTo() for frequently updated properties.
  • Clean up or kill off-screen animations; call ScrollTrigger.refresh() when layout changes, debounced when possible.

Do Not

  • Animate width, height, top, or left for movement when x, y, or scale can achieve the same look.
  • Set will-change or force3D on every element just in case; reserve them for elements that actually need them.
  • Create hundreds of overlapping tweens or ScrollTriggers without testing on lower-end devices.
  • Ignore cleanup; stray tweens and ScrollTriggers keep running and can hurt performance and correctness.

Technical semantics: GSAP ScrollTrigger. Verify the installed version for implementation details.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Audit semantic and keyboard accessibility.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TheGoat395/Codex-Skills1292026년 9월 11일 업데이트

Finish accessibility and performance details.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TheGoat395/Codex-Skills1292026년 9월 11일 업데이트

Evaluate agent and skill behavior or routing.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TheGoat395/Codex-Skills1292026년 9월 11일 업데이트

Design memory provenance and tenant isolation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TheGoat395/Codex-Skills1292026년 9월 11일 업데이트

Resolve agent ownership and handoff design.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TheGoat395/Codex-Skills1292026년 9월 11일 업데이트

Define coherent motion timing and rhythm.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

TheGoat395/Codex-Skills1292026년 9월 11일 업데이트

TheGoat395의 스킬 모두 보기

이 스킬의 문제 신고