npx skills add https://github.com/ibelick/ui-skills --skill fixing-motion-performanceHow Fixing Motion Performance fits into a Paperclip company.
Fixing Motion Performance drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.
Pre-configured AI company — 18 agents, 18 skills, one-time purchase.
SKILL.md151 linesExpandCollapse
---name: fixing-motion-performancedescription: 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 | priority | category | impact ||----------|----------|--------|| 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 | ## 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 ```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 thrashel.style.left = el.getBoundingClientRect().left + 10 + 'px';// after — measure once, animate via transformconst 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 theoryBaseline Ui
Baseline UI is a code skill that enforces design and accessibility constraints for Tailwind CSS projects to prevent common UI quality issues. It validates anima
Fixing Accessibility
The fixing-accessibility skill audits and fixes HTML accessibility issues across ARIA labels, keyboard navigation, focus management, color contrast, and form va
Fixing Metadata
The skill audits and fixes HTML metadata across a website, including page titles, meta descriptions, canonical URLs, Open Graph tags, Twitter cards, favicons, a