Agent skill

Auto Animate

by secondsky in secondsky/claude-skills

AutoAnimate (@formkit/auto-animate) zero-config animations for React.

MITAuto-check passedTesting & QA

Install Auto Animate

skills CLI
$ npx skills add secondsky/claude-skills --skill auto-animate -a claude-code

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

GitHub CLI
$ gh skill install secondsky/claude-skills auto-animate --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/secondsky/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/auto-animate/skills/auto-animate .claude/skills/auto-animate && 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
auto-animate
GitHub stars
227
Token cost
~2.9k tokens
SKILL.md length
959 words
Files
15 (incl. scripts, references, assets)
Skills in repo
169
Repo updated
First seen
Licence
MIT

At a glance

AutoAnimate (@formkit/auto-animate) zero-config animations for React.

  • Works in 3 steps: Install AutoAnimate → Add to Your Component → Use in Production (SSR-Safe)
  • List transitions
  • SKILL.md covers Quick Start (2 Minutes), Known Issues Prevention, When to Use AutoAnimate vs… and Critical Rules, plus 5 more sections
  • Runs Shell scripts from its folder; calls bun

What it does

Auto Animate is an agent skill from secondsky/claude-skills. AutoAnimate (@formkit/auto-animate) zero-config animations for React. Use for list transitions, accordions, toasts, or encountering SSR errors, animation libraries complexity.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including scripts, reference files and assets (for example `references/auto-animate-vs-motion.md`, `references/css-conflicts.md` and `references/example-reference.md`).

It sits in Testing & QA. It works with React and Jest. The repository describes itself as: Production-ready skills for Claude Code CLI - Cloudflare, React, Tailwind v4, and AI integrations. The licence is MIT.

When your agent uses it

  • List transitions
  • Encountering SSR errors
  • Animation libraries complexity

Example prompts

  • “/auto-animate”

Requirements

  • Node.js
  • A Bash shell

Workflow steps

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

  1. Install AutoAnimate
  2. Add to Your Component
  3. Use in Production (SSR-Safe)

What it can do on your machine

Read from SKILL.md and the folder at commit 8837836. 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

    Ships 2 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bun

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

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • auto-animate.formkit.com
    • npmjs.com

    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

Auto Animate loads about 2.9k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 47 tokens; SKILL.md has 959 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

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); the scripts in this folder are not scanned.

SKILL.md

The full file from secondsky/claude-skills at commit 8837836, republished under its MIT licence (© secondsky). 959 words, ~2,887 tokens.

Download SKILL.mdSave it as .claude/skills/auto-animate/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.
name
auto-animate
description
AutoAnimate (@formkit/auto-animate) zero-config animations for React. Use for list transitions, accordions, toasts, or encountering SSR errors, animation libraries complexity.
metadata.keywords
auto-animate, @formkit/auto-animate, formkit, zero-config animation, automatic animations, drop-in animation, list animations, accordion animation, toast…
license
MIT

AutoAnimate

Status: Production Ready ✅ Last Updated: 2026-08-03 Dependencies: None (works with any React setup) Latest Versions: @formkit/auto-animate@0.10.0


Quick Start (2 Minutes)

1. Install AutoAnimate
bash
bun add @formkit/auto-animate

Why this matters:

  • Only 3.28 KB gzipped (vs 22 KB for Motion)
  • Zero dependencies
  • Framework-agnostic (React, Vue, Svelte, vanilla JS)
2. Add to Your Component
tsx
import { useAutoAnimate } from "@formkit/auto-animate/react";

export function MyList() {
  const [parent] = useAutoAnimate(); // 1. Get ref

  return (
    <ul ref={parent}> {/* 2. Attach to parent */}
      {items.map(item => (
        <li key={item.id}>{item.text}</li> {/* 3. That's it! */}
      ))}
    </ul>
  );
}

CRITICAL:

  • ✅ Always use unique, stable keys for list items
  • ✅ Parent element must always be rendered (not conditional)
  • ✅ AutoAnimate respects prefers-reduced-motion automatically
  • ✅ Works on add, remove, AND reorder operations
3. Use in Production (SSR-Safe)

For Cloudflare Workers or Next.js:

tsx
// Use client-only import to prevent SSR errors
import { useState, useEffect } from "react";

export function useAutoAnimateSafe<T extends HTMLElement>() {
  const [parent, setParent] = useState<T | null>(null);

  useEffect(() => {
    if (typeof window !== "undefined" && parent) {
      import("@formkit/auto-animate").then(({ default: autoAnimate }) => {
        autoAnimate(parent);
      });
    }
  }, [parent]);

  return [parent, setParent] as const;
}

Known Issues Prevention

This skill prevents 10+ documented issues:

Issue #1: SSR/Next.js Import Errors

Error: "Can't import the named export 'useEffect' from non EcmaScript module" Source: https://github.com/formkit/auto-animate/issues/55 Why It Happens: AutoAnimate uses DOM APIs not available on server Prevention: Use dynamic imports (see templates/vite-ssr-safe.tsx)

Issue #2: Conditional Parent Rendering

Error: Animations don't work when parent is conditional Source: https://github.com/formkit/auto-animate/issues/8 Why It Happens: Ref can't attach to non-existent element Prevention:

tsx
// ❌ Wrong
{showList && <ul ref={parent}>...</ul>}

// ✅ Correct
<ul ref={parent}>{showList && items.map(...)}</ul>
Issue #3: Missing Unique Keys

Error: Items don't animate correctly or flash Source: Official docs Why It Happens: React can't track which items changed Prevention: Always use unique, stable keys (key={item.id})

Issue #4: Flexbox Width Issues

Error: Elements snap to width instead of animating smoothly Source: Official docs Why It Happens: flex-grow: 1 waits for surrounding content Prevention: Use explicit width instead of flex-grow for animated elements

Issue #5: Table Row Display Issues

Error: Table structure breaks when removing rows Source: https://github.com/formkit/auto-animate/issues/7 Why It Happens: Display: table-row conflicts with animations Prevention: Apply to <tbody> instead of individual rows, or use div-based layouts

Issue #6: Jest Testing Errors

Error: "Cannot find module '@formkit/auto-animate/react'" Source: https://github.com/formkit/auto-animate/issues/29 Why It Happens: Jest doesn't resolve ESM exports correctly Prevention: Configure moduleNameMapper in jest.config.js

Issue #7: esbuild Compatibility

Error: "Path '.' not exported by package" Source: https://github.com/formkit/auto-animate/issues/36 Why It Happens: ESM/CommonJS condition mismatch Prevention: Configure esbuild to handle ESM modules properly

Issue #8: CSS Position Side Effects

Error: Layout breaks after adding AutoAnimate Source: Official docs Why It Happens: Parent automatically gets position: relative Prevention: Account for position change in CSS or set explicitly

Issue #9: Vue/Nuxt Registration Errors

Error: "Failed to resolve directive: auto-animate" Source: https://github.com/formkit/auto-animate/issues/43 Why It Happens: Plugin not registered correctly Prevention: Proper plugin setup in Vue/Nuxt config (see references/)

Issue #10: Angular ESM Issues

Error: Build fails with "ESM-only package" Source: https://github.com/formkit/auto-animate/issues/72 Why It Happens: CommonJS build environment Prevention: Configure ng-packagr for Angular Package Format


When to Use AutoAnimate vs Motion

Use AutoAnimate When:
  • ✅ Simple list transitions (add/remove/sort)
  • ✅ Accordion expand/collapse
  • ✅ Toast notifications fade in/out
  • ✅ Form validation messages appear/disappear
  • ✅ Zero configuration preferred
  • ✅ Small bundle size critical (3.28 KB)
  • ✅ Applying to existing/3rd-party code
  • ✅ "Good enough" animations acceptable
Use Motion When:
  • ✅ Complex choreographed animations
  • ✅ Gesture controls (drag, swipe, hover)
  • ✅ Scroll-based animations
  • ✅ Spring physics animations
  • ✅ SVG path animations
  • ✅ Keyframe control needed
  • ✅ Animation variants/orchestration
  • ✅ Custom easing curves

Rule of Thumb: Use AutoAnimate for 90% of cases, Motion for hero/interactive animations.


Critical Rules

Always Do

✅ Use unique, stable keys - key={item.id} not key={index} ✅ Keep parent in DOM - Parent ref element always rendered ✅ Client-only for SSR - Dynamic import for server environments ✅ Respect accessibility - Keep disrespectUserMotionPreference: false ✅ Test with motion disabled - Verify UI works without animations ✅ Use explicit width - Avoid flex-grow on animated elements ✅ Apply to tbody for tables - Not individual rows

Never Do

❌ Conditional parent - {show && <ul ref={parent}>} ❌ Index as key - key={index} breaks animations ❌ Ignore SSR - Will break in Cloudflare Workers/Next.js ❌ Force animations - disrespectUserMotionPreference: true breaks accessibility ❌ Animate tables directly - Use tbody or div-based layout ❌ Skip unique keys - Required for proper animation ❌ Complex animations - Use Motion instead


Show full SKILL.md (377 more words)Show less

Configuration

AutoAnimate is zero-config by default. Optional customization:

tsx
import { useAutoAnimate } from "@formkit/auto-animate/react";

const [parent] = useAutoAnimate({
  duration: 250, // milliseconds (default: 250)
  easing: "ease-in-out", // CSS easing (default: "ease-in-out")
  // disrespectUserMotionPreference: false, // Keep false!
});

Recommendation: Use defaults unless you have specific design requirements.


Using Bundled Resources

Templates (templates/)

Copy-paste ready examples:

  • react-basic.tsx - Simple list with add/remove/shuffle
  • react-typescript.tsx - Typed setup with custom config
  • filter-sort-list.tsx - Animated filtering and sorting
  • accordion.tsx - Expandable sections
  • toast-notifications.tsx - Fade in/out messages
  • form-validation.tsx - Error messages animation
  • vite-ssr-safe.tsx - Cloudflare Workers/SSR pattern
References (references/)
  • auto-animate-vs-motion.md - Decision guide for which to use
  • css-conflicts.md - Flexbox, table, and position gotchas
  • ssr-patterns.md - Next.js, Nuxt, Workers workarounds
Scripts (scripts/)
  • init-auto-animate.sh - Automated setup script

Cloudflare Workers Compatibility

AutoAnimate works perfectly with Cloudflare Workers Static Assets:

✅ Client-side only - Runs in browser, not Worker runtime ✅ No Node.js deps - Pure browser code ✅ Edge-friendly - 3.28 KB gzipped ✅ SSR-safe - Use dynamic imports (see templates/)

Vite Config:

typescript
export default defineConfig({
  plugins: [react(), cloudflare()],
  ssr: {
    external: ["@formkit/auto-animate"],
  },
});

Accessibility

AutoAnimate respects prefers-reduced-motion automatically:

css
/* User's system preference */
@media (prefers-reduced-motion: reduce) {
  /* AutoAnimate disables animations automatically */
}

Critical: Never set disrespectUserMotionPreference: true - this breaks accessibility.


Official Documentation


Package Versions (Verified 2026-08-03)

json
{
  "dependencies": {
    "@formkit/auto-animate": "^0.10.0"
  },
  "devDependencies": {
    "react": "^19.2.0",
    "vite": "^7.3.0"
  }
}

Production Example

This skill is based on production testing:

  • Bundle Size: 3.28 KB gzipped
  • Setup Time: 2 minutes (vs 15 min with Motion)
  • Errors: 0 (all 10 known issues prevented)
  • Validation: ✅ Works with Vite, Tailwind v4, Cloudflare Workers, React 19

Tested Scenarios:

  • ✅ Filter/sort lists
  • ✅ Accordion components
  • ✅ Toast notifications
  • ✅ Form validation messages
  • ✅ SSR/Cloudflare Workers
  • ✅ Accessibility (prefers-reduced-motion)

Troubleshooting

Problem: Animations not working

Solution: Check these common issues:

  1. Is parent element always in DOM? (not conditional)
  2. Do items have unique, stable keys?
  3. Is ref attached to immediate parent of animated children?
Problem: SSR/Next.js errors

Solution: Use dynamic import:

tsx
useEffect(() => {
  if (typeof window !== "undefined") {
    import("@formkit/auto-animate").then(({ default: autoAnimate }) => {
      autoAnimate(parent);
    });
  }
}, [parent]);
Problem: Items flash instead of animating

Solution: Add unique keys: key={item.id} not key={index}

Problem: Flexbox width issues

Solution: Use explicit width instead of flex-grow: 1

Problem: Table rows don't animate

Solution: Apply ref to <tbody>, not individual <tr> elements


Complete Setup Checklist

  • Installed @formkit/auto-animate@0.10.0
  • Using React 19+ (or Vue/Svelte)
  • Added ref to parent element
  • Parent element always rendered (not conditional)
  • List items have unique, stable keys
  • Tested with prefers-reduced-motion
  • SSR-safe if using Cloudflare Workers/Next.js
  • No flexbox width issues
  • Dev server runs without errors
  • Production build succeeds

Questions? Issues?

  1. Check templates/ for working examples
  2. Check references/auto-animate-vs-motion.md for library comparison
  3. Check references/ssr-patterns.md for SSR workarounds
  4. Check official docs: https://auto-animate.formkit.com
  5. Check GitHub issues: https://github.com/formkit/auto-animate/issues

Production Ready? ✅ Yes - 13.6k stars, actively maintained, zero dependencies.

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

Files

SKILL.md and 14 other files (scripts, references, assets) in plugins/auto-animate/skills/auto-animate of secondsky/claude-skills.

  • SKILL.md
  • assets/example-template.txt
  • references/auto-animate-vs-motion.md
  • references/css-conflicts.md
  • references/example-reference.md
  • references/ssr-patterns.md
  • scripts/example-script.sh
  • scripts/init-auto-animate.sh
  • templates/accordion.tsx
  • templates/filter-sort-list.tsx
  • templates/form-validation.tsx
  • templates/react-basic.tsx
  • templates/react-typescript.tsx
  • templates/toast-notifications.tsx
  • templates/vite-ssr-safe.tsx

Open the folder on GitHubat commit 8837836

Compare with similar skills

Auto Animate 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.

Auto Animate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Auto Animate this skillsecondsky/claude-skills227—~2.9kAutomated safety check: PassMIT
React Testinggetsentry/sentry45k—~2.2kAutomated safety check: PassCustom licence
React Testingaffaan-m/ECC274k1 repos~3.3kAutomated safety check: PassMIT
React TestingHoangNguyen0403/agent-skills-standard570—~1.3kAutomated safety check: PassMIT
Typescript Rulessoftspark/ai-toolkit179—~2.7kAutomated safety check: NotesApache-2.0
Data Client React Testingreactive/data-client2k—~1.5kAutomated safety check: PassApache-2.0

Similar skills

  • React Testing

    getsentry/sentry

    Official

    Write and review React/TypeScript tests for Sentry's frontend using Jest and React Testing Library.

    45k GitHub stars~2.2k tokensUpdated today
    Testing & QAAuto-check passed
  • React Testing

    affaan-m/ECC

    React component testing with React Testing Library, Vitest/Jest, MSW for network mocking, accessibility assertions with axe, and the decision boundary between component tests and Playwright/Cypress…

    274k GitHub starsUsed in 1 repo~3.3k tokens
    Testing & QAAuto-check passed
  • React Testing

    HoangNguyen0403/agent-skills-standard

    Test React components with RTL and Jest/Vitest. An agent skill from HoangNguyen0403/agent-skills-standard.

    570 GitHub stars~1.3k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Typescript Rules

    softspark/ai-toolkit

    TypeScript/JavaScript coding rules: style, patterns, security, testing.

    179 GitHub stars~2.7k tokensUpdated today
    Testing & QAAuto-check: notes
  • Data Client React Testing

    reactive/data-client

    Test @data-client/react with renderDataHook and mountDataClient - jest unit tests, fixtures, interceptors, MockResolver, mock responses, nock HTTP mocking, fake timers for polling/subscription…

    2k GitHub stars~1.5k tokensUpdated today
    Testing & QAAuto-check passed
  • Unit Tests

    Khan/wonder-blocks

    Jest + React Testing Library best practices for Wonder Blocks unit tests.

    163 GitHub stars~4.2k tokensUpdated today
    Testing & QAAuto-check passed

More from secondsky/claude-skills

All 169 skills in this repo
  • Tanstack AI

    secondsky/claude-skills

    TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama.

    227 GitHub starsUsed in 1 repo~3.6k tokens
    Auto-check: notes
  • Base UI React

    secondsky/claude-skills

    MUI Base UI unstyled React components with Floating UI. An agent skill from secondsky/claude-skills.

    227 GitHub stars~1.9k tokensUpdated 9 days ago
    Auto-check passed
  • Cloudflare Images

    secondsky/claude-skills

    This skill should be used when the user asks to "upload images to Cloudflare", "implement direct creator upload", "configure image transformations", "optimize WebP/AVIF", "create image variants"…

    227 GitHub stars~3.6k tokensUpdated 9 days ago
    Auto-check: notes
  • Cloudflare Nextjs

    secondsky/claude-skills

    Deploy Next.js to Cloudflare Workers via the OpenNext adapter (@opennextjs/cloudflare).

    227 GitHub stars~5.3k tokensUpdated 9 days ago
    Auto-check: notes
  • Cloudflare Sandbox

    secondsky/claude-skills

    Cloudflare Sandboxes SDK for secure code execution in Linux containers at edge.

    227 GitHub stars~4.5k tokensUpdated 9 days ago
    Auto-check passed
  • GitHub Project Automation

    secondsky/claude-skills

    GitHub repository automation (CI/CD, issue templates, Dependabot, CodeQL).

    227 GitHub stars~4k tokensUpdated 9 days ago
    Auto-check: notes

Works with

Questions about Auto Animate

What does Auto Animate do?

AutoAnimate (@formkit/auto-animate) zero-config animations for React. Auto Animate is an agent skill from secondsky/claude-skills. AutoAnimate (@formkit/auto-animate) zero-config animations for React.

When should I use Auto Animate?

Auto Animate fits situations like: list transitions; encountering SSR errors; animation libraries complexity.

How do I install Auto Animate in Claude Code?

Run `npx skills add secondsky/claude-skills --skill auto-animate -a claude-code`. Or copy the skill folder (plugins/auto-animate/skills/auto-animate in secondsky/claude-skills) into .claude/skills/auto-animate in your project. Claude Code loads it when a task matches its description.

How do I install Auto Animate in Codex?

Run `npx skills add secondsky/claude-skills --skill auto-animate -a codex`. Or copy the skill folder (plugins/auto-animate/skills/auto-animate in secondsky/claude-skills) into .agents/skills/auto-animate in your project. Codex loads it when a task matches its description.

Can I use Auto Animate 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 secondsky/claude-skills --skill auto-animate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/auto-animate, .gemini/skills/auto-animate, .github/skills/auto-animate and .opencode/skills/auto-animate in your project.

What does Auto Animate need to run?

Going by SKILL.md and its folder, Auto Animate needs a shell for the scripts in its folder and the command-line tools its instructions call (bun). Our summary lists: Node.js; A Bash shell.

Does Auto Animate access the network?

SKILL.md names 3 domains. As links in the text: github.com, auto-animate.formkit.com and npmjs.com. This is read from the text; nothing was executed.

Is Auto Animate 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Auto Animate use?

Auto Animate is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Auto Animate use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.2k tokens, read only when the agent opens those files.

What are the alternatives to Auto Animate?

Skills that share tags, products or a category with Auto Animate: React Testing (getsentry/sentry, 45k stars), React Testing (affaan-m/ECC, 274k stars), React Testing (HoangNguyen0403/agent-skills-standard, 570 stars) and Typescript Rules (softspark/ai-toolkit, 179 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Auto Animate?

secondsky (a GitHub user) maintains it in secondsky/claude-skills, which has 227 GitHub stars. The repository holds 169 skills in this directory. The repository was last updated on September 28, 2026.

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