makepad-2-0-animation
Helps your agent with animations in Makepad 2.0. It's useful when building or debugging user interface (UI) code made with Makepad.
What it does
This tool helps create animations in user interfaces using the Makepad library. It allows visual elements to change their appearance over time, enabling effects like hover states, transitions, or continuous animations.
When to use it
- ✓When you want a button to change color when clicked.
- ✓When you want an element to fade in smoothly.
- ✓When you want to create an animated loading effect.
Example of what to ask your AI
“How do I make a button change color when the mouse hovers over it?”
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
You define an 'animator' for an element. This animator controls how visual properties (like color or size) change between different 'states' (like 'normal' and 'hover') using defined timings and effects.
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 sickn33/agentic-awesome-skills --skill makepad-2-0-animationOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/makepad-2-0-animation/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
When to Use
- Use when this upstream workflow matches the user's stated goal.
- Use when the task requires the procedures documented in this skill.
Makepad 2.0 Animation Skill
Version: makepad-widgets (dev branch) | Last Updated: 2026-03-03
Overview
The Animator system drives instance() shader variables over time, enabling hover effects, transitions, and looping animations. It uses independent animation tracks called "groups" that run simultaneously.
Documentation
Refer to the local files for detailed documentation:
./references/animator-reference.md- Complete Animator API, play types, ease functions, examples
IMPORTANT: Documentation Completeness Check
Before answering questions, Claude MUST:
- Read the relevant reference file(s) listed above
- If file read fails or file is empty:
- Inform user: "Reference docs incomplete. Still answering based on SKILL.md patterns."
- Still answer based on SKILL.md patterns + built-in knowledge
- If reference file exists, incorporate its content into the answer
Critical: Widget Animator Support
NOT all widgets support animator! Adding animator: Animator{...} to an unsupported widget is silently ignored - no error, no animation, nothing happens.
Widgets that SUPPORT Animator
View, SolidView, RoundedView, ScrollXView, ScrollYView, ScrollXYView, Button, ButtonFlat, ButtonFlatter, CheckBox, Toggle, RadioButton, LinkLabel, TextInput
Widgets that DO NOT Support Animator
Label, H1-H4, P, TextBox, Image, Icon, Markdown, Html, Slider, DropDown, Splitter, Hr, Filler
To animate a Label: Wrap it in a View with the animator:
View{
width: Fit height: Fit
animator: Animator{
hover: {
default: @off
off: AnimatorState{ from: {all: Forward {duration: 0.15}} apply: {draw_bg: {hover: 0.0}} }
on: AnimatorState{ from: {all: Forward {duration: 0.15}} apply: {draw_bg: {hover: 1.0}} }
}
}
label := Label{text: "Animated via parent"}
}
Animator Structure
animator: Animator{
<group_name>: {
default: @<state_name>
<state_name>: AnimatorState{
from: { ... }
ease: <EaseFunction>
redraw: true
apply: { ... }
}
<state_name>: AnimatorState{ ... }
}
<group_name>: { ... }
}
Groups
Each group is an independent animation track. Common groups:
| Group | Purpose | Typical States |
|---|---|---|
hover |
Mouse hover in/out | off, on |
focus |
Keyboard focus | off, on |
active |
Toggled/checked state | off, on |
disabled |
Disabled state | off, on |
time |
Continuous looping | off, on |
Multiple groups animate simultaneously without interfering.
The from Block
Controls transition timing. Keys are states being transitioned FROM, or all as catch-all.
// From any state, animate over 0.2 seconds
from: {all: Forward {duration: 0.2}}
// Instant from any state
from: {all: Snap}
// Different timing depending on origin
from: {
all: Forward {duration: 0.1}
down: Forward {duration: 0.01}
}
Play Types
| Type | Description | Example |
|---|---|---|
Forward {duration: 0.2} |
One-shot forward | Hover transitions |
Snap |
Instant jump, no animation | Default state initialization |
Loop {duration: 1.0} |
Looping animation | Loading spinners |
ReverseLoop {duration: 1.0} |
Ping-pong loop | Pulsing effects |
BounceLoop {duration: 1.0} |
Bounce back and forth | Bouncing animations |
Ease Functions
| Function | Description |
|---|---|
Linear |
Constant speed |
InQuad / OutQuad / InOutQuad |
Quadratic easing |
InCubic / OutCubic / InOutCubic |
Cubic easing |
InQuart / OutQuart / InOutQuart |
Quartic easing |
InQuint / OutQuint / InOutQuint |
Quintic easing |
InSine / OutSine / InOutSine |
Sine easing |
InExp / OutExp / InOutExp |
Exponential easing |
InCirc / OutCirc / InOutCirc |
Circular easing |
InElastic / OutElastic / InOutElastic |
Elastic spring |
InBack / OutBack / InOutBack |
Overshoot |
InBounce / OutBounce / InOutBounce |
Bounce |
Usage: ease: OutCubic in the AnimatorState (optional, defaults to Linear).
The apply Block
…
FAQ
Can all elements be animated?
No. Some elements like 'View' and 'Button' support animation, but others like 'Label' and 'Image' do not directly. To animate a 'Label', you need to wrap it inside a 'View' that can be animated.
What are animation 'groups'?
Groups are like independent animation tracks that can happen simultaneously. Common examples include 'hover' (for the mouse), 'focus' (for when an element is selected), and 'time' (for continuous animations).
How do I make an animation faster or slower?
You can adjust the 'duration' of the transition in seconds. You can also choose 'ease functions' that control the animation's speed at different points, like starting slow and speeding up, or vice versa.
Details
Original description by the author
Makepad 2.0 guidance for animation; use when building or debugging Makepad UI code.
Popularity
- GitHub stars
- 48k
- Ranking position
- #3525
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
angular-developer
Helps your agent create Angular code and give project structure advice. Useful for starting new projects, creating code parts, or improving performance and accessibility.
affaan-m/ECC
frontend-a11y
Helps your agent make web interfaces accessible to everyone. It ensures websites and apps work well with screen readers and keyboard navigation.
affaan-m/ECC
frontend-patterns
Has your agent apply modern patterns in frontend development. It optimizes performance, manages state, and follows best practices in React and Next.js.
affaan-m/ECC