Agent skill

Fixing Motion Performance

by ibelick in ibelick/ui-skills

Audits and fixes web animation performance: layout thrashing, work that belongs on the compositor, scroll-linked motion and costly blur effects.

MITAuto-check passedFrontend & Design

Install Fixing Motion Performance

skills CLI
$ npx skills add ibelick/ui-skills --skill fixing-motion-performance -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ibelick/ui-skills fixing-motion-performance --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ibelick/ui-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/fixing-motion-performance .claude/skills/fixing-motion-performance && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
fixing-motion-performance
GitHub stars
9.5k
Used in
5 other repos
Token cost
~1.4k tokens
SKILL.md length
571 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Audits and fixes web animation performance: layout thrashing, work that belongs on the compositor, scroll-linked motion and costly blur effects.

  • Works in 9 steps: never patterns (critical) → choose the mechanism (critical) → measurement (high) → …
  • Fixing animations that stutter or transitions that jank
  • SKILL.md covers how to use, when to apply, rendering steps glossary and rule categories by priority, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

The skill audits and fixes animation performance problems in web UIs: layout thrashing, work that should run on the compositor, scroll-linked motion and expensive blur effects. Invoked alone it applies its rules to any animation work in the conversation; pointed at a file it reports each violation with the exact line, a one-sentence reason it matters and a concrete code-level fix. It works inside the existing stack and does not migrate animation libraries unless asked.

Rules are ranked by priority, starting with never patterns (no interleaved layout reads and writes in one frame, no continuous animation of layout on large surfaces, no driving animation from scroll events, no requestAnimationFrame loop without a stop condition) and choosing the mechanism (default to transform and opacity, JS-driven motion only when interaction needs it). Further categories cover measurement, scroll, paint, layers, blur and filters, view transitions and tool boundaries. A glossary sorts properties into composite, paint and layout costs; the excerpt ends within the scroll rules.

When your agent uses it

  • Fixing animations that stutter or transitions that jank
  • Reviewing CSS or JavaScript animation code for layout thrashing
  • Implementing scroll-linked or reveal-on-scroll motion without scroll event handlers
  • Checking will-change, transform and measurement use in components

Example prompts

  • “Review src/components/Hero.tsx for animation performance problems.”
  • “The card hover transition janks on mobile. Find the cause and fix it.”
  • “Rewrite this reveal-on-scroll effect so it doesn't rely on scroll events.”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. never patterns (critical)
  2. choose the mechanism (critical)
  3. measurement (high)
  4. scroll (high)
  5. paint (medium-high)
  6. layers (medium)
  7. blur and filters (medium)
  8. view transitions (low)
  9. tool boundaries (critical)

What it can do on your machine

Read from SKILL.md and the folder at commit 587ea30. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are css and javascript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Fixing Motion Performance loads about 1.4k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 571 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ibelick/ui-skills at commit 587ea30, republished under its MIT licence (© ibelick). 571 words, ~1,391 tokens.

Download SKILL.mdSave it as .claude/skills/fixing-motion-performance/SKILL.md (or your agent's skills folder).
name
fixing-motion-performance
description
Audit and fix animation performance issues including layout thrashing, compositor properties, scroll-linked motion, and blur effects. Use when animations stutter, transitions jank, or reviewing CSS/JS animation performance.

fixing-motion-performance

Fix animation performance issues.

how to use

  • /fixing-motion-performance Apply these constraints to any UI animation work in this conversation.

  • /fixing-motion-performance <file> Review the file against all rules below and report:

    • violations (quote the exact line or snippet)
    • why it matters (one short sentence)
    • a concrete fix (code-level suggestion)

Do not migrate animation libraries unless explicitly requested. Apply rules within the existing stack.

when to apply

Reference these guidelines when:

  • adding or changing UI animations (CSS, WAAPI, Motion, rAF, GSAP)
  • refactoring janky interactions or transitions
  • implementing scroll-linked motion or reveal-on-scroll
  • animating layout, filters, masks, gradients, or CSS variables
  • reviewing components that use will-change, transforms, or measurement

rendering steps glossary

  • composite: transform, opacity
  • paint: color, borders, gradients, masks, images, filters
  • layout: size, position, flow, grid, flex

rule categories by priority

prioritycategoryimpact
1never patternscritical
2choose the mechanismcritical
3measurementhigh
4scrollhigh
5paintmedium-high
6layersmedium
7blur and filtersmedium
8view transitionslow
9tool boundariescritical

quick reference

1. never patterns (critical)
  • do not interleave layout reads and writes in the same frame
  • do not animate layout continuously on large or meaningful surfaces
  • do not drive animation from scrollTop, scrollY, or scroll events
  • no requestAnimationFrame loops without a stop condition
  • do not mix multiple animation systems that each measure or mutate layout
2. choose the mechanism (critical)
  • default to transform and opacity for motion
  • use JS-driven animation only when interaction requires it
  • paint or layout animation is acceptable only on small, isolated surfaces
  • one-shot effects are acceptable more often than continuous motion
  • prefer downgrading technique over removing motion entirely
3. measurement (high)
  • measure once, then animate via transform or opacity
  • batch all DOM reads before writes
  • do not read layout repeatedly during an animation
  • prefer FLIP-style transitions for layout-like effects
  • prefer approaches that batch measurement and writes
4. scroll (high)
  • prefer Scroll or View Timelines for scroll-linked motion when available
  • use IntersectionObserver for visibility and pausing
  • do not poll scroll position for animation
  • pause or stop animations when off-screen
  • scroll-linked motion must not trigger continuous layout or paint on large surfaces
Show full SKILL.md (220 more words)Show less
5. paint (medium-high)
  • paint-triggering animation is allowed only on small, isolated elements
  • do not animate paint-heavy properties on large containers
  • do not animate CSS variables for transform, opacity, or position
  • do not animate inherited CSS variables
  • scope animated CSS variables locally and avoid inheritance
6. layers (medium)
  • compositor motion requires layer promotion, never assume it
  • use will-change temporarily and surgically
  • avoid many or large promoted layers
  • validate layer behavior with tooling when performance matters
7. blur and filters (medium)
  • keep blur animation small (<=8px)
  • use blur only for short, one-time effects
  • never animate blur continuously
  • never animate blur on large surfaces
  • prefer opacity and translate before blur
8. view transitions (low)
  • use view transitions only for navigation-level changes
  • avoid view transitions for interaction-heavy UI
  • avoid view transitions when interruption or cancellation is required
  • treat size changes as potentially layout-triggering
9. tool boundaries (critical)
  • do not migrate or rewrite animation libraries unless explicitly requested
  • apply these rules within the existing animation system
  • never partially migrate APIs or mix styles within the same component

common fixes

css
/* layout thrashing: animate transform instead of width */
/* before */ .panel { transition: width 0.3s; }
/* after */  .panel { transition: transform 0.3s; }

/* scroll-linked: use scroll-timeline instead of JS */
/* before */ window.addEventListener('scroll', () => el.style.opacity = scrollY / 500)
/* after */  .reveal { animation: fade-in linear; animation-timeline: view(); }
js
// measurement: batch reads before writes (FLIP)
// before — layout thrash
el.style.left = el.getBoundingClientRect().left + 10 + 'px';
// after — measure once, animate via transform
const first = el.getBoundingClientRect();
el.classList.add('moved');
const last = el.getBoundingClientRect();
el.style.transform = `translateX(${first.left - last.left}px)`;
requestAnimationFrame(() => { el.style.transition = 'transform 0.3s'; el.style.transform = ''; });

review guidance

  • enforce critical rules first (never patterns, tool boundaries)
  • choose the least expensive rendering work that matches the intent
  • for any non-default choice, state the constraint that justifies it (surface size, duration, or interaction requirement)
  • when reviewing, prefer actionable notes and concrete alternatives over theory

© ibelick, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/fixing-motion-performance of ibelick/ui-skills.

Open the folder on GitHubat commit 587ea30

Used in 5 other repositories

We found 14 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 5 other GitHub owners. This page covers the copy in ibelick/ui-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Fixing Motion Performance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Fixing Motion Performance compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fixing Motion Performance this skillibelick/ui-skills9.5k5 repos~1.4kAutomated safety check: PassMIT
GSAP Performance Tuninggreensock/gsap-skills16k4 repos~1kAutomated safety check: PassMIT
Phantom Motionpixelxzen/phantom-motion185—~1kAutomated safety check: PassApache-2.0
GSAP ScrollTriggergreensock/gsap-skills16k5 repos~4.6kAutomated safety check: PassMIT
GSAP Core Animationgreensock/gsap-skills16k4 repos~3.7kAutomated safety check: PassMIT
Web Animation DesignbaptisteArno/typebot.io11k2 repos~2.7kAutomated safety check: PassCustom licence

Similar skills

  • GSAP Performance Tuning

    greensock/gsap-skills

    Guides the agent to keep GSAP animations smooth by animating transforms and opacity, batching DOM reads and writes, and avoiding layout-heavy properties.

    16k GitHub starsUsed in 4 repos~1k tokens
    Frontend & DesignAuto-check passed
  • Phantom Motion

    pixelxzen/phantom-motion

    交互式动态视觉叙事生成器 v11.0 (Hybrid Drive Edition)。基于用户输入的任意主题关键词, 通过多轮交互式对话收集需求,利用 React 19 + Tailwind 4 驱动的 Minimal Mono 极简编辑器, 实时操纵隔离在 Iframe 中的硬核 GSAP/WebGL 影视级叙事引擎。

    185 GitHub stars~1k tokensUpdated 4 mo ago
    Frontend & DesignAuto-check passed
  • GSAP ScrollTrigger

    greensock/gsap-skills

    Teaches an agent how to wire up GSAP's ScrollTrigger plugin for scroll-linked animation, pinned sections and scrub, including the start and end position syntax.

    16k GitHub starsUsed in 5 repos~4.6k tokens
    Frontend & DesignAuto-check passed
  • GSAP Core Animation

    greensock/gsap-skills

    Covers the GSAP core API for tweens, easing, staggers, defaults and matchMedia, and when to choose GSAP over CSS animations or other JavaScript animation libraries.

    16k GitHub starsUsed in 4 repos~3.7k tokens
    Frontend & DesignAuto-check passed
  • Web Animation Design

    baptisteArno/typebot.io

    Guides easing, timing and animation choices for UI motion, based on a web animation course, and reviews existing animations in a before-and-after table.

    11k GitHub starsUsed in 2 repos~2.7k tokens
    Frontend & DesignAuto-check passed
  • GSAP in Vue, Nuxt and Svelte

    greensock/gsap-skills

    Shows how to use GSAP in Vue, Nuxt, Svelte and other lifecycle-based frameworks: create after mount, scope selectors to the component, and revert on unmount.

    16k GitHub starsUsed in 4 repos~2.6k tokens
    Frontend & DesignAuto-check passed

More from ibelick/ui-skills

  • Accessibility Fixer

    ibelick/ui-skills

    Audits and fixes HTML accessibility problems such as ARIA labels, keyboard navigation, focus management, contrast and form errors with minimal changes.

    9.5k GitHub starsUsed in 4 repos~1.2k tokens
    Auto-check passed
  • Baseline UI

    ibelick/ui-skills

    Applies a fixed set of UI rules for stack, components, interaction, animation, typography and layout, or reviews a file against them with concrete fixes.

    9.5k GitHub starsUsed in 8 repos~855 tokens
    Auto-check passed
  • Audits one product surface against its own design evidence and writes self-contained implementation plans for another agent, without touching product source.

    9.5k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • HTML Metadata Fixer

    ibelick/ui-skills

    Audits and fixes page titles, meta descriptions, canonical URLs, Open Graph and Twitter cards, favicons, JSON-LD and robots directives.

    9.5k GitHub starsUsed in 2 repos~1.1k tokens
    Auto-check passed
  • DESIGN.md Creator

    ibelick/ui-skills

    Writes or updates a DESIGN.md for one product from its repository or a public URL, recording the design language and tokens that the evidence supports.

    9.5k GitHub stars~4k tokensUpdated yesterday
    Auto-check passed
  • UI Skills Router

    ibelick/ui-skills

    Routes UI tasks to the smallest useful set of UI Skills through the ui-skills CLI, picking a category and loading at most three skills before implementing.

    9.5k GitHub starsUsed in 2 repos~362 tokens
    Auto-check passed

Works with

Questions about Fixing Motion Performance

What does Fixing Motion Performance do?

Audits and fixes web animation performance: layout thrashing, work that belongs on the compositor, scroll-linked motion and costly blur effects. The skill audits and fixes animation performance problems in web UIs: layout thrashing, work that should run on the compositor, scroll-linked motion and expensive blur effects. Invoked alone it applies its rules to any animation work in the conversation; pointed at a file it reports each violation with the exact line, a one-sentence reason it matters and a concrete code-level fix.

When should I use Fixing Motion Performance?

Fixing Motion Performance fits situations like: fixing animations that stutter or transitions that jank; reviewing CSS or JavaScript animation code for layout thrashing; implementing scroll-linked or reveal-on-scroll motion without scroll event handlers; checking will-change, transform and measurement use in components.

How do I install Fixing Motion Performance in Claude Code?

Run `npx skills add ibelick/ui-skills --skill fixing-motion-performance -a claude-code`. Or copy the skill folder (skills/fixing-motion-performance in ibelick/ui-skills) into .claude/skills/fixing-motion-performance in your project. Claude Code loads it when a task matches its description.

How do I install Fixing Motion Performance in Codex?

Run `npx skills add ibelick/ui-skills --skill fixing-motion-performance -a codex`. Or copy the skill folder (skills/fixing-motion-performance in ibelick/ui-skills) into .agents/skills/fixing-motion-performance in your project. Codex loads it when a task matches its description.

Can I use Fixing Motion Performance in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ibelick/ui-skills --skill fixing-motion-performance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fixing-motion-performance, .gemini/skills/fixing-motion-performance, .github/skills/fixing-motion-performance and .opencode/skills/fixing-motion-performance in your project.

What does Fixing Motion Performance need to run?

SKILL.md names no scripts, command-line tools or credentials: Fixing Motion Performance is instructions for the agent only.

Does Fixing Motion Performance access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Fixing Motion Performance safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Fixing Motion Performance use?

Fixing Motion Performance is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fixing Motion Performance use?

About 1.4k tokens (SKILL.md is roughly 5.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Fixing Motion Performance?

Skills that share tags, products or a category with Fixing Motion Performance: GSAP Performance Tuning (greensock/gsap-skills, 16k stars), Phantom Motion (pixelxzen/phantom-motion, 185 stars), GSAP ScrollTrigger (greensock/gsap-skills, 16k stars) and GSAP Core Animation (greensock/gsap-skills, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fixing Motion Performance?

ibelick (a GitHub user) maintains it in ibelick/ui-skills, which has 9,476 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.

Source: ibelick/ui-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.