PackageTrack
Sign in Get early access

flutter_floating_bottom_bar

An adaptable Flutter floating bottom bar for navigation, search, and custom widgets, with scroll-aware visibility and accessible interactions.

2.1.0 4.7K downloads/mo #3924 most downloaded on pub.dev codenameakshay/flutter-floating-bottom-bar

What this package is like to depend on

Last release 13 days ago

10 Aug 2026

Ships fairly regularly

a new release about every 8 months

Nearly every release is documented

notes for 12 of 12 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

12 releases · first in 2021

5 releases in the last 12 months

see the full history below

Release timeline

12 releases · Dec 2021 to Aug 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 12
  1. 2.1.0 10 Aug 2026
    Release notes

    flutter_floating_bottom_bar 2.1.0 is available on pub.dev.

    This release makes scrolling behavior more deterministic, improves accessibility and responsive layouts, and strengthens package release quality.

    Highlights

    • Add BottomBarLayout.maxWidth and BottomBarLayout.adaptive(...) for width-capped layouts on phones, tablets, and desktop.
    • Add BottomBarBodyPadding to reserve the live floating-bar footprint, including offset and bottom safe area.
    • Add showAtStart and showOnScrollEnd visibility behavior and correct nested-scroll start/end targeting.
    • Make controller ownership strict and isolate unrelated descendant and floating-child scrollables.
    • Replace build-time size polling with render-time observation for more stable layout performance.
    • Improve reduced-motion behavior, hidden-state hit testing and semantics, RTL badges, accessible naming, contrast, and 48×48 minimum touch targets.
    • Modernize the example app, web bootstrap, documentation, CI, and pub.dev archive validation.

    Screenshots

    Responsive desktop demo Polished mobile demo

    Verification

    • 102 package tests passed.
    • 3 example smoke and UX tests passed.
    • Package and example analysis completed with zero issues.
    • flutter pub publish --dry-run completed with zero warnings; compressed archive size is 251 KB.
    • GitHub Actions passed on the merged release commit.
    • Accessibility and visual QA checks passed.

    See the complete changelog for every addition, behavior change, and fix.

    Open source →
    Release notes

    Added

    • BottomBarLayout.maxWidth and BottomBarLayout.adaptive(maxWidth: ...) for width-capped adaptive layouts, plus copyWith(clearMaxWidth: true) for returning a derived layout to an uncapped width.
    • BottomBarBodyPadding as the built-in way to reserve the live floating-bar footprint inside BottomBar.body.
    • BottomBarScrollBehavior.showAtStart and BottomBarScrollBehavior.showOnScrollEnd for settling-based visibility restoration.

    Changed

    • BottomBarScope.barHeight now reflects the full rendered footprint reserved by the bar, including configured offset and bottom safe-area when enabled.
    • BottomBarItem accessible naming is now deterministic: semanticLabel wins, otherwise tooltip, otherwise descendant semantics. Explicit names exclude descendant semantics to avoid duplicate announcements; items also expose selected/enabled button state, keep a 48x48 minimum target, and place badges at the directional top-end in both LTR and RTL layouts.
    • Custom BottomBarMotion.transitionBuilder usage is documented as a paint-only contract that must preserve layout footprint.
    • The hidden action is direction-aware by default: glyph, tooltip, and semantics flip with scrollOpposite, the touch target stays at least 48x48 when active, and the default glyph color follows ColorScheme.onPrimary.
    • Hidden bar actions are non-interactive and excluded from semantics when the bar is visible.
    • Reduced-motion environments snap directly to the target shown/hidden state instead of animating.
    • BottomBarController ownership is strict: double-attach fails in debug and release, and visibility updates are accepted only from the owning bar.
    • BottomBarController boundary scrolling now documents and uses explicit start/end semantics independent of scrollOpposite.

    Fixed

    • BottomBarController.scrollToStart() always targets ScrollPosition.minScrollExtent, and scrollToEnd() always targets ScrollPosition.maxScrollExtent.
    • NestedScrollView boundary scrolling now targets the correct coordinated controller so start/end actions reset both header and body as expected.
    • Large iconOffset values keep the hidden action tappable because hit testing now follows the translated visual position.
    • The hidden action's full 48x48 minimum target now accepts taps at its corners; circular clipping applies only to the animated visual.
    • The example web app now uses Flutter's current generated bootstrap and package-specific, orientation-neutral PWA metadata.
    Open source →
  2. 2.0.2 26 Jun 2026
    Release notes

    Patch release.

    Fixed

    • BottomBarController.scrollToStart() (and the built-in back-to-top icon) now fully resets a NestedScrollView. Previously the collapsed SliverAppBar/FlexibleSpaceBar stayed collapsed and the list landed below its true top, because the bar only animated the most-recently-active of the view's two coordinated scroll positions. The controller now detects an enclosing NestedScrollView and drives its shared scroll coordinator with a single call — animating the outer controller to the top (which pulls the inner body up with it) for scrollToStart, and the inner controller to the bottom (which collapses the header) for scrollToEnd. (#21, #22)

    Full Changelog: 2.0.1...2.0.2

    📦 Published to pub.dev: https://pub.dev/packages/flutter_floating_bottom_bar/versions/2.0.2

    Open source →
    Release notes
    • Fix: BottomBarController.scrollToStart() (and the back-to-top icon) did not fully reset a NestedScrollView — the collapsed SliverAppBar/FlexibleSpaceBar stayed collapsed and the list landed below its true top. A NestedScrollView scrolls on two coordinated positions (an outer header and an inner body), but the bar only animated the most-recently-active one. The controller now detects an enclosing NestedScrollView and drives its shared scroll coordinator with a single call — animating the outer controller to the top (which pulls the inner body up with it) for scrollToStart, and the inner controller to the bottom (which collapses the header) for scrollToEnd. (#21)
    Open source →
  3. 2.0.1 24 Jun 2026
    Release notes

    Patch release.

    Fixed

    • The back-to-top icon became unclickable when a large iconOffset was set. The icon was painted at the offset position, but its SafeArea ancestor still hit-tested against the original (untranslated) rect, so a large offset moved the visible icon outside its tappable area. The offset now wraps the icon's SafeArea so hit-testing follows the painted position. (#19, #20)

    Full Changelog: 2.0.0...2.0.1

    📦 Published to pub.dev: https://pub.dev/packages/flutter_floating_bottom_bar/versions/2.0.1

    Open source →
    Release notes
    • Fix: the back-to-top icon became unclickable when a large iconOffset was set. The icon was painted at the offset position but its SafeArea ancestor still hit-tested against the original (untranslated) rect, so a large offset moved the visible icon outside its tappable area. The offset now wraps the icon's SafeArea so hit-testing follows the painted position. (#19)
    Open source →
  4. 2.0.0 30 Apr 2026
    Release notes

    What's Changed

    Issues dock AI prompt dock Basic TabBar
    Minimal API Nested scroll Badged nav
    Custom transition

    Full Changelog: 1.4.0...2.0.0

    Open source →
    Release notes

    Major release. Breaking changes — see the migration table in README.md.

    Breaking:

    • Dart SDK minimum is now >=3.5.0 because the package uses Motor-backed motion.
    • BottomBar.body is now Widget instead of Widget Function(BuildContext, ScrollController). The bar listens to ScrollNotification from any descendant scrollable; you no longer wire a controller through the builder.
    • The barColor, width, offset, borderRadius, barAlignment, fit, clip, and respectSafeArea parameters moved into BottomBarLayout.
    • The duration, curve, start, and end parameters moved into BottomBarMotion. BottomBarMotion() now defaults to Cupertino spring motion; existing BottomBarMotion(duration: ..., curve: ...) calls remain curve-based. start/end (doubles) are now slideStart/slideEnd (Offsets).
    • The hideOnScroll, reverse, scrollOpposite, and scrollDeltaThreshold parameters moved into BottomBarScrollBehavior. scrollDeltaThreshold is now deltaThreshold.
    • The iconWidth, iconHeight, iconDecoration, and barDecoration parameters moved to BottomBarThemeData (per-instance overrides remain via the theme: argument).
    • BottomBarScrollControllerProvider is replaced by BottomBarScope. The scrollController field is gone; new fields are barHeight and isVisible.
    • The hardcoded Colors.black default is replaced with Material 3 colorScheme.surfaceContainer for the bar and colorScheme.primary for the icon.

    New:

    • Motor-backed Cupertino motion is the default show/hide engine, with velocity-preserving redirection when scroll direction changes mid-animation.
    • BottomBarMotion.cupertino(...), BottomBarMotion.curved(...), and BottomBarMotion.motor(...) constructors.
    • BottomBarThemeData ThemeExtension for app-wide defaults.
    • BottomBarTransition enum (slide, fade, scale, slideAndFade) plus BottomBarMotion.transitionBuilder.
    • BottomBarItem and BottomBarItems helpers for the common nav-item case.
    • BottomBarScope.barHeight exposes the live rendered bar height to descendants for content-padding purposes.
    • BottomBarScope.isVisible exposes live visibility without owning a controller.
    • Notification-based scroll detection works with NestedScrollView, CustomScrollView, multiple TabBarView children, and any user-supplied ScrollController with no wiring.
    • BottomBarScrollBehavior.predicate for filtering unwanted notifications.
    • BottomBarController now asserts on double-attach in debug.

    Repository:

    • Package source moved from packages/flutter_floating_bottom_bar/ to repo root. The example app moved to example/. The packages/ directory is removed.
    Open source →
  5. 1.4.0 10 Mar 2026
    Release notes

    Full Changelog: 1.3.0...1.4.0

    Open source →
    Release notes
    • Upgrade project/tooling for Flutter 3.41.4 development via FVM.
    • Update SDK constraints and refresh dependencies.
    • Add BottomBarController for programmatic show, hide, toggle, scrollToStart, and scrollToEnd.
    • Add onVisibilityChanged callback for visibility state transitions.
    • Add scrollDeltaThreshold to reduce flicker from minor scroll movement.
    • Add iconSemanticLabel and iconTooltip for better accessibility.
    • Improve internal scroll/visibility handling and test coverage.
    Open source →
  6. 1.3.0 14 Apr 2025
    Release notes

    Full Changelog: 1.2.1...1.3.0

    Open source →
    Release notes
    • Added respectSafeArea property to control whether the BottomBar should respect the safe area.
    • Removed deprecated alignment property (use barAlignment instead).
    • Fixed ScrollController issues with multiple attachments.
    • Improved scroll listener management for better performance.
    Open source →
  7. 1.2.1 23 Aug 2024
    Release notes

    What's Changed

    • v1.2.0 | Update to Flutter 3.13.0, add offset, barAlignment, barDecoration, iconDecoration properties by @codenameakshay in #6
    • Using correct dependency name with underscores. by @chintan100 in #9
    • Fix for Unpleasant overlay effect by @JanZeman in #14
    • Fix for Unexpected white line on the Sample app TabBar by @JanZeman in #12

    New Contributors

    Full Changelog: 1.1.0...1.2.1

    Open source →
    Release notes
    • Update to Flutter 3.22.1.
    • Fix divider error in example.
    • Update dependencies.
    Open source →
  8. 1.2.1+1 23 Aug 2024
    Release notes

    Full Changelog: 1.2.1...1.2.1+1

    Open source →
    Release notes
    • Fix code formatting.
    Open source →
  9. 1.2.0 28 Aug 2023
    Release notes
    • Add offset, barAlignment, barDecoration, and iconDecoration properties.
    • Remove bottom property.
    • Deprecate alignment in favor of barAlignment.
    • Update all code examples and fix errors.
    Open source →
  10. 1.1.0 09 Aug 2022
    Release notes

    1.1.0

    Add clip property to support clip behavior.
    Add an example for bar with a FAB.

    1.0.1

    Support for Flutter 3.10.5
    Update dependencies

    Open source →
    Release notes
    • Add clip property to support clip behavior.
    • Add an example for a bar with a FAB.
    Open source →
  11. 1.0.0 26 Dec 2021
    Release notes
    • Initial release with basic functionality.
    Open source →
  12. 1.0.0+1 26 Dec 2021
    Release notes
    • Add documentation.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive