nib_motion 0.2.1
nib_motion: ^0.2.1 copied to clipboard
A declarative, physics-based animation framework for Flutter. Inspired by Framer Motion — springs, gestures, variants, presence, scroll, FLIP layout, and GPU shader effects with zero external dependencies.
0.2.1 #
- Added example app demonstrating core primitives.
- Fixed
curly_braces_in_flow_control_structureslint issues. - Improved pub.dev package description and metadata.
- Added CI/CD via GitHub Actions.
0.2.0 #
Framework expansion: text animation, GPU shaders, presets, gestures, timeline orchestration, scroll utilities, path animation, and debug tools.
- Text:
NibText(per-character/word/line stagger),NibTypewriter,NibGradientText,NibTextReveal,NibTextConfig. - Shaders: GLSL
shimmer/dissolve/gradient_sweepfragment shaders,NibShimmer,NibDissolve,NibShaderLoader;NibMotionConfig.init()to preload shaders and set process-wide defaults at startup. - Presets:
NibAnimPresets(shake/bounceIn/pulse/rubberBand/wiggle/ fade*/zoom* constants),NibShake,NibBounce,NibPulse,NibFloat,NibFlip,NibRubberBand. - Gestures:
NibDraggable(bounded/elastic drag with snap-back/target),NibPinch(pinch-to-zoom),NibSwipeDismiss. - Timeline:
NibTimeline/NibTimelineEntryfor multi-controller orchestration,NibAnimationSequencefluent builder (animate/wait/call/loop). - Scroll:
NibParallax,NibScrollReveal. - Path:
NibPathMotion(move a widget along aPath),NibDrawPath(progressively reveal a strokedPath). - Debug:
NibMotionDebugger,NibPerfOverlay,NibMotionRegistry. - Framework:
NibMotionProvider,Widget.animate()/.shimmer()/ .revealOnScroll()extensions,int.ms/int.secondsduration shorthand. - Fix:
NibNavBaricons intermittently failed to render in release/AOT builds (most visibly the first item, sometimes all of them) — the old implementation pre-rendered each icon to a bitmap captured from an off-screenRepaintBoundarythat sat fully occluded behind the bar'sCustomPaintevery frame, which the engine can skip rasterizing in release builds. Icons are now realIconwidgets scaled viaTransform.scale, which stay crisp at any scale with no bitmap, no off-screen capture, and no race.
0.1.0 #
Initial release.
NibMotion: declarative, physics-based animation widget driving opacity, translation, scale, rotation, skew, color, border radius, and box shadow viainitial,animate, andexit.NibAnim/NibTransition: immutable animation snapshots and tween/spring transition descriptions, withspringGentle,springSnappy, andspringWobblypresets.- Spring physics (
NibSpringDescription,SpringSolver) and inertia-based coasting (InertiaSolver) for natural motion. - Gesture-driven animation:
whileTap,whileHover,whileFocus. - Dragging via
NibDragConfig— axis locking, constraints, elastic resistance, snap points, and spring-back/inertia/stay release behavior. NibPresence: playsexitanimations for removed children before unmounting them.NibVariants: named animation states that propagate from a parentNibMotionto descendants, withstaggerChildren/delayChildren.NibMotionController: imperative control of animations and multi-step sequences from outside the widget tree.NibKeyframe/computeAnimFromKeyframes: multi-stop enter animations.NibMotionList: aNibMotion-wrapped, optionally-staggered list.NibLayoutGroup: animates children to their new positions on layout changes using the FLIP technique.ScrollMotionBridge/NibScrollMotion/NibMotionValues: tieMotionValues directly to scroll position, bypassing the animation system entirely.MotionValue<T>/DerivedMotionValue/mapRange: reactive value containers with derived/mapped values.NibMotionConfig: app-wide defaults and reduced-motion support.