What problem does it solve? Flutter developers often over-engineer simple animations with AnimationController boilerplate, hardcode arbitrary durations and curves, or animate layout-triggering properties that cause jank. This Skill provides decision trees, Material 3 motion tokens, and production patterns so animations are built with the simplest correct approach. ## Core Features & Use Cases - Implicit vs Explicit Decision Tree: Routes every animation request to the right tool — AnimatedFoo widgets, TweenAnimationBuilder, or AnimationController — and pushes back when a controller is requested for a simple target-value animation. - Material 3 Motion Tokens: Enforces Flutter's Durations and Easing constants instead of hardcoded Duration and Curves values, with an AppMotion class pattern for centralized motion constants. - Page Transitions & Hero: Covers CustomTransitionPage integration with GoRouter's GoRouteData.buildPage, reusable AppPageTransitions helpers, and Hero shared-element transition rules. - Performance & Anti-Patterns: Flags animating width/height/padding (forces layout passes), missing controller disposal, and rebuilding static children every frame, with Transform-based fixes. - Use Case: When asked to "add a fade and slide when the card appears", the Skill produces two nested implicit widgets (AnimatedOpacity + AnimatedSlide) with M3 tokens instead of a StatefulWidget with controller boilerplate. ## Quick Start Ask the AI to add a staggered fade-and-slide entry animation to a Flutter widget using Material 3 motion tokens.