Comprehensive guide for implementing animations in Flutter with decision trees and patterns for every animation type.
Works with
Covers five animation approaches: implicit animations (AnimatedContainer, AnimatedOpacity, TweenAnimationBuilder), explicit animations (AnimationController, Tween, AnimatedWidget/AnimatedBuilder), hero animations (shared element transitions), staggered animations (sequential/overlapping with Interval timing), and physics-based animations (spring, gravity, fling)
Includes
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionflutter-animationsExecute the skills CLI command in your project's root directory to begin installation:
Fetches flutter-animations from madteacher/mad-agents-skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate flutter-animations. Access via /flutter-animations in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
1
total installs
1
this week
91
GitHub stars
0
upvotes
Run in your terminal
1
installs
1
this week
91
stars
Create smooth, performant animations in Flutter using the right approach for each use case. This skill covers complete animation workflow: from choosing between implicit/explicit approaches to implementing complex effects like hero transitions and staggered animations.
Choose the right animation type based on your requirements:
Implicit Animations - Use when:
Explicit Animations - Use when:
Hero Animations - Use when:
Staggered Animations - Use when:
Physics-Based Animations - Use when:
Implicit animations automatically handle the animation when properties change. No controller needed.
AnimatedContainer - Animates multiple properties (size, color, decoration, padding):
AnimatedContainer(
duration: const Duration(milliseconds: 300),
curve: Curves.easeInOut,
width: _expanded ? 200 : 100,
height: _expanded ? 200 : 100,
color: _expanded ? Colors.blue : Colors.red,
child: const FlutterLogo(),
)
AnimatedOpacity - Simple fade animation:
AnimatedOpacity(
opacity: _visible ? 1.0 : 0.0,
duration: const Duration(milliseconds: 300),
child: const Text('Hello'),
)
TweenAnimationBuilder - Custom tween animation without boilerplate:
TweenAnimationBuilder<double>(
tween: Tween<double>(begin: 0, end: 1),
duration: const Duration(seconds: 1),
builder: (context, value, child) {
return Opacity(
opacity: value,
child: Transform.scale(
scale: value,
child: child,
),
);
},
child: const FlutterLogo(),
)
Other implicit widgets:
AnimatedPadding - Padding animationAnimatedPositioned - Position animation (in Stack)AnimatedAlign - Alignment animationAnimatedContainer - Multiple propertiesAnimatedSwitcher - Cross-fade between widgetsAnimatedDefaultTextStyle - Text style animationCurves class)curve and duration for predictable behavioronEnd callback when neededExplicit animations provide full control with AnimationController.
AnimationController - Drives the animation:
late AnimationController _controller;
void initState() {
super.initState();
_controller = AnimationController(
duration: const Duration(seconds: 2),
vsync: this,
);
}
void dispose() {
_controller.dispose();
super.dispose();
}
Tween - Interpolates between begin and end values:
animation = Tween<double>(begin: 0, end: 300).animate(_controller);
CurvedAnimation - Applies a curve to the animation:
animation = CurvedAnimation(
parent: _controller,
curve: Curves.easeInOut,
);
Best for reusable animated widgets:
class AnimatedLogo extends AnimatedWidget {
const AnimatedLogo({super.key, required Animation<double> animation})
: super(listenable: animation);
Widget build(BuildContext context) {
final animation = listenable as Animation<double>;
return Center(
child: Container(
height: animation.value,
width: animation.value,
child: const FlutterLogo(),
),
);
}
}
Best for complex widgets with animations:
class GrowTransition extends StatelessWidget {
const GrowTransition({
required this.child,
required this.animation,
super.key,
});
final Widget child;
final Animation<double> animation;
Widget build(BuildContext context) {
return Center(
child: AnimatedBuilder(
animation: animation,
builder: (context, child) {
return SizedBox(
height: animation.value,
width: animation.value,
child: child,
);
},
child: child,
),
);
}
}
animation.addStatusListener((status) {
switch (status) {
case AnimationStatus.completed:
_controller.reverse();
break;
case AnimationStatus.dismissed:
_controller.forward();
break;
default:
break;
}
}Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
pproenca/dot-skills
flutter/skills
dylantarre/animation-principles
devmartinese/awwwards-animations-skill
estevg/skills
ajianaz/skills-collection
Solid pick for teams standardizing on skills: flutter-animations is focused, and the summary matches what you get after install.
We added flutter-animations from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Useful defaults in flutter-animations — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Useful defaults in flutter-animations — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
I recommend flutter-animations for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
flutter-animations fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
Registry listing for flutter-animations matched our evaluation — installs cleanly and behaves as described in the markdown.
Registry listing for flutter-animations matched our evaluation — installs cleanly and behaves as described in the markdown.
Keeps context tight: flutter-animations is the kind of skill you can hand to a new teammate without a long onboarding doc.
flutter-animations has been reliable in day-to-day use. Documentation quality is above average for community skills.
showing 1-10 of 46