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
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.
skills/accessible-animation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
b6dba3eb7597 → b6dba3eb7597
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.
skills/ascii-animation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
b6dba3eb7597 → b6dba3eb7597
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.
skills/glassmorphism/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
b6dba3eb7597 → b6dba3eb7597
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.
skills/gsap-web/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
b6dba3eb7597 → b6dba3eb7597
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.
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
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.
skills/micro-interaction/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
b6dba3eb7597 → b6dba3eb7597
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.
skills/page-transition-animation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
b6dba3eb7597 → b6dba3eb7597
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.
skills/svg-animation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
b6dba3eb7597 → b6dba3eb7597
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.
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>/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
30-day change not yet available: not enough history.
Individual skills in this repository
- 60fps-animation
skills/60fps-animation - accessible-animation
skills/accessible-animation - ascii-animation
skills/ascii-animation - glassmorphism
skills/glassmorphism - gsap-web
skills/gsap-web - lottie-animation
skills/lottie-animation - micro-interaction
skills/micro-interaction - page-transition-animation
skills/page-transition-animation - svg-animation
skills/svg-animation
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 tokensAlways available to the agent
SKILL.md
2,678 tokensWhen the skill is activated
Reference documents
1,820 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- Core rule: animate only transform and opacity
- Cheap box-shadow via pseudo-element opacity
- FLIP: animate layout changes cheaply
- Animating height: auto
- Avoid layout thrashing (batch reads, then writes)
- will-change: use sparingly
- Deliver & verify (standalone HTML)
- Quick reference
- Gotchas
- 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 bytesREADME.mddoc0 bytesSKILL.mdcore10,774 bytesSKILL.mdcore10,774 bytesSKILL.mdcore10,774 bytesSKILL.mdcore10,774 bytesreferences/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 GitHubaccessible-animation
When your agent uses it
This skill should be used when the user asks to "respect prefers-reduced-motion", "honor reduced motion", "make my animations accessible", "fix vestibular / motion-sickness issues", "add a useReducedMotion hook", "gate GSAP / Framer Motion / Lenis for reduced motion", or "meet WCAG 2.3.3 / C39". Provides tiered (not all-or-nothing) reduced-motion patterns in CSS and JS.
What it loads into context
Frontmatter
110 tokensAlways available to the agent
SKILL.md
2,969 tokensWhen the skill is activated
Reference documents
2,357 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- The core principle: tier motion, do not nuke it
- CSS layer: media-query gating
- JS layer: matchMedia gating
- React: a `useReducedMotion` hook
- WCAG mapping
- Deliver & verify (standalone HTML)
- Quick reference
- Gotchas
- Reference files
Scripts executed separately
../../scripts/contact-sheet.sh../../scripts/seek-shot.sh
Files
../../scripts/README.mddoc2,028 bytes../../scripts/contact-sheet.shruns851 bytes../../scripts/seek-shot.shruns1,095 bytesREADME.mddoc0 bytesSKILL.mdcore11,775 bytesSKILL.mdcore11,775 bytesSKILL.mdcore11,775 bytesSKILL.mdcore11,775 bytesreferences/patterns.mddoc6,846 bytes
Read SKILL.md
# Accessible Animation (Reduced Motion, Tiered)
Honor `prefers-reduced-motion: reduce` as a *graceful degradation*, not a kill switch. The OS-level setting (macOS: Settings > Accessibility > Display > Reduce motion; Windows: Settings > Accessibility > Visual effects > Animation effects; iOS/Android equivalents) signals that *vestibular-triggering* motion causes nausea, dizziness, or migraines. The correct response is to remove the dangerous motion while keeping orientation cues.
## When to use
Use when adding or auditing animation in a web UI, when a user reports motion sickness or WCAG findings, or when integrating animation libraries (GSAP, Framer Motion, Lenis smooth scroll, Anime.js, CSS keyframes) into an accessible product.
## The core principle: tier motion, do not nuke it
Removing *all* animation is a common over-correction. An instant state change with no transition can be more disorienting (elements teleport) and removes useful affordances (focus rings, loading spinners that communicate progress). Sort every animation into three tiers:
- **Tier 1 — Remove entirely (vestibular triggers).** Parallax; large-area slides/translates across the viewport; scale/zoom of large elements; 3D rotation and spin; continuous auto-playing carousels and marquees; smooth-scroll hijacking (Lenis/Locomotive); scroll-jacked pinned scenes; motion-path animation; anything that moves a large portion of the screen or implies depth/self-motion.
- **Tier 2 — Soften / shorten.** Replace movement with a short opacity fade (≤200ms). Reduce distance and duration. Keep the *fact* of a transition (so elements don't teleport) but strip the displacement. Replace a 600ms slide-in-from-left with a 150ms cross-fade.View the complete source on GitHubascii-animation
When your agent uses it
This skill should be used when the user asks to "make an ASCII animation", "build a terminal/CLI intro or loader", "convert an image or video to ASCII art", "add an ASCII shader/post-effect to a canvas or Three.js scene", "create retro/hacker text-character motion", or "animate text characters with a brightness ramp". Covers generative ASCII fields, image/video/3D-to-ASCII, and animated character art for both web and terminal.
What it loads into context
Frontmatter
110 tokensAlways available to the agent
SKILL.md
2,592 tokensWhen the skill is activated
Reference documents
2,768 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- Core concept: the brightness ramp
- Character cell aspect correction (the #1 gotcha)
- Web rendering: `<pre>` vs canvas
- Image / video to ASCII
- 3D-to-ASCII with Three.js
- Terminal / CLI animation
- Deliver & verify (standalone HTML)
- Quick reference
- Reference files
Scripts executed separately
../../scripts/contact-sheet.sh../../scripts/seek-shot.shscripts/img-to-ascii.mjs
Files
../../scripts/README.mddoc2,028 bytes../../scripts/contact-sheet.shruns851 bytes../../scripts/seek-shot.shruns1,095 bytesREADME.mddoc0 bytesSKILL.mdcore9,219 bytesSKILL.mdcore9,219 bytesSKILL.mdcore9,219 bytesSKILL.mdcore9,219 bytesSKILL.mdcore9,219 bytesreferences/rendering.mddoc7,681 bytesscripts/img-to-ascii.mjsruns2,041 bytes
Read SKILL.md
# ASCII Animation
Render motion entirely with text characters. ASCII output is extremely lightweight, distinctive, and works in browsers (`<pre>`/canvas), terminals (ANSI), and over any 3D scene (Three.js `AsciiEffect`).
## When to use
- Build terminal/CLI intros, loaders, banners, or a retro/hacker aesthetic.
- Convert an image, video frame, or 3D scene into animated ASCII.
- Add an ASCII post-effect over an existing canvas/WebGL render.
- Create generative text fields (plasma, sine waves, noise, tunnels).
## Core concept: the brightness ramp
Map luminance (0..1) to a character whose ink density matches. Order characters dark-to-light. Pick the index with `Math.round(lum * (ramp.length - 1))`.View the complete source on GitHubglassmorphism
When your agent uses it
This skill should be used when the user asks to "add a glassmorphism effect", "frosted glass UI", "Apple liquid glass style", "frosted blur card", "translucent glass panel animation", "make a frosted nav bar", "build a glass modal/dialog", "animate a glass card on hover", or "add a refracting liquid-glass hero". Covers frosted translucent panels with backdrop-filter blur, edge/specular highlights, SVG liquid-glass refraction, motion on hover/scroll/enter, and accessible reduced-transparency fallbacks.
What it loads into context
Frontmatter
134 tokensAlways available to the agent
SKILL.md
3,077 tokensWhen the skill is activated
Reference documents
3,527 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- The four ingredients of believable glass
- Specular edge highlight and anti-banding grain
- Motion: animate the glass, not the geometry
- Liquid glass — SVG refraction (the 2026 look)
- Performance — backdrop-filter is expensive
- Accessibility — non-negotiable
- Deliver & verify (standalone HTML)
- Quick reference
- Reference files
Scripts executed separately
../../scripts/contact-sheet.sh../../scripts/seek-shot.sh
Files
../../scripts/README.mddoc2,028 bytes../../scripts/contact-sheet.shruns851 bytes../../scripts/seek-shot.shruns1,095 bytesREADME.mddoc0 bytesSKILL.mdcore11,668 bytesSKILL.mdcore11,668 bytesSKILL.mdcore11,668 bytesSKILL.mdcore11,668 bytesreferences/glass-recipes.mddoc10,388 bytes
Read SKILL.md
# Glassmorphism (Frosted & Liquid Glass)
Translucent, frosted UI: panels you can see through, blurred so the backdrop reads as soft color, rimmed by a bright edge of light, floating on layered shadow. The 2026 "liquid glass" evolution adds refraction — the background visibly bends through the panel — plus moving specular highlights. The goal is depth and material, not just opacity.
## When to use
- Frosted cards, nav bars, sidebars, modals/dialogs, and toolbars over busy/photo backgrounds
- Login/hero panels and overlays that should feel layered above the page
- Apple-style "liquid glass" heroes: refracting, slowly churning surfaces with a specular sweep
- Hover/scroll/enter motion on glass — frost deepening, highlight brightening, the panel lifting
- Any place where content needs to read as floating glass while staying legible
## The four ingredients of believable glass
View the complete source on GitHubgsap-web
When your agent uses it
This skill should be used when the user asks to "build a scroll animation", "add ScrollTrigger", "pin a section while scrolling", "scrub an animation to scroll", "create a hero timeline", "do a horizontal scroll section", "split text and animate words", "animate a layout change with GSAP Flip", "sync ScrollTrigger with Lenis", "Lenis smooth scroll jittery", "ScrollTrigger markers drift", "ScrollTrigger pins break with Lenis/Locomotive", or "set up smooth scroll with GSAP pinning". Covers GSAP timelines, ScrollTrigger, SplitText, Flip, and Lenis/Locomotive smooth-scroll sync for code-driven web motion.
What it loads into context
Frontmatter
158 tokensAlways available to the agent
SKILL.md
3,221 tokensWhen the skill is activated
Reference documents
4,794 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- Install and register
- Core techniques
- Performance and cleanup
- Deliver & verify (standalone HTML)
- Quick reference
- Reference files
Scripts executed separately
../../scripts/contact-sheet.sh../../scripts/seek-shot.shexamples/hero-timeline.js
Files
../../scripts/README.mddoc2,028 bytes../../scripts/contact-sheet.shruns851 bytes../../scripts/seek-shot.shruns1,095 bytesREADME.mddoc0 bytesSKILL.mdcore12,360 bytesSKILL.mdcore12,360 bytesSKILL.mdcore12,360 bytesSKILL.mdcore12,360 bytesexamples/hero-timeline.jsruns2,594 bytesexamples/standalone-template.htmlasset2,714 bytesreferences/scrolltrigger-cookbook.mddoc5,613 bytesreferences/scrolltrigger-lenis.mddoc10,528 bytes
Read SKILL.md
# GSAP for the Web
GSAP (GreenSock Animation Platform) is the workhorse for code-driven web motion: sequenced timelines, scroll-driven storytelling, text reveals, and layout transitions. As of GSAP 3.12+, every plugin (ScrollTrigger, SplitText, Flip, MotionPath, MorphSVG, Draggable, Observer) is 100% free, including for commercial use.
## When to use
- Scroll-driven storytelling: pinned sections, parallax, progress scrubbing, horizontal scroll
- Sequenced hero animations and complex multi-element timelines with precise overlap control
- Text reveals split into chars/words/lines (SplitText)
- Layout transitions where an element changes position/size/parent (Flip)
- Any motion needing fine timing control, easing precision, or imperative orchestration
## Install and register
View the complete source on GitHublottie-animation
When your agent uses it
This skill should be used when the user asks to "add a Lottie animation", "play a .lottie or .json animation", "integrate a Bodymovin/After Effects animation on web or mobile", "control Lottie playback / segments", "make a scroll-driven Lottie", "recolor a Lottie at runtime", or "export an AE animation to Lottie". Covers dotLottie/lottie-web integration, playback control, interactivity, theming, and the AE export checklist.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
2,350 tokensWhen the skill is activated
Reference documents
3,024 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- Formats: .json vs .lottie
- Core workflow (web, dotLottie)
- Playback control
- Scroll-driven Lottie (no GSAP needed)
- Runtime theming / recoloring
- Mobile runtimes (parity)
- Optimization
- Deliver & verify (standalone HTML)
- Quick reference
- Reference files
Scripts executed separately
../../scripts/contact-sheet.sh../../scripts/seek-shot.sh
Files
../../scripts/README.mddoc2,028 bytes../../scripts/contact-sheet.shruns851 bytes../../scripts/seek-shot.shruns1,095 bytesREADME.mddoc0 bytesSKILL.mdcore9,002 bytesSKILL.mdcore9,002 bytesSKILL.mdcore9,002 bytesSKILL.mdcore9,002 bytesSKILL.mdcore9,002 bytesreferences/integration-and-export.mddoc9,567 bytes
Read SKILL.md
# Lottie Animation
The bridge from After Effects to product: vector animation shipped as JSON (or zipped `.lottie`), tiny and resolution-independent, played by a runtime on web, iOS, Android, and React Native. This skill covers integrating, controlling, and exporting Lottie.
## When to use
- Ship a designer's AE animation to web/iOS/Android/React Native
- Looping illustrations, onboarding, empty states, animated icons
- Scroll-driven or interaction-driven vector playback (hover, click, cursor)
- Runtime theming/recoloring instead of re-exporting per brand
## Formats: .json vs .lottie
- `.json` — the raw Bodymovin output. Human-readable, larger.View the complete source on GitHubmicro-interaction
When your agent uses it
This skill should be used when the user asks to "add a hover/press effect", "animate a toggle or switch", "build an animated like button", "make a toast/snackbar slide in", "animate a drawer or modal", "animate list reordering or add/remove", "do a shared-element layout transition", or "polish UI feedback". Covers UI motion with Framer Motion (motion/react) and modern CSS.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
2,223 tokensWhen the skill is activated
Reference documents
3,520 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- Principles (apply to all of it)
- Framer Motion (motion/react) essentials
- Pure CSS path (no JS, including discrete properties)
- State, not just decoration
- Deliver & verify (standalone HTML)
- Quick reference
- Reference files
Scripts executed separately
../../scripts/contact-sheet.sh../../scripts/seek-shot.sh
Files
../../scripts/README.mddoc2,028 bytes../../scripts/contact-sheet.shruns851 bytes../../scripts/seek-shot.shruns1,095 bytesREADME.mddoc0 bytesSKILL.mdcore8,634 bytesSKILL.mdcore8,634 bytesSKILL.mdcore8,634 bytesSKILL.mdcore8,634 bytesSKILL.mdcore8,634 bytesreferences/css-recipes.mddoc4,917 bytesreferences/framer-motion-recipes.mddoc5,950 bytes
Read SKILL.md
# Micro-interactions (UI Motion)
Small, functional motion that makes an interface feel responsive and alive: hover/press/focus feedback, toggles, toasts, drawers, and list/layout animation. The goal is feedback and continuity, not decoration.
## When to use
- Hover/press/focus feedback; toggles, checkboxes, like/heart buttons
- Toasts/snackbars, drawers, modals, tooltips, accordions (enter/exit)
- List add/remove/reorder; shared-element ("magic move") layout transitions
- Loading → success → error state transitions
## Principles (apply to all of it)
- Duration: UI micro-interactions live in **100–250ms**. Anything over ~400ms feels laggy for a click response.View the complete source on GitHubpage-transition-animation
When your agent uses it
This skill should be used when the user asks to "animate page or route transitions", "add a page transition or crossfade between views", "animate route changes in Next.js App Router", "use the View Transitions API", "AnimatePresence exit doesn't fire on navigation", or "Framer Motion exit animation not working / exit animation before unmount in Next.js". Covers enter/exit page-transition animation with the View Transitions API and Framer Motion, for Next.js App Router and general SPA routing.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
2,833 tokensWhen the skill is activated
Reference documents
1,911 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- Why exit doesn't fire (the core problem)
- Solution A: template.tsx + keyed AnimatePresence + FrozenRouter
- Solution B: native View Transitions API
- AnimatePresence debug checklist
- Deliver & verify (standalone HTML)
- Quick reference
- Gotchas
- Reference files
Scripts executed separately
../../scripts/contact-sheet.sh../../scripts/seek-shot.sh
Files
../../scripts/README.mddoc2,028 bytes../../scripts/contact-sheet.shruns851 bytes../../scripts/seek-shot.shruns1,095 bytesREADME.mddoc0 bytesSKILL.mdcore12,195 bytesSKILL.mdcore12,195 bytesSKILL.mdcore12,195 bytesSKILL.mdcore12,195 bytesSKILL.mdcore12,195 bytesreferences/full-examples.mddoc5,366 bytes
Read SKILL.md
# Page Transition Animation (Next.js App Router)
Implement page enter/exit transitions in the Next.js **App Router**, and fix the single most common failure: **Framer Motion `AnimatePresence` exit animations never fire on navigation**. The reason is structural — in the App Router, when navigating, Next.js unmounts the old route's content and mounts the new one almost immediately. `AnimatePresence` can only animate an exit if the *exiting element stays mounted* under a *persistent* `AnimatePresence` wrapper long enough to run the animation. Because the router swaps children out from under it, the exit is skipped. Two approaches solve this: a pathname-keyed `AnimatePresence` with the **FrozenRouter** pattern, or the **View Transitions API** (native / `next-view-transitions`).
## When to use
Use when adding animated page transitions in a Next.js App Router app, when a Framer Motion `exit` prop does nothing on route change, when an old page disappears instantly instead of animating out, when choosing between Framer Motion and the View Transitions API for Next.js, or when debugging why `AnimatePresence` won't animate between routes.
## Why exit doesn't fire (the core problem)
`AnimatePresence` detects removal of a *direct keyed child*. On App Router navigation:
1. The wrapper must persist across the navigation. If `AnimatePresence` lives in a component that itself unmounts, there is nothing left to run the exit.
2. The child's `key` must change per route so AnimatePresence sees "old removed, new added".View the complete source on GitHubsvg-animation
When your agent uses it
This skill should be used when the user asks to "animate an SVG", "make a line draw itself on", "do a stroke draw-on / signature animation", "morph one shape into another", "move an element along a path", "animate an icon/logo", or "animate an SVG gradient or filter". Covers stroke-dashoffset draw-on, path morphing, motion-along-path, and animated icons/gradients/filters via CSS, SMIL, and GSAP.
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
2,270 tokensWhen the skill is activated
Reference documents
2,982 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- Core techniques
- Implementation choice (pick fast)
- Authoring and optimization
- Deliver & verify (standalone HTML)
- Reference files
Scripts executed separately
../../scripts/contact-sheet.sh../../scripts/seek-shot.sh
Files
../../scripts/README.mddoc2,028 bytes../../scripts/contact-sheet.shruns851 bytes../../scripts/seek-shot.shruns1,095 bytesREADME.mddoc0 bytesSKILL.mdcore8,622 bytesSKILL.mdcore8,622 bytesSKILL.mdcore8,622 bytesSKILL.mdcore8,622 bytesreferences/svg-techniques.mddoc9,053 bytes
Read SKILL.md
# SVG Animation
Crisp, lightweight, infinitely scalable vector motion — ideal for icons, illustrations, logos, and data marks. SVG can be animated three ways: CSS (declarative, simple), SMIL (`<animate>` inside the SVG), and JS (GSAP/Web Animations, for control and morphing). Choose per task; the techniques below say which.
## When to use
- Stroke "draw-on" of icons, illustrations, signatures, maps
- Shape/path morphing and animated icon state changes (menu ↔ close, play ↔ pause)
- Moving an element along a path (motion path)
- Animated gradients, filters (glow, displacement), and animated logos
## Core techniques
### Stroke draw-on (the staple)View the complete source on GitHubSkills 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 shellAutomated 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:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/60fps-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/60fps-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/accessible-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/accessible-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/accessible-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ascii-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ascii-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ascii-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ascii-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/glassmorphism/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/glassmorphism/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/glassmorphism/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gsap-web/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gsap-web/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gsap-web/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/lottie-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/lottie-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/lottie-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/lottie-animation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 35 network referencesin 12 files: .claude-plugin/plugin.json:5 glassmorphism/references/glass-recipes.md:79 gsap-web/examples/standalone-template.html:6 and 9 more
- No hidden or obfuscated text
- No instruction overrides
- 20 executable scriptsin 4 files: scripts/contact-sheet.sh:1 scripts/seek-shot.sh:1 ascii-animation/scripts/img-to-ascii.mjs:1 and 1 more
- No access to secrets
- No requests to vote in Hot
Show all 55 signals by file
.claude-plugin/marketplace.json
.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
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/contact-sheet.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Executable script in code of a file that runsscripts/seek-shot.sh:1High confidence
- Network access in prose of documentation60fps-animation/references/patterns-and-profiling.md:131Low confidence
- Network access in prose of documentation60fps-animation/references/patterns-and-profiling.md:132Low confidence
- Network access in prose of documentationaccessible-animation/references/patterns.md:195Low confidence
- Network access in prose of documentationaccessible-animation/references/patterns.md:196Low confidence
- Network access in prose of documentationascii-animation/references/rendering.md:193Low confidence
- Network access in prose of documentationascii-animation/references/rendering.md:194Low confidence
- Executable script in code of a file that runsascii-animation/scripts/img-to-ascii.mjs:1High confidence
- Network access in code of documentationglassmorphism/references/glass-recipes.md:79Low confidence
- Network access in code of documentationglassmorphism/references/glass-recipes.md:80Low confidence
- Network access in code of documentationglassmorphism/references/glass-recipes.md:81Low confidence
- Network access in prose of documentationglassmorphism/references/glass-recipes.md:241Low confidence
- Network access in prose of documentationglassmorphism/references/glass-recipes.md:242Low confidence
- Executable script in a comment of a file that runsgsap-web/examples/hero-timeline.js:1Low confidence
- Network access in prose of documentationgsap-web/references/scrolltrigger-lenis.md:254Low confidence
- Network access in prose of documentationgsap-web/references/scrolltrigger-lenis.md:255Low confidence
- Network access in code of documentationlottie-animation/references/integration-and-export.md:186Low confidence
- Network access in prose of documentationlottie-animation/references/integration-and-export.md:232Low confidence
- Network access in prose of documentationlottie-animation/references/integration-and-export.md:233Low confidence
- Network access in prose of documentationmicro-interaction/references/framer-motion-recipes.md:186Low confidence
- Network access in prose of documentationmicro-interaction/references/framer-motion-recipes.md:187Low confidence
- Network access in prose of documentationpage-transition-animation/references/full-examples.md:175Low confidence
- Network access in prose of documentationpage-transition-animation/references/full-examples.md:176Low confidence
- Network access in prose of documentationsvg-animation/references/svg-techniques.md:213Low confidence
- Network access in prose of documentationsvg-animation/references/svg-techniques.md:214Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/60fps-animation/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/60fps-animation/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/60fps-animation/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/60fps-animation/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard 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.