Apply motion design principles for mobile apps covering timing curves, transitions, gestures, and performance-conscious animations. Use when implementing screen transitions, gesture-driven interactions, shared-element animations, or optimizing animation frame rates on iOS, Android, or Flutter.
78%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/common/common-mobile-animation/SKILL.md| Duration | Range | Use Case |
|---|---|---|
| Short | 100-150ms | Toggles, cell press |
| Medium | 250-350ms | Navigation, modals |
| Long | 400-600ms | Shared element, complex state |
Hard limit: Never exceed 600ms for any animation.
400-600ms shared-element or complex-state pattern; do not substitute the Medium range.Curves.fastOutSlowIn (Material) or easeInOut (iOS). Never use linear.transform, opacity). Avoid width/height which trigger layout.onPan / interactivePopGesture for fluid, interruptible UX.See implementation examples for Flutter and iOS animation patterns.
dispose() AnimationControllers in Flutter; invalidate timers in iOS.When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
HoangNguyen0403/agent-skills-standard
cd1e988
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.