About performance
performance is a design skill for diagnosing and improving UI speed and stability, with attention to how slow or janky interfaces affect accessibility. It provides loading, layout-shift, and animation guidance against Core Web Vitals budgets.
Key features
- 01Measure LCP, INP, and CLS targets
- 02Prioritize and split loading work
- 03Prevent layout shifts with reserved space
- 04Use compositor-friendly animations
- 05Respect reduced-motion preferences
Use cases
- 01Diagnose Core Web Vitals on mobile profiles
- 02Reduce shifts during page loading
- 03Improve interaction responsiveness on slow devices
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ plugin87/ ux-ui-agent-skills --skill performanceAfter installing, type/performancein Claude Code to confirm it loaded.
Details
From the project READMESkill: Performance
Step 0: is the kit here? This skill reads files from the kit. Check once:
ls ${CLAUDE_SKILL_DIR}/../../../tokens >/dev/null 2>&1 && echo KIT_OK || echo KIT_MISSINGOnKIT_MISSINGonly the skill folders were installed, which is whatnpx skills adddoes. Say so plainly, point the user atnpx ux-ui-agent-skills initor the plugin install, and stop. Do not guess the contents of a file you could not open.
Make the UI fast and stable. Treat performance as an accessibility concern: slow/janky UIs fail low-end devices first.
Steps
- Read
${CLAUDE_SKILL_DIR}/../../../workflows/performance.md(Core Web Vitals targets, loading strategy, layout-shift, animation perf, design-system runtime cost). - Diagnose against budgets: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1. Measure on a mid-tier mobile profile (throttle slow 4G + 4× CPU).
- Loading: render above-fold first (SSR/Server Components), code-split by route + heavy widget, lazy-load below-fold/behind-interaction (Astro islands / Qwik), preload one critical font weight, modern responsive images.
- Kill layout shift: size skeletons to final dimensions, reserve media space via
aspect-ratio(${CLAUDE_SKILL_DIR}/../../../tokens/sizing.json), never inject content above existing. - Animation: only
transform/opacity,will-changesparingly, 100-300ms (${CLAUDE_SKILL_DIR}/../../../tokens/motion.json), honorprefers-reduced-motion. Prefer CSS state styling over JS for low INP; tree-shake/per-component imports.
Verification (definition of done)
- Lighthouse / field data meets LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1 on mid-tier mobile.
- First interaction stays responsive under slow-4G + 4× CPU throttle.
- Skeletons + media reserve space (zero CLS on load); no non-compositor animation in loops.