The verified catalog: every animation runs live in the browser (real Flutter web, not a screen recording), ships copy-paste code, and is annotated with its pitfalls (with sources and confidence). Search and reuse them straight from Claude Code / Cursor via MCP.
claude mcp add --transport http flutter-motion https://mcp.markxian.cn/mcp A ListView of rows wrapped in Dismissible. Swipe a row to fling it off-screen over a colored background; onDismissed removes the item from the data source so the list and the widget tree stay consistent.
A tappable header expands and collapses a body whose height is unknown. Pure implicit animation: AnimatedSize tweens to whatever intrinsic size its child reports — no manual controller, no measuring.
Tap a grid item and the element "flies" to its spot on the detail page. Both ends share one Hero tag and the framework takes over the transition.
Use PageRouteBuilder to customize the enter animation (fade + a slight slide-up) instead of the default platform transition.
An AnimatedList driven by a GlobalKey<AnimatedListState>. Adding calls insertItem with a SizeTransition+FadeTransition entrance; tapping removes via removeItem, whose builder animates the just-removed item out.
Tap a card to flip it 180° around the Y axis and reveal the back. An AnimationController drives an AnimatedBuilder + Transform whose Matrix4 carries a perspective term so the rotation reads as a real card, not a flat squash.
A bottom sheet the user can drag between heights and then scroll its contents. DraggableScrollableSheet hands the builder a ScrollController that composes the drag and the inner scroll so the hand-off feels seamless. Adds snap points.
Show a sweeping shimmer placeholder while data loads. A single controller + a ShaderMask gradient sweep is cheaper than one controller per item.
A scroll-driven collapsing header: a SliverAppBar with expandedHeight and a FlexibleSpaceBar whose background parallaxes while the bar shrinks to a pinned toolbar. No AnimationController — the scroll offset is the driver.
List items fade-and-slide in one after another. A single AnimationController + Interval drives the stagger — cheaper than one controller per item.
A circular progress ring whose arc sweeps from 0 to full, driven by an AnimationController passed to CustomPainter's super(repaint:) so it repaints off the animation rather than off parent rebuilds. The Paint is cached.
Drag a box and release it; it springs back to center with a SpringSimulation fed to animateWith. The release (pan) velocity becomes the simulation's initial velocity, so the motion continues naturally from the gesture.