Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
ibelick avatar

Fixing Motion Performance

  • 19.4k installs
  • 6.6k repo stars
  • Updated July 27, 2026
  • ibelick/ui-skills

fixing-motion-performance is a performance optimization skill for auditing and fixing CSS/JavaScript animation issues.

About

Audit and fix animation performance issues including layout thrashing, scroll-linked motion, blur effects, and compositor properties. Reference this when CSS and JavaScript animations stutter or transitions jank in web applications.

  • 9 rule categories from critical never-patterns to view transitions priority
  • Performance checklist: avoid layout thrashing, use transform/opacity, batch DOM reads, manage blur effects

Fixing Motion Performance by the numbers

  • 19,404 all-time installs (skills.sh)
  • +457 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #30 of 2,277 Frontend Development skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

fixing-motion-performance capabilities & compatibility

Capabilities
animation auditing · performance analysis · rendering optimization
From the docs

What fixing-motion-performance says it does

Audit and fix animation performance issues including layout thrashing, compositor properties, scroll-linked motion
SKILL.md
npx skills add https://github.com/ibelick/ui-skills --skill fixing-motion-performance

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs19.4k
repo stars6.6k
Security audit3 / 3 scanners passed
Last updatedJuly 27, 2026
Repositoryibelick/ui-skills

How do you fix CSS animation jank and layout thrashing?

debugging

Who is it for?

Frontend developers optimizing janky animations, scroll-linked motion, or transitions in web applications

Skip if: Backend performance tuning or teams planning a full migration to a different motion library instead of fixing existing code.

When should I use this skill?

Animations stutter, transitions jank, or reviewing animation performance

What you get

Per-file violation report with quoted snippets, impact notes, and code-level animation performance fixes

  • Animation violation report
  • Code-level performance fixes
  • Quoted line-level findings

By the numbers

  • 9 rule categories with explicit priority levels
  • 3 rendering steps: composite (transform, opacity), paint (color, filters), layout (size, position)

Files

SKILL.mdMarkdownGitHub ↗

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

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

/* 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(); }
// 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

Related skills

Forks & variants (2)

Fixing Motion Performance has 2 known copies in the catalog totaling 198 installs. They canonicalize to this original listing.

FAQ

What issues does fixing-motion-performance check?

fixing-motion-performance audits layout thrashing, compositor property usage, scroll-linked motion, and blur effects in CSS and JavaScript animations. Each violation includes a quoted snippet, impact note, and concrete fix.

Does fixing-motion-performance require changing animation libraries?

fixing-motion-performance explicitly avoids migrating animation libraries. The skill applies in-conversation constraints or reviews a named file via /fixing-motion-performance to fix performance in existing code.

Is Fixing Motion Performance safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.