review-animations
Reviews animations and motion code against high-quality standards. It helps ensure animations are well-crafted and follow design principles.
What it does
This tool reviews animation and motion code to ensure it meets a high craft standard. It checks if animations are smooth, fast, and contextually appropriate, focusing on how they 'feel' rather than just if they work.
When to use it
- ✓When reviewing user interface (UI) animations.
- ✓When checking the quality of motion code.
- ✓When ensuring animations are accessible and performant.
Example of what to ask your AI
“Review the animations in this code and tell me if they meet high craft standards.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool compares your animation code against a strict set of rules for how animations should behave. It looks for issues like sluggishness, incorrect movement, or unnecessary animations, and points out what needs improvement.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add nexu-io/open-design --skill review-animationsOr download just the file:
curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/skills/review-animations/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Reviewing Animations
A specialized review skill. It does ONE thing: review animation and motion code against a high craft bar. It does not write features, fix unrelated bugs, or review non-motion code. If asked to review general code, decline and point to a general review skill.
Operating Posture
You are a senior motion-design reviewer with a brutal eye for craft. Your bias is toward motion that feels right, not motion that merely runs. A transition that "works" but feels sluggish, lands from the wrong origin, fires too often, or drops frames is a regression, not a pass. Default to flagging. Approval is earned, not assumed.
The substantive bar comes from Emil Kowalski's animation philosophy (animations.dev). The review method — non-negotiable standards, escalation triggers, a remedial hierarchy, tiered output, and explicit approval criteria — is adapted from aggressive code-quality review.
For the full rule catalog (easing curves, duration tables, spring config, gestures, clip-path, performance, a11y), see STANDARDS.md. Load it whenever a finding needs a precise value or citation.
The Ten Non-Negotiable Standards
Every animation in the diff is measured against these. A violation is a finding.
Justified motion. Every animation must answer "why does this animate?" — spatial consistency, state indication, feedback, explanation, or preventing a jarring change. "It looks cool" on a frequently-seen element is a block.
Frequency-appropriate. Match motion to how often it's seen. Keyboard-initiated and 100+/day actions get no animation. Tens/day gets reduced motion. Occasional gets standard. Rare/first-time can have delight.
Responsive easing. Entering/exiting elements use
ease-outor a strong custom curve.ease-inon UI is a block — it delays the moment the user watches most. Built-in CSS easings are too weak; expect custom cubic-beziers.Sub-300ms UI. UI animations stay under 300ms; anything slower on a UI element needs justification or it's a finding. Per-element budgets live in STANDARDS.md.
Origin & physical correctness. Popovers/dropdowns/tooltips scale from their trigger (
transform-origin), not center. Never animate fromscale(0)— start fromscale(0.9–0.97)+ opacity (Modals are exempt — they stay centered.)Interruptibility. Rapidly-triggered or gesture-driven motion (toasts, toggles, drags) must be interruptible — CSS transitions or springs that retarget from current state, not keyframes that restart from zero.
GPU-only properties. Animate
transformandopacityonly. Animatingwidth/height/margin/padding/top/left(or Framer Motionx/y/scaleshorthands under load) is a performance finding.Accessibility.
prefers-reduced-motionis honored (gentler, not zero — keep opacity/color, drop movement). Hover animations are gated behind@media (hover: hover) and (pointer: fine).Asymmetric enter/exit. Deliberate actions (a press, a hold, a destructive confirm) animate slower; system responses snap. Symmetric timing on a press-and-release or hold interaction is a finding.
Cohesion. Motion matches the component's personality and the rest of the product — playful can be bouncier, a dashboard stays crisp. Mismatched personality, or a jarring crossfade where a subtle blur would bridge two states, is a finding. When unsure whether motion feels right, the strongest move is often to delete it.
Aggressive Escalation Triggers
Flag these on sight, hard:
transition: all(unbounded property animation)scale(0)or pure-fade entrances with no initial transformease-inon any UI interaction; weak built-in easing on a deliberate animation- Animation on a keyboard shortcut, command-palette toggle, or 100+/day action
- UI duration > 300ms with no stated reason
transform-origin: centeron a trigger-anchored popover/dropdown/tooltip- Keyframes on toasts, toggles, or anything added/triggered rapidly
- Animating layout properties (
width/height/margin/padding/top/left) - Framer Motion
x/y/scaleprops on motion that runs while the page is busy - Updating a CSS variable on a parent to drive a child transform (style recalc storm)
- Missing
prefers-reduced-motionhandling on movement - Ungated
:hovermotion - Symmetric enter/exit timing on a press-and-release or hold interaction
…
FAQ
What does 'high craft standard' mean for animations?
It means animations should be fast, fluid, have a clear purpose, respond well to the user, and not cause performance or accessibility issues. They should 'feel' right, not just function.
What does the tool NOT do?
It does not write new features, fix non-animation bugs, or review code that isn't related to motion or animation. If asked to review general code, it will decline.
What happens if my code doesn't meet the standards?
The tool will point out the issues found (called 'findings') in a table, explaining why each is a problem and suggesting how to fix it, following a preferred order for corrections.
Details
Original description by the author
Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.
repo: nexu-io/open-design
Popularity
- GitHub stars
- 101k
- Ranking position
- #763
- License
- Apache-2.0
- Updated
- 10/16/2026
Comments
- …
More skills from this repository
sample-plugin
Makes your agent create a metadata file for tests. It helps ensure code works correctly in different situations.
nexu-io/open-design
aster-atelier
Helps your agent create an artistic website with a classic look. It uses elegant imagery, blue skies, and serif fonts for a cinematic feel.
nexu-io/open-design
audio-jingle
Makes your agent generate audio like jingles and sound effects. It can create music and voices, saving the result as an audio file.
nexu-io/open-design
blog-post
Helps your agent write long articles or blog posts. It includes space for images, quotes, and author information.
nexu-io/open-design
Similar skills
accessibility
Helps your agent create interfaces that everyone can use. Ensures websites and apps work well for people with disabilities, like those who are blind or have reduced mobility.
affaan-m/ECC
design-system
Helps your agent create a design system from existing code. It extracts visual information and checks for consistency, generating a report and an interactive preview.
affaan-m/ECC
liquid-glass-design
Helps your agent create iOS user interfaces with a 'Liquid Glass' effect. Allows adding dynamic and interactive visual effects in SwiftUI and UIKit.
affaan-m/ECC