Not in the top 1,000 by GitHub stars

iart-ai/web-animation-skills

Web animation skills for Claude Code — GSAP, SVG, Lottie, micro-interactions, page transitions, and 60fps performance, installed straight into your agent.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/60fps-animation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

skills/accessible-animation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

skills/ascii-animation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

skills/glassmorphism/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

skills/gsap-web/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

skills/lottie-animation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

skills/micro-interaction/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

skills/page-transition-animation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

skills/svg-animation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

b6dba3eb7597 → b6dba3eb7597

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → b6dba3eb7597

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit b6dba3eb759726845a44163ff0bad70dd9e7fbb6

git clone --filter=blob:none --no-checkout https://github.com/iart-ai/web-animation-skills.git .hotskills/iart-ai-web-animation-skills && git -C .hotskills/iart-ai-web-animation-skills checkout --detach b6dba3eb759726845a44163ff0bad70dd9e7fbb6 # Copy each selected skill directory from .hotskills/iart-ai-web-animation-skills into .claude/skills/<skill-name>/
81GitHub stars
15stars in 7 days
9skills in this repository
0commits in 30 days

Heat

5.8
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 6, 202681

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

60fps-animation

When your agent uses it

This skill should be used when the user asks to "fix janky CSS animation", "make animation 60fps", "stop layout thrashing", "animate width/height/top/left smoothly", "convert animation to transform", "animate box-shadow performantly", "animate height auto", "FLIP animation", or "why is my scroll/hover animation choppy".

What it loads into context

Frontmatter

92 tokens

Always available to the agent

SKILL.md

2,678 tokens

When the skill is activated

Reference documents

1,820 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. When to use
  2. Core rule: animate only transform and opacity
  3. Cheap box-shadow via pseudo-element opacity
  4. FLIP: animate layout changes cheaply
  5. Animating height: auto
  6. Avoid layout thrashing (batch reads, then writes)
  7. will-change: use sparingly
  8. Deliver & verify (standalone HTML)
  9. Quick reference
  10. Gotchas
  11. Reference files

Scripts executed separately

  • ../../scripts/contact-sheet.sh
  • ../../scripts/seek-shot.sh

Files

  • ../../.claude-plugin/marketplace.jsonasset384 bytes
  • ../../.claude-plugin/plugin.jsonasset653 bytes
  • ../../scripts/README.mddoc2,028 bytes
  • ../../scripts/contact-sheet.shruns851 bytes
  • ../../scripts/seek-shot.shruns1,095 bytes
  • README.mddoc0 bytes
  • SKILL.mdcore10,774 bytes
  • SKILL.mdcore10,774 bytes
  • SKILL.mdcore10,774 bytes
  • SKILL.mdcore10,774 bytes
  • references/patterns-and-profiling.mddoc4,806 bytes
Read SKILL.md

# Performant Web Animation

Eliminate the #1 cause of janky web animation: animating properties that force the browser to recalculate layout (reflow) or repaint on every frame. The browser renders in stages — **layout → paint → composite**. Animating `width`, `height`, `top`, `left`, `margin`, `padding`, `box-shadow`, or `filter` re-runs layout and/or paint each frame, blocking the main thread. Animating **`transform`** and **`opacity`** runs entirely on the compositor (often the GPU), skipping layout and paint, which is what makes animation smooth at 60/120fps.

## When to use

Use when an animation stutters or drops frames, when a hover/scroll effect feels heavy, when animating size/position/shadow, when a layout change needs to animate smoothly (cards reordering, an element moving between containers), when animating `height: auto`, or when reviewing animation code for performance.

## Core rule: animate only transform and opacity

Map every "expensive" animation to a cheap equivalent.

| Animating (expensive) | Triggers | Replace with (cheap) |
|---|---|---|
View the complete source on GitHub

Skills included

  • 60fps-animation
  • accessible-animation
  • ascii-animation
  • glassmorphism
  • gsap-web
  • lottie-animation
  • micro-interaction
  • page-transition-animation
  • svg-animation

Repository facts

License
MIT
Created
Jun 22, 2026
Last pushed
Jun 22, 2026
Forks
11
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 31 notes
  • skills/60fps-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/60fps-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/60fps-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/accessible-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/accessible-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/accessible-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ascii-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ascii-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ascii-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ascii-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/glassmorphism/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/glassmorphism/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/glassmorphism/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gsap-web/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gsap-web/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gsap-web/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/lottie-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/lottie-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/lottie-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/lottie-animation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 55 signals by file

.claude-plugin/marketplace.json

  • Network accessline 3
    "owner": {     "name": "iart.ai",     "url": "https://iart.ai"
  • Network accessline 4
    "name": "iart.ai",     "url": "https://iart.ai"   },
  • Network accessline 5
    "url": "https://iart.ai"

.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "iart.ai",     "url": "https://iart.ai"
  • Network accessline 6
    "name": "iart.ai",     "url": "https://iart.ai"   },
  • Network accessline 7
    "url": "https://iart.ai"
  • Network accessline 8
    },   "homepage": "https://iart.ai",   "repository": "https://github.com/iart-ai/web-animation-skills",
  • Network accessline 9
    "homepage": "https://iart.ai",
  • Network accessline 10
    "repository": "https://github.com/iart-ai/web-animation-skills",

scripts/contact-sheet.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/seek-shot.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash

skills/60fps-animation/references/patterns-and-profiling.md

  • Network accessline 131
    --- Stay on transform and opacity, profile the jank away, and motion holds 60fps. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=60fps-animation)
  • Network accessline 132
    Stay on transform and opacity, profile the jank away, and motion holds 60fps. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=60fps-animation)** —

skills/accessible-animation/references/patterns.md

  • Network accessline 195
    --- Honor prefers-reduced-motion at every tier and motion stays inclusive by default. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=accessible-a
  • Network accessline 196
    Honor prefers-reduced-motion at every tier and motion stays inclusive by default. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=accessible-anima

skills/ascii-animation/references/rendering.md

  • Network accessline 193
    --- Map brightness to the right glyph ramp and the characters come alive. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=ascii-animation)** — the
  • Network accessline 194
    Map brightness to the right glyph ramp and the characters come alive. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=ascii-animation)** — the AI 

skills/ascii-animation/scripts/img-to-ascii.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/glassmorphism/references/glass-recipes.md

  • Network accessline 79
    opacity: 0.04;                       /* barely there */   mix-blend-mode: overlay;   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fra
  • Network accessline 80
    mix-blend-mode: overlay;   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filte
  • Network accessline 81
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' 
  • Network accessline 241
    --- Frosted glass that reads as glass — blur, edge light, and refraction, with a clean fallback. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=g
  • Network accessline 242
    Frosted glass that reads as glass — blur, edge light, and refraction, with a clean fallback. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=glass

skills/gsap-web/examples/hero-timeline.js

  • Executable scriptline 1
    Executable file

skills/gsap-web/examples/standalone-template.html

  • Network accessline 6
    <title>loading</title>   <!-- GSAP core from CDN — no build step. Add plugins the same way if needed:        https://cdnjs.cloudflare.com/ajax/libs/gsap/3.13.0/ScrollTrigger.min.js -->
  • Network accessline 7
    <!-- GSAP core from CDN — no build step. Add plugins the same way if needed:        https://cdnjs.cloudflare.com/ajax/libs/gsap/3.13.0/ScrollTrigger.min.js -->   <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.13.0/gsap.min.js"><
  • Network accessline 8
    https://cdnjs.cloudflare.com/ajax/libs/gsap/3.13.0/ScrollTrigger.min.js -->
  • Network accessline 9
    <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.13.0/gsap.min.js"></script>

skills/gsap-web/references/scrolltrigger-lenis.md

  • Network accessline 254
    --- Sync ScrollTrigger to smooth scroll and the timeline tracks the page perfectly. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=gsap-web)** — 
  • Network accessline 255
    Sync ScrollTrigger to smooth scroll and the timeline tracks the page perfectly. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=gsap-web)** — the 

skills/lottie-animation/references/integration-and-export.md

  • Network accessline 186
    const json = await fetch("/icon.json").then((r) => r.json());
  • Network accessline 232
    --- Export clean from After Effects and the dotLottie plays light everywhere. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=lottie-animation)** 
  • Network accessline 233
    Export clean from After Effects and the dotLottie plays light everywhere. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=lottie-animation)** — th

skills/micro-interaction/references/framer-motion-recipes.md

  • Network accessline 186
    --- Tune the timing and easing and a micro-interaction feels effortless. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=micro-interaction)** — th
  • Network accessline 187
    Tune the timing and easing and a micro-interaction feels effortless. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=micro-interaction)** — the AI

skills/page-transition-animation/references/full-examples.md

  • Network accessline 175
    --- Freeze the outgoing route and exit transitions finally fire as intended. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=page-transition-anima
  • Network accessline 176
    Freeze the outgoing route and exit transitions finally fire as intended. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=page-transition-animation

skills/svg-animation/references/svg-techniques.md

  • Network accessline 213
    --- Pick the right method per shape and SVG draws, morphs, and travels smoothly. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=svg-animation)** 
  • Network accessline 214
    Pick the right method per shape and SVG draws, morphs, and travels smoothly. Built by **[iart.ai](https://iart.ai/?utm_source=github&utm_medium=readme&utm_campaign=web-animation-skills&utm_content=skill_footer&utm_term=svg-animation)** — th

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 42 facts

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/60fps-animation/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/60fps-animation/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/60fps-animation/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/60fps-animation/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/60fps-animation/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.