flutter_micro_interactions 0.3.2
flutter_micro_interactions: ^0.3.2 copied to clipboard
Micro-interactions and clean animations for Flutter, including AI interface motion: border beam, thinking orbs, streaming text, voice glow, and more.
0.3.2 #
Documentation #
- The README now opens with a GIF of the new AI and agent widgets and a short note that they are a few of the animations added in 0.3.
0.3.1 #
Fixed #
StreamingText: the streaming cursor now follows the visible words. It no longer jumps ahead of words that have not started to appear yet, or onto the next line.
0.3.0 #
The largest release so far: more than 50 new widgets for AI interfaces, text, borders, pointer effects, carousels, controls and buttons, a redesigned example app, and improvements to existing widgets. No breaking changes, except the higher minimum Flutter version.
Added: AI and agents #
BorderBeam: an animated rainbow glow that rides the border of a card, button or input, withbeam,lineandpulsestyles, four palettes, and a fade in and out driven byactive. The effect stays on the border;innerGlowadds an optional soft inner light. A Flutter port of Border Beam from libraries.dev.ThinkingOrb: a dotted 3D orb that replaces a spinner, with nine states (working, searching, solving, listening, connecting, weaving, composing, thinking, shaping). A Flutter port of Thinking Orbs from libraries.dev.ThinkingSteps: a reasoning trace with per-step status, a live timer, and a smooth collapse when thinking is done.StreamingText: text that fades or unblurs new words as a response streams in, with an optional cursor.VoiceGlow: a sound reactive glow for voice inputs, with idle, listening, processing and off states. A Flutter port of Voice from libraries.dev.VoiceWaveform: equalizer bars for a recording pill.ShimmerText: the "Thinking..." light sweep, for text or any widget.TypingIndicator: typing dots in bounce, pulse and wave styles.ToolCallChip: an agent tool call chip with a progress wipe, a live timer, and a success or error result.LatticeLoader: a compact loader with a wave of cells and a stopwatch.RefineFrame: a media frame that steps an image through generation stages, withRefineFrame.blurredto build the stages from one image.VoicePill: a mic button that grows into a recording capsule with live equalizer bars and a timer.StatusMark: one glyph that morphs between idle, loading, success and error.
Added: text effects #
TextReveal: staggered entrance by character or word with fade, slide, blur or scale.DecryptedText: random glyphs that resolve into the real text, on mount or on hover.RotatingText: cycles phrases letter by letter through a mask.GradientText: text filled with a sliding or rotating gradient.
Added: borders and glow #
CometBorder: a comet with a tail of light travels the outline.ElectricBorder: crackling strands of current along the border.
Added: pointer and hover #
Magnet: pulls a widget toward the pointer, then springs back.SpotlightCard: a card with a spotlight that follows the pointer.TiltCard: 3D tilt toward the pointer with a glare highlight.GlareHover: a glossy streak sweeps across on hover or press.ClickSpark: sparks that burst from every tap.HalftoneReveal: a halftone image that turns into the real photo under the pointer.PixelSwap: new content builds in cell by cell from where the pointer entered.PixelTransition: a retro pixel dissolve between two widgets.
Added: cards and carousels #
DepthCarousel: cards on a 3D rail with drag, momentum, snapping, keyboard and autoplay.MorphSlider: an image slider that melts, ripples or swirls between images with a fragment shader shipped in the package, and a crossfade fallback.ReflectiveCard: a metal card (chrome, gold, graphite or holographic) that catches the light as it tilts.LogoLoop: a seamless infinite marquee.OrbitItems: items that orbit a center widget along a circle, an ellipse or a custom path.
Added: controls #
SquishSwitch,RubberSegment,JellyRadioGroup,SpringCheckbox: selection controls with spring physics.PeekRating: star rating with a wave preview.GlideSelect: a select chip with a menu that pops from its corner.WakeSlider,CometDial,ScrubField: value inputs with physical motion.CodeSlots: a one-time code input with paste and SMS autofill.
Added: buttons, menus and overlays #
PulseHeart,FuseButton,SlingButton,BellToggle: expressive buttons.WarmTooltipandWarmTooltipGroup: tooltips that glide between neighbours once one is open.BranchedMenu: collapsible navigation with a traced selection.GradualBlur: progressive blur toward an edge.GrainOverlay: animated film grain.RevealOnScroll: animates a widget in when it scrolls into view.
Added: confirmation #
HoldToConfirm: press and hold to fill a button and confirm, with horizontal and liquid fill styles.
Many of the new widgets are inspired by React Bits (reactbits.dev).
Improved #
SlideToConfirm: newonConfirmAsync. While itsFutureis pending the thumb shows a spinner (loadingChild) and the control stays locked; errors spring the thumb back and go to the newonError.SlideToConfirmController.isLoadingreports the pending state, andloadingSemanticLabelsets the announcement.onConfirmedis now optional and behaves exactly as before.ToastNotification: newswipeToDismiss(on by default),showProgresscountdown bar, andpauseOnHover.ButtonStateController.run: shows loading, awaits a task, then shows success or error and returns to idle.AnimatedCounter: newprefix,suffix,fractionDigitsandthousandsSeparatorformatting options. The odometer mode now rolls digits in and out when the number of digits changes, settles to the new width, and clips digits to exactly one line.MicroReorderableList: newonReorderItemcallback with indexes already adjusted for the removed item.onReorderis deprecated.
Fixed #
TapFeedbackandRippleEffect(issue #2, "the action happens sometimes, but sometimes it doesn't"): the press feedback now starts from raw pointer events, so it shows on every press, including quick taps inside scroll views and over interactive children, and it is cancelled when the press turns into a scroll. Their gesture detector only competes for taps whenonTapis set. When a child widget takes a tap away fromonTap, debug builds print a warning that explains whyonTapdid not run.TapFeedbackhaptics now play when a tap completes, never on scroll.ShapeMorph: turningautoReverseoff now stops the loop, and a newdurationapplies to a running loop.ParallaxScroll: the background is painted behind the layers again.ParallaxImage: the image always covers its area at narrow widths.SkeletonScopeandLoadingSkeleton: a newdurationapplies to a running shimmer.PulseHighlightController: listeners are notified when the widget stops pulsing on its own (aftermaxPulseCountor a tap).WaterRipple: paints nothing while stopped instead of static rings.RippleButton: fills the width it is given.MicroPageRoute: reuses one curved animation per route and disposes it, fixing a memory leak.AnimatedCounter: see the odometer improvements above.
Changed #
AnimatedGradientBorder:stop()now pauses the sweep in place, andstart()resumes from there.RippleEffectpasses its constraints through to its child.HoverGlowno longer adds a focus stop of its own; it still glows when a focusable child has keyboard focus.- Minimum Flutter version is now 3.44 (Dart 3.12). The package supports the latest stable Flutter release and the one before it.
- The repository moved to https://github.com/dvxlabs520/flutter_micro_interactions.
0.2.0 #
New animations, built on the stable 0.1.0 base. No breaking changes.
Added #
SuccessBurst: one-shot particle burst for success confirmations, withSuccessBurstControllerand support for repeated bursts.PulseHighlight: expanding pulse rings that draw attention to a widget, withPulseHighlightController, auto play, and an optional pulse limit.AnimatedCounter: animated number changes with two modes, numeric count and odometer-style sliding digits.AnimatedBadge: a count badge attached to a corner of a widget that scales in and out and bounces when the count changes.StaggeredList: staggered entrance animation for list children, with abuilderconstructor and a standaloneStaggeredItemfor custom layouts.ShimmerButton: a call-to-action button with a periodic shimmer sweep, keyboard activation, and press feedback.SlideToConfirm: slide a thumb across a track to confirm an action, with a spring return, a confirmed state, and a direct confirm action for screen readers and keyboards.ExpandableFab: a floating action button that expands into a set of action buttons, linearly or radially, with staggered entrance.AnimatedCheck: a checkmark or cross drawn with an animated stroke, for loading-to-result flows.AnimatedGradientBorder: an animated sweeping gradient border around any widget.TypewriterText: text that types itself out, with a blinking cursor, deletion, and cycling through several strings.LiquidProgress: a progress indicator filled with an animated liquid wave, in circle or rectangle shape.
All new widgets follow the package conventions: duration, curve, and
enabled parameters, reduced motion support, screen reader support, and
theme-aware default colors.
0.1.0 #
Stabilization release. This version fixes broken behavior, renames classes that conflicted with the Flutter SDK and popular packages, unifies the API, and adds accessibility support across the package.
Breaking changes #
- Renamed
ReorderableListtoMicroReorderableList(conflicted with the Flutter SDK). - Removed
TransitionRoute(conflicted with the Flutter SDK). UseMicroNavigatorhelpers instead. - Renamed
PageTransitiontoMicroPageRouteandPageTransitionTypetoMicroTransitionType. - Removed
SharedAxisTransitionandHeroTransition. - Renamed
SwipeActiontoMicroSwipeAction. - Renamed
MenuItemtoLongPressMenuItem. - Renamed
ShapeTypetoMicroShapeType. - Renamed
ButtonStatetoMicroButtonState.ButtonStatesis now driven by aButtonStateControllerinstead of aGlobalKey, and state widgets are now builders (loadingBuilder,successBuilder,errorBuilder). - Removed the extensions on
List<Widget>andWidget(ReorderableListExtension,withCardFlip). - Removed the unused
onMenuItemSelectedparameter fromLongPressMenu. - Minimum Flutter version is now 3.38.
Fixed #
MorphingShapesnow morphs between shapes with real path interpolation instead of switching halfway through the animation.ElasticScrollnow applies real elastic resistance and an animated snap back.elasticityandstiffnessare honored.ParallaxScrollandParallaxImagenow produce a real parallax effect.FloatingLabelnow animates the label on focus, and itsvalidatorworks withForm.validate(). The error message is no longer shown twice.- Toast notifications: the close button now dismisses the toast, toasts animate out, timers are cancelled correctly, and multiple toasts no longer overlap.
ShakeToActionno longer fires on a simple drag. It now requires a real back-and-forth gesture, and can be triggered programmatically withShakeController.HoverGlownow fades out smoothly when the pointer leaves the widget.SwipeActionsnow reveals a row of tappable actions, supports more than one action per side, and honorsactionExtentRatio.MicroReorderableListno longer crashes when the list of children grows.CardFlipno longer gets out of sync after rapid taps, and supports both controlled and uncontrolled use.TextSkeletonnow renders the shorter last line correctly.- Widgets now react to configuration changes (
duration,curve, controllers) after the first build, and animations are guarded against use after dispose.
Added #
- Reduced motion support across the package. Animations respect the platform "reduce motion" setting.
- Screen reader support: semantic buttons, state announcements, custom semantic actions for swipe and long press, and live region announcements for toasts.
- Keyboard support for interactive widgets (focus highlight and activation with Enter and Space).
- Controllers for programmatic use:
ButtonStateController,CardFlipController,MorphingShapesController,ShakeController,WaterRippleController. ToastPosition, toast styling options, action button, and toast stacking.- Builder constructors for lists (
ElasticListView.builder,MicroReorderableList.builder). PullToRefresh.adaptiveand fullRefreshIndicatorparameter passthrough.- Theme-aware default colors, including dark mode support for skeletons.
- Documentation comments for the whole public API.
0.0.2 #
- Added Toast Notifications (animated, multiple styles)
- Added Floating Label Animation (with validation)
- Added Reorderable List Animation (drag & drop, feedback)
- Added Card Flip Animation (3D flip, perspective)
0.0.1 #
- Initial release of flutter_micro_interactions package
- Added ButtonStates widget for interactive button animations
- Added ElasticScroll widget for elastic scrolling effects
- Added HoverGlow widget for hover animations
- Added InputFocus widget for input field animations
- Added LoadingSkeletons widget for loading state animations
- Added LongPressMenu widget for long press interactions
- Added MorphingShapes widget for shape morphing animations
- Added PageTransitions widget for custom page transitions
- Added ParallaxScroll widget for parallax scrolling effects
- Added PullToRefresh widget for pull-to-refresh animations
- Added RippleEffect widget for ripple animations
- Added ShakeToAction widget for shake detection
- Added SwipeActions widget for swipe interactions
- Added TapFeedback widget for tap animations