auto-animate
Skill1 starsChanged 8 days agoMITView on GitHub
Audit how a codebase uses FormKit AutoAnimate and report what hurts or breaks: it is a ~2KB WAAPI wrapper, so almost all problems are about where it's pointed — huge lists it was never designed to animate, scroll containers, root containers, and anchoring around direct-children and layout-measure assumptions. Report with evidence, agree a plan, only then touch code. The script runs for leads, then read the code. Load only what applies: What the script can't see (you need to eyeball):
1 other project uses a version of this.
Adopted by
Most recently taken up by
- davidanthonyn/claude-skillstheir own version, first seen Oct 20, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- davidanthonyn/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository44 other files it gives its agents.
- AGENTS.mdAGENTS.md
- architecture-optimizerSkill
- csharp-optimizerSkill
- cpp-optimizerSkill
- c-optimizerSkill
- go-optimizerSkill
- node-service-optimizerSkill
- ruby-optimizerSkill
- rust-optimizerSkill
- docker-optimizerSkill
- kubernetes-optimizerSkill
- terraform-optimizerSkill
- animate-cssSkill
- animejsSkill
- gsapSkill
- lenisSkill
- magicuiSkill
- motionSkill
- react-moveSkill
- react-springSkill
- react-three-fiberSkill
- theatrejsSkill
- threejsSkill
- optimizer-routerSkill
- bootstrap-optimizerSkill
- pandacss-optimizerSkill
- sass-scss-optimizerSkill
- stylex-optimizerSkill
- tailwindcss-optimizerSkill
- twind-optimizerSkill
- unocss-optimizerSkill
- vanilla-extract-optimizerSkill
- angular-optimizerSkill
- astro-optimizerSkill
- ui-components-optimizerSkill
- nextjsSkill
- node-optimizerSkill
- nuxt-optimizerSkill
- react-optimizerSkill
- remix-optimizerSkill
- solid-optimizerSkill
- svelte-optimizerSkill
- tanstack-start-optimizerSkill
- vue-optimizerSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 15
Run python <skill-dir>/scripts/audit.py <project-root> [--json] — finds dependency/auto-animate import mismatch, useAutoAnimate files, …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
name: auto-animate-optimizer description: Audit and optimize @formkit/auto-animate (FormKit AutoAnimate) usage in React/Vue/web codebases — where the tiny wrapper helps vs hurts (large rendered lists, scroll containers, nested refs, root containers, CSS-measure gotchas), correct imperative API and React hook patterns (enable/disable, durations), WAAPI/exit-animation behavior, and virtualization conflicts. Takes a report-first, approve-before-edit workflow like the other optimizer skills. Use whenever the user mentions auto-animate, @formkit/auto-animate, useAutoAnimate, v-auto-animate, "list animations in React/Vue", or EntAnim issues about auto-animate -- even if they don't say the word "optimize".
AutoAnimate Optimizer
Audit how a codebase uses FormKit AutoAnimate and report what hurts or breaks: it is a ~2KB WAAPI wrapper, so almost all problems are about where it's pointed — huge lists it was never designed to animate, scroll containers, root containers, and anchoring around direct-children and layout-measure assumptions. Report with evidence, agree a plan, only then touch code.
Workflow
1. Scope (quick)
- Find the project root (
package.jsonwith@formkit/auto-animate). The lib is framework-agnostic: React (useAutoAnimate), Vue (v-auto-animatedirective), and a plainautoAnimate()helper all exist; the audit detects which are in play. - Run
python <skill-dir>/scripts/audit.py <project-root> [--json]— finds dependency/auto-animateimport mismatch, useAutoAnimate files, list-alabus patterns that are risky (big.map()s under a ref'd parent, nested wrappers, possible scroll containers, inlinedisplay: grid), and missing options (duration/easing/enable toggles) worth mentioning.
2. Audit
The script runs for leads, then read the code. Load only what applies:
| Area | Reference |
| Correct usage — React hook, Vue directive, plain helper and options | references/api-usage.md |
| Cost model — big lists, virtualization conflicts, scroll containers | references/lists-perf.md |
| Common misuses and cleanups — root wrappers, nested refs, SSR, cleanup | references/misuses.md |
What the script can't see (you need to eyeball):
- The DOM's timing — the element the ref is on, and whether its direct children are what the user thinks they animate; AutoAnimate's contract is direct children, not all descendants.
- How often children change (data mutations, reorder, virtualization re-mounts?). AutoAnimate reacts to every mutation of direct children — the wrong target means measuring/animating constantly.
- Whether it's worth the animation at all (list protocol animation, or noise the user wants dropped).
Mark findings Confirmed or Suspected exactly like the other optimizer skills.
3. Report
Fill in assets/report-template.md, save as AUTO_ANIMATE_REPORT.md in the project root. Keep it scannable: summary, findings table, per-finding evidence/fix/risk.
4. Plan — stop for approval
Short plan; wait for an explicit "go". Typical ordering:
- Quick wins — correct hook/directive usage (enable/disable, single ref per parent), removing unused dependency or duplicate wrappers.
- Structural — remove AutoAnimate from big or virtualized lists (choose: animate λ-summary items, or no animation or CSS-only for the top few), fix scroll-container cases (
overflow-y-autoparents or the docs' recommended wrappers), duration/easing polish. - Optional — replacing AutoAnimate with vanilla CSS transitions/
@starting-stylefor trivial enter-only cases; grouping nested refs. Each item lists files, expected effect, how to verify, rollback. Let the user drop or reorder.
5. Fix
Only approved items. AutoAnimate edits are almost always small: be surgical, verify in the app (dev or a test page), check that adding and removing the ref still leaves DOM untouched — that is, no leftover position: absolute from an abandoned exit animation (this is the classic "animation broke my render" symptom; see references/misuses.md).
6. Verify and wrap up
- Exercise the enter/update/remove routes in the app; verify smoothness on a long-ish list in DevTools.
- Confirm no leftover absolute positioning, and that animations stop entirely when items are disabled (for an enable toggle).
- List what you couldn't verify at runtime and what's deferred; one suggested next step.
Principles
- Right tool, right size. AutoAnimate is for small direct-child lists; performance problems usually mean the list is too big or dynamic, not the lib. Propose structural fixes, don't blame the 2KB wrapper.
- Direct children only. Point the ref at the true parent of the changing children; nested parents hide repeated measurement and odd behaviors.
- Don't fight virtualization. Virtualized lists mount/unmount constantly — animations re-fire per row on virtualization scroll; AutoAnimate + virtualiz lists in the same tree are an anti-pattern unless carefully segmented.
- Every animation has a reason. AutoAnimate's zero-config is friendly to over-animation; in the report, group animations and cut the ones that don't serve UI clarity (docs' own "do I need animation?" guidance).
- Package cost is uncomplicated; runtime cost is not. The 2KB is never the issue — reflows and layout thrash from measurement are; measure on the real list if the app is slow, don't estimate.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

