Hello NibMotion
Fade & slideNibMotion
initial → animate. Opacity and offset — the move you'll reach for a hundred times a day.
nib_motion brings physics-based, declarative animation to Flutter — no AnimationController, no tweens, just state. nib_components stacks 30+ native widgets on top, animated out of the box.
NibMotion( initial: NibAnim(opacity: 0, y: 20), animate: NibAnim(opacity: 1, y: 0), whileTap: NibAnim(scale: 0.92), transition: NibTransition.springSnappy, child: MyCard(), )
Every Flutter animation starts the same way: a controller, a ticker, a tween, an initState, a dispose. nib_motion deletes all of it.
class _CardState extends State<Card> with SingleTickerProviderStateMixin { late final AnimationController _c; late final Animation<Offset> _slide; @override void initState() { super.initState(); _c = AnimationController( vsync: this, duration: const Duration(milliseconds: 400), ); _slide = Tween( begin: const Offset(0, 0.3), end: Offset.zero, ).animate(CurvedAnimation( parent: _c, curve: Curves.easeOutBack)); _c.forward(); } @override void dispose() { _c.dispose(); super.dispose(); } @override Widget build(BuildContext context) => SlideTransition(position: _slide, child: child); }
NibMotion( initial: NibAnim(y: 30), animate: NibAnim(y: 0), transition: NibTransition.springSnappy, child: child, )
Same spring, springier curve, and no controller to leak. That is the whole pitch.
Fade, spring, stagger, gesture, presence, layout, scroll, text and GPU shaders. Each is a widget you wrap around your own. Hover and tap the cards — this is nib_motion, in the browser.
A real Flutter package — flutter pub add nib_components. Flip animated: true and any widget springs, staggers or shimmers on the same engine. Reads your NibTheme, works light and dark, imported like anything else.
NibButton( label: 'Get started', variant: NibButtonVariant.fill, animated: true, onPressed: () => submit(), )
Apple's Liquid Glass material — as a real Flutter box.
The one-time-code field you were about to build by hand.
Drag-to-resize layouts that never fall apart.
Ship a ⌘K launcher in an afternoon.
Swipeable stories with real momentum.
Thousands of rows, still buttery.
Two Flutter packages on pub.dev — nib_components is built on nib_motion, so they speak the same language.
Physics-based, declarative animation with zero dependencies. The springs, gestures and presence you just saw — dropped onto any Flutter widget, yours or anyone's.
$ flutter pub add nib_motionThirty-plus native, themeable components built on top of nib_motion — from buttons and sliders to liquid glass and a command palette, animated out of the box.
$ flutter pub add nib_componentsAdd nib_motion in one line and animate with state instead of boilerplate — then let nib_components do it for your whole UI.