animation-creator
CSS animation and transition creator. Generates optimized @keyframes, transitions, and transform sequences with performance best practices and motion accessibility. Use when adding animations, transitions, or micro-interactions.
Best use case
animation-creator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
CSS animation and transition creator. Generates optimized @keyframes, transitions, and transform sequences with performance best practices and motion accessibility. Use when adding animations, transitions, or micro-interactions.
Teams using animation-creator should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/animation-creator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How animation-creator Compares
| Feature / Agent | animation-creator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
CSS animation and transition creator. Generates optimized @keyframes, transitions, and transform sequences with performance best practices and motion accessibility. Use when adding animations, transitions, or micro-interactions.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Animation Creator Skill
This skill helps you create performant, accessible CSS animations and transitions. I'll guide you through animation requirements and generate optimized code that respects user preferences and follows performance best practices.
## What I Can Create
### Transitions
- Hover effects
- Focus states
- Button interactions
- Modal/dropdown entrances
- Page transitions
- Property changes
### Keyframe Animations
- Loading spinners
- Progress indicators
- Entrance animations
- Attention-seekers
- Scroll animations
- Complex sequences
### Transform Animations
- Slides
- Fades
- Scales
- Rotations
- 3D effects
- Combined transforms
### Micro-interactions
- Button presses
- Toggle switches
- Checkboxes
- Form validations
- Toast notifications
- Tooltips
## How To Use This Skill
Tell me what you want to animate and I'll create the CSS. I'll ask:
1. **What element** are you animating?
2. **What effect** do you want? (fade, slide, bounce, etc.)
3. **How long** should it take? (duration)
4. **When** should it happen? (on hover, on load, on click?)
5. **Should it repeat?** (once, infinite, number of times)
## Performance Best Practices
I always follow these rules for smooth animations:
### Use Compositor-Only Properties
```css
/* ✓ GOOD - GPU accelerated */
.animated {
transition: transform 0.3s, opacity 0.3s;
}
/* ❌ BAD - Triggers layout/paint */
.animated {
transition: width 0.3s, height 0.3s, left 0.3s;
}
```
### Optimize with will-change
```css
.animating {
will-change: transform, opacity;
}
.animating.complete {
will-change: auto; /* Remove after animation */
}
```
### Respect Reduced Motion
```css
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
```
## Common Animation Examples
### Fade In
```css
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.fade-in {
animation: fadeIn 0.5s ease-in;
}
```
### Slide In from Left
```css
@keyframes slideInLeft {
from {
transform: translateX(-100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
.slide-in-left {
animation: slideInLeft 0.5s ease-out;
}
```
### Bounce
```css
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-30px);
}
60% {
transform: translateY(-15px);
}
}
.bounce {
animation: bounce 1s ease;
}
```
### Pulse (Attention Seeker)
```css
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.05);
}
100% {
transform: scale(1);
}
}
.pulse {
animation: pulse 2s ease infinite;
}
```
### Loading Spinner
```css
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.spinner {
width: 40px;
height: 40px;
border: 4px solid #f3f3f3;
border-top: 4px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
}
```
### Button Hover
```css
.button {
transition: all 0.2s ease;
}
.button:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
.button:active {
transform: translateY(0);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
```
### Modal Entrance
```css
@keyframes modalFadeIn {
from {
opacity: 0;
transform: scale(0.9) translateY(-20px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
.modal {
animation: modalFadeIn 0.3s ease-out;
}
/* Backdrop fade */
@keyframes backdropFadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.modal-backdrop {
animation: backdropFadeIn 0.3s ease;
}
```
### Shake (Error State)
```css
@keyframes shake {
0%, 100% {
transform: translateX(0);
}
10%, 30%, 50%, 70%, 90% {
transform: translateX(-10px);
}
20%, 40%, 60%, 80% {
transform: translateX(10px);
}
}
.shake {
animation: shake 0.5s ease;
}
```
### Skeleton Loading
```css
@keyframes shimmer {
0% {
background-position: -1000px 0;
}
100% {
background-position: 1000px 0;
}
}
.skeleton {
background: linear-gradient(
90deg,
#f0f0f0 25%,
#e0e0e0 50%,
#f0f0f0 75%
);
background-size: 1000px 100%;
animation: shimmer 2s infinite linear;
}
```
### Slide and Fade Menu
```css
.menu {
transform: translateX(-100%);
opacity: 0;
transition: transform 0.3s ease, opacity 0.3s ease;
}
.menu.open {
transform: translateX(0);
opacity: 1;
}
```
## Timing Functions
### Built-in Easings
```css
/* Linear - constant speed */
transition: all 0.3s linear;
/* Ease (default) - slow start and end */
transition: all 0.3s ease;
/* Ease-in - slow start */
transition: all 0.3s ease-in;
/* Ease-out - slow end */
transition: all 0.3s ease-out;
/* Ease-in-out - slow start and end (more pronounced) */
transition: all 0.3s ease-in-out;
```
### Custom Cubic Bezier
```css
/* Bouncy */
transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
/* Smooth */
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
/* Fast out, slow in */
transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1);
```
## Animation Properties Reference
### Duration
```css
animation-duration: 0.3s; /* Fast */
animation-duration: 0.5s; /* Normal */
animation-duration: 1s; /* Slow */
animation-duration: 2s; /* Very slow */
```
### Iteration
```css
animation-iteration-count: 1; /* Once */
animation-iteration-count: 3; /* Three times */
animation-iteration-count: infinite; /* Forever */
```
### Direction
```css
animation-direction: normal; /* Forward */
animation-direction: reverse; /* Backward */
animation-direction: alternate; /* Forward then backward */
```
### Fill Mode
```css
animation-fill-mode: none; /* No persistence */
animation-fill-mode: forwards; /* Keep final state */
animation-fill-mode: backwards; /* Start in first keyframe */
animation-fill-mode: both; /* Both forwards and backwards */
```
### Play State
```css
animation-play-state: running; /* Playing */
animation-play-state: paused; /* Paused */
```
## Accessibility Considerations
I always include:
### Reduced Motion Support
```css
@media (prefers-reduced-motion: reduce) {
.animated {
animation-duration: 0.01ms;
transition-duration: 0.01ms;
}
}
```
### Avoid Problematic Patterns
- No rapid flashing (seizure risk)
- No parallax for vestibular disorders
- Provide controls for auto-playing animations
- Keep important animations essential, not decorative
### Focus Indicators
```css
.button:focus-visible {
outline: 2px solid #0066cc;
outline-offset: 2px;
transition: outline-offset 0.2s ease;
}
```
## Performance Tips
✓ Animate `transform` and `opacity` only when possible
✓ Use `will-change` sparingly and temporarily
✓ Avoid animating `width`, `height`, `top`, `left`
✓ Keep animations under 300-500ms for UI interactions
✓ Test on low-end devices
✓ Use `requestAnimationFrame` for JavaScript animations
✓ Remove animations from elements outside viewport
## Example Usage
**You say**: "Create a fade and slide up animation for cards appearing on page load"
**I'll provide**:
```css
@keyframes fadeSlideUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.card {
animation: fadeSlideUp 0.5s ease-out;
animation-fill-mode: backwards;
}
/* Stagger the animations */
.card:nth-child(1) { animation-delay: 0.1s; }
.card:nth-child(2) { animation-delay: 0.2s; }
.card:nth-child(3) { animation-delay: 0.3s; }
/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
.card {
animation: none;
opacity: 1;
transform: translateY(0);
}
}
```
## Just Ask!
Tell me what animation you need:
- "Fade in on page load"
- "Smooth color transition on hover"
- "Loading spinner"
- "Shake on error"
- "Slide in menu from left"
- "Pulse button to draw attention"
I'll create performant, accessible CSS animations for you!Related Skills
astro-animations
Animation patterns for Astro sites. Scroll animations, micro-interactions, transitions, loading states. Performance-focused, accessibility-aware.
art-icon-creator
This skill should be used when creating artistic icon variations from images. It generates 10 different greyscale icon styles from a single image source, automatically compressing to under 20KB with high contrast appearance. Supports both URL and local file inputs.
animations-transitions
SwiftUI animations, @Animatable macro, withAnimation, transitions, PhaseAnimator, KeyframeAnimator, and interactive motion design. Use when user asks about animations, transitions, @Animatable, withAnimation, spring animations, keyframes, or motion design.
animation-principles
Applies Disney's 12 animation principles to UI motion design. Use when improving animation quality, designing micro-interactions, creating easing curves, or making transitions feel natural and purposeful.
animation-designer
Expert in web animations, transitions, and motion design using Framer Motion and CSS
adding-animations
Add micro-interactions and animations using Framer Motion. Use when user asks about animations, transitions, hover effects, or motion design. MANDATORY for every component.
Suno Song Creator
This skill should be used when the user asks to "create a Suno prompt", "write a Suno song", "generate music with Suno", "help me with Suno", "make a song prompt", "create lyrics for Suno", "build a music prompt", or mentions Suno AI music generation. Provides comprehensive guidance for creating professional Suno prompts using advanced prompting strategies, structured formatting within 1000 character limit (NO blank lines between sections), parameter optimization, genre-specific techniques, interactive questioning with efficient project name collection, automated artist/song research via sub-agent (web fetching + pattern extraction), automatic file export to organized project directories, AI-slop avoidance for authentic human-centered lyrics, copyright-safe style descriptions that avoid artist/album/song names, character counting utilities for accurate verification, and optional independent quality review via sub-agent for professional assessment.
subagents-creator
Guide for defining and using Claude subagents effectively. Use when (1) creating new subagent types, (2) learning how to delegate work to specialized subagents, (3) improving subagent delegation prompts, (4) understanding subagent orchestration patterns, or (5) debugging ineffective subagent usage.
skill-creator
Specialized skill for creating new OpenCode agent skills. Detailed instructions on triggers, structure, and best practices. Triggers: 'create a skill', 'make a new skill', 'add a skill', 'new skill'.
skill-creator-ms
Guide for creating effective skills for AI coding agents working with Azure SDKs and Microsoft Foundry services. Use when creating new skills or updating existing skills.
power-agent-creator
This skill should be used when users want to create powerful AI agents comparable to Claude Code or sonph-code. It provides battle-tested system prompts, masterfully-crafted tool implementations, and the simple but powerful agent loop pattern. Use this skill when users ask to build coding agents, AI assistants with tools, or any autonomous agent that needs file operations, code execution, search, and task management capabilities. The key insight is that customization requires only ONE HumanMessage after the SystemPrompt.
metric-creator
Create new Fair-Forge metrics with proper structure, schema, tests, and fixtures. Use when adding a new evaluation metric to fair-forge.