NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2830 most downloaded on pub.dev
Adaptive platform-specific widgets for Flutter. Auto renders native iOS 26+ liquid glass designs, traditional Cupertino widgets for older iOS versions, Material Design for Android.
Last release 18 days ago
19 Sep 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 35 of 35 stable releases
Nothing withdrawn
no release was ever pulled
12 months old
35 releases · first in 2025
FIX : 📱 iPhone Duo: the tab bar now lives in the vertical bar , at the bottom of it, the way the system lays it out. In 1.0.0 it stayed at the bottom
spacerAfter), with the back button as a round control on top, matching the system's sizes and spacing. The title moves to the leading edge, and content scrolling under it is blurred and faded like the system's scroll edge effectlabel on AdaptiveAppBarAction, a short name such as "Undo". It names the action in the iPhone Duo overflow menu, for VoiceOver on iOS, and as the tooltip on Android. Unlike title, it never replaces the icon with text. Give every icon action oneicon or iconWidget (no iosSymbol) showed up empty in the vertical baruseNativeBottomBar: false) is left where it is on iPhone Duo; only the native tab bar moves into the vertical barOne column per month.
BREAKING : The minimum iOS deployment target is now 15.0 (was 13.0). Xcode 27 no longer builds below 15.0. Set platform :ios, '15.0' in your ios/Podfi
platform :ios, '15.0' in your ios/Podfile and IPHONEOS_DEPLOYMENT_TARGET = 15.0 in the Runner projectAdaptiveApp, every AdaptiveScaffold with AdaptiveAppBar(useNativeToolbar: true) hands its app bar to one fixed toolbar above the navigator. No code change is needed for ordinary pages. AdaptiveAppBar.leading, titleWidget and AdaptiveAppBarAction.iconWidget are now built above the navigator, so they must not look up Navigator.of(context) or page-level inherited widgets from their own context; capture the page's context in the callback instead. useHeroBackButton has no effect while the fixed toolbar is in use, because the back button already stays in place. See "Migrating to 1.0.0" in the READMESafeArea no longer runs underneath the status cluster and the vertical barAdaptiveToolbarHost, for apps that do not use AdaptiveApp. Install it in the app builder. It is router-agnostic: it relies on the widget tree only, not on a NavigatorObserver, so it works with Navigator, GoRouter (including StatefulShellRoute), auto_route, nested navigators and tabsuseFixedToolbar on AdaptiveScaffold (default true). Set it to false for a scaffold that does not fill the screen from the top, such as one pane of a side by side layout, so it keeps its own toolbar. Scaffolds shown in a sheet, dialog or popup do this automaticallyfoldable ^1.0.3 for the iPhone Duo reserved regionsPackage.swift now declares its FlutterFramework dependencyNEW : Custom SF Symbols on iOS. AdaptiveAppBarAction , native buttons, and the tab bar now fall back to a bundle asset ( UIImage(named:) ) when a name
AdaptiveAppBarAction, native buttons, and the tab bar now fall back to a bundle asset (UIImage(named:)) when a name is not a system SF Symbol, so custom symbols or images from the app's asset catalog work (@hieutbui)iconWidget on AdaptiveAppBarAction for a custom fallback widget (e.g. an SVG) on iOS <26 and Android (@hieutbui)AdaptiveNavigationDestination.selectedIcon now accepts a distinct SF Symbol name for the selected state (outline when unselected, filled when selected) (@hieutbui, @philipgiuliani)minuteInterval on AdaptiveTimePicker and AdaptiveDatePicker restricts selectable minutes to a fixed grid (e.g. 15-minute steps). iOS uses the native minuteInterval; Android snaps the picked value onto the grid (@luflow)AdaptiveDatePicker now honors dateAndTime and monthYear modes on Android too, with use24HourFormat support (@luflow)NEW : subtitle and titleWidget on AdaptiveAppBar . Show a smaller subtitle below the title, or replace the title area with any widget. Works on iOS 26
subtitle and titleWidget on AdaptiveAppBar. Show a smaller subtitle below the title, or replace the title area with any widget. Works on iOS 26+ native toolbar (centered overlay), iOS <26 CupertinoNavigationBar, and Material AppBar (@luflow)subtitle and imageBytes on AdaptivePopupMenuItem. Subtitles render natively via UIAction.subtitle on iOS 15+, and image bytes (e.g. avatars) are shown clipped to a circle on iOS 26+ native menus, Material popup menus, and the iOS <26 action-sheet fallback (@luflow)SafeArea/SliverSafeArea inside a page clear the Liquid Glass toolbar automatically, matching how CupertinoPageScaffold handles a translucent navigation bar. Removes the need for per-screen top-offset hacks (@luflow)ThemeMode differs from the system brightness (@luflow)preferredMenuElementOrder = .fixed, so items keep their declared order (@Sahil-Kundaliya)Row, before its native intrinsic width has been measuredNEW: Added resizeToAvoidBottomInset prop to AdaptiveScaffold for explicit control over keyboard-driven scaffold resizing across all platform paths (iO
resizeToAvoidBottomInset prop to AdaptiveScaffold for explicit control over keyboard-driven scaffold resizing across all platform paths (iOS 26+, iOS <26, Android) (@philasmar)NEW: Added ImageProvider support (AssetImage, FileImage, NetworkImage) for AdaptiveBottomNavigationBar icons — including async network image loading w
ImageProvider support (AssetImage, FileImage, NetworkImage) for AdaptiveBottomNavigationBar icons — including async network image loading with caching and circular avatar rendering for iOS 26+ native tab bar (@philasmar)textColor and selectedTextColor props to AdaptiveSegmentedControl for explicit label color customization across iOS 26+, iOS <26, and Android (@philasmar)UIAlertController dim is used (@ctrl-Felix)NEW: Added ImageIcon / AssetImage support for iOS 26+ native tab bar — custom asset icons (with optional per-state selected icon) can now be used alon
ImageIcon / AssetImage support for iOS 26+ native tab bar — custom asset icons (with optional per-state selected icon) can now be used alongside SF Symbols (@Mohamed-7018)Directionality.of(context) (@Mohamed-7018)hideBottomDivider prop to AdaptiveListTile for removing the bottom separator, useful for the last tile in a grouped list (@ctrl-Felix)separatorColor prop to AdaptiveListTile for customizing the iOS bottom separator color (@philasmar)NEW: Added tabBarHidden prop to AdaptiveScaffold to hide the native iOS 26+ tab bar — prevents native UITabBar from bleeding through showModalBottomSh
tabBarHidden prop to AdaptiveScaffold to hide the native iOS 26+ tab bar — prevents native UITabBar from bleeding through showModalBottomSheet (@DmitriiSer)tintColor support for iOS 26+ native toolbar and prominent button style for AdaptiveAppBarAction (@luflow)FIX: Fixed iOS 18 navigation bar not being displayed (@adrianorios)
IMPROVEMENT: Adjusted back button leading position on iOS 26+ native toolbar for better alignment
cupertinoDecoration property to AdaptiveTextField and AdaptiveTextFormField for customizable iOS stylingNEW: Added enableToolbarGradient option to AdaptiveScaffold for iOS 26+ toolbar gradient customization (@nadavfima)
enableToolbarGradient option to AdaptiveScaffold for iOS 26+ toolbar gradient customization (@nadavfima)extendBodyBehindAppBar option to AdaptiveScaffold (@Crucialjun)scaffoldMessengerKey parameter to AdaptiveApp (@Crucialjun)autofillHints support to AdaptiveTextFormField (@Crucialjun)onTapOutside callback to AdaptiveTextFormFieldFIX: Theme color support across all components
CupertinoTheme.of(context).primaryColorTheme.of(context).colorScheme.primaryelevatedButtonTheme, textButtonTheme, etc.mainAxisAlignment: MainAxisAlignment.spaceBetweensuffixIcon internally to prevent extra vertical spaceisDense: true to reduce paddingNEW: Added AdaptiveBlurView widget - iOS 26+ Liquid Glass blur effects
AdaptiveBlurView widget - iOS 26+ Liquid Glass blur effects
unselectedItemColor behavior in AdaptiveBottomNavigationBar
unselectedItemColor is null, now uses theme's default color instead of forcing a color.alwaysTemplate rendering mode when no custom color providedCupertinoColors.inactiveGray fallbackNEW : Added selectedItemColor and unselectedItemColor support for AdaptiveBottomNavigationBar
selectedItemColor and unselectedItemColor support for AdaptiveBottomNavigationBar
.alwaysOriginal for unselected, .alwaysTemplate for selected)useSmoothRectangleBorder parameter to AdaptiveButton (iOS 26+)
true: Smooth rectangle cornersfalse: Perfect circular/capsule shape for icon buttonsshow() - Standard dialog (returns void)inputShow() - Text input dialog (returns String?)NEW : Added spacerAfter parameter (ToolbarSpacerType) to AdaptiveAppBarAction for iOS 26+ Liquid Glass toolbar grouping
spacerAfter parameter (ToolbarSpacerType) to AdaptiveAppBarAction for iOS 26+ Liquid Glass toolbar grouping
ToolbarSpacerType.fixed - 12pt fixed space using UIBarButtonItem.fixedSpace() for spacing within groupsToolbarSpacerType.flexible - Flexible space using UIBarButtonItem.flexibleSpace() for left/right group separationToolbarSpacerType.none - No spacer (default)AdaptiveAppBarAction(iosSymbol: 'arrow.uturn.forward', onPressed: () {}, spacerAfter: ToolbarSpacerType.flexible)FIX: Added automatic localization support for AdaptiveDatePicker, AdaptiveTimePicker, and popup menu buttons
BREAKING CHANGE : Renamed AdaptiveAppBarAction.androidIcon to icon
AdaptiveTabBarView widget - Platform-specific swipeable tab bar view with color customizationAdaptiveFloatingActionButton widget - Platform-specific FAB with custom colors, mini size, hero transitionsAdaptiveFormSection widget - Platform-specific form sections (iOS: CupertinoFormSection, Android: Card)
AdaptiveExpansionTile widget - Modern expandable/collapsible content
AdaptiveAppBarAction.androidIcon to icon
iosSymbol for iOS 26+ only, icon for iOS <26 and AndroidandroidIcon: with icon:AdaptiveSegmentedControl for iOS <26 to use CupertinoSlidingSegmentedControlNEW: Added AdaptiveTextField for platform-specific text input
AdaptiveTextField for platform-specific text input
CupertinoTextField with tertiarySystemBackground color and rounded cornersTextField with outlined borderAdaptiveTextFormField for form validation support
FormField wrapper with CupertinoTextField for proper validationTextFormFieldIOS26Button.child now wrapped with IgnorePointerAdaptiveButton.icon had limited tap areaiconColor parameter to AdaptiveButton.icon
textColor remains for label buttons, iconColor for icon buttonsAdaptiveNavigationDestinationbadgeCount parameter to AdaptiveNavigationDestination classUITabBarItem.badgeValue for native badge displayAdaptiveBadge widget for cross-platform badge displayfix: improve pub.dev score and CI compatibility
AdaptiveSegmentedControl now renders icons directly based on platform.
Enhance AdaptivePopupMenuButton to support dynamic icon types for iOS and Android
NEW: Added text input support to AdaptiveAlertDialog
AdaptiveAlertDialog
AdaptiveAlertDialogInput class for input configurationFuture<String?> with user inputAdaptiveContextMenu widget for long-press context menus
CupertinoContextMenu.builder with native animationsPopupMenuButton with Material Design stylingAdaptiveAlertDialog icon parameter to dynamic type
BREAKING CHANGE: AdaptiveScaffold bottom navigation parameters refactored
AdaptiveBottomNavigationBar class for cleaner bottom navigation configuration
bottomNavigationBar parameter in AdaptiveScaffolddestinations, selectedIndex, onDestinationSelected parametersbottomNavigationBar is null, no bottom navigation will be shownAdaptiveBottomNavigationBar
items parameter: Navigation items (renamed from destinations)selectedIndex parameter: Currently selected item indexonTap parameter: Callback when item is tapped (renamed from onDestinationSelected)useNativeBottomBar parameter: Control iOS 26+ native bottom bar (default: true)cupertinoTabBar parameter: Provide custom CupertinoTabBar for iOSbottomNavigationBar parameter: Provide custom NavigationBar or BottomNavigationBar for AndroiduseNativeBottomBar priority behavior on iOS
useNativeBottomBar: true: Native UITabBar with Liquid Glass effect is shown, custom cupertinoTabBar is ignoreduseNativeBottomBar: false: Custom cupertinoTabBar is used if provided, otherwise auto-generated from itemscupertinoTabBar is used if provided, otherwise auto-generated from items (useNativeBottomBar is ignored)AdaptiveScaffold bottom navigation parameters refactored
destinations, selectedIndex, onDestinationSelected parametersbottomNavigationBar parameter of type AdaptiveBottomNavigationBar?AdaptiveBottomNavigationBar()// Before
AdaptiveScaffold(
destinations: [...],
selectedIndex: 0,
onDestinationSelected: (index) {},
)
// After
AdaptiveScaffold(
bottomNavigationBar: AdaptiveBottomNavigationBar(
items: [...],
selectedIndex: 0,
onTap: (index) {},
),
)
BREAKING CHANGE: AdaptiveScaffold parameters refactored
AdaptiveAppBar class for cleaner app bar configuration
appBar parameter in AdaptiveScaffoldtitle, actions, leading, useNativeToolbar parametersappBar is null, no app bar or toolbar will be shownAdaptiveAppBar
cupertinoNavigationBar parameter: Provide custom CupertinoNavigationBar for iOSappBar parameter: Provide custom AppBar for AndroiduseNativeToolbar priority behavior on iOS
useNativeToolbar: true: Native iOS 26 toolbar is shown, custom cupertinoNavigationBar is ignoreduseNativeToolbar: false or not set: Custom cupertinoNavigationBar is used if providedAdaptiveScaffold parameters refactored
title, actions, leading, useNativeToolbar parametersappBar parameter of type AdaptiveAppBar?AdaptiveAppBar()// Before
AdaptiveScaffold(
title: 'My App',
actions: [...],
useNativeToolbar: true,
)
// After
AdaptiveScaffold(
appBar: AdaptiveAppBar(
title: 'My App',
actions: [...],
useNativeToolbar: true,
),
)
* Updated README.md
NEW: Added AdaptivePopupMenuButton.widget() constructor for custom widget support
AdaptivePopupMenuButton.widget() constructor for custom widget support
BREAKING CHANGE: iOS 26 Native Toolbar is now optional due to stability issues with GoRouter and other router packages
AdaptiveSnackBar widget for platform-specific notifications
useNativeToolbar: true parameter in AdaptiveScaffoldCupertinoNavigationBar for better compatibilityuseNativeToolbar: falseuseNativeToolbar: false
* Updated README.md
* Updated README.md
NEW: Added AdaptiveCard widget for platform-specific card styling
AdaptiveCard widget for platform-specific card styling
AdaptiveRadio widget for radio button groups
AdaptiveBadge widget for notification badges
AdaptiveTooltip widget for platform-specific tooltips
AdaptiveCheckbox widget (Cupertino & Material only)
IOS26NativeSearchTabBar for iOS 26+ native search tab bar
* Updated README.md
BREAKING CHANGE: Renamed AdaptiveScaffold.child parameter to body to match standard Scaffold API
AdaptiveScaffold.child parameter to body to match standard Scaffold APIAdaptiveApp widget for automatic platform-specific app configuration
AdaptiveApp() - Constructor for normal navigationAdaptiveApp.router() - Constructor for router-based navigation (GoRouter, etc.)themeMode, materialLightTheme, materialDarkTheme, cupertinoLightTheme, cupertinoDarkThemematerial() and cupertino() for advanced configurationdebugShowCheckedModeBanner: false)body parameterFix image links in README.md to use GitHub raw URLs
Added comprehensive README with images for all widgets
Initial release with iOS 26+ support
AdaptiveScaffold - Platform-adaptive scaffold with native iOS 26 toolbar and tab barAdaptiveButton - Adaptive buttons with iOS 26 Liquid Glass designAdaptiveSegmentedControl - Native segmented controls for all platformsAdaptiveSwitch - Platform-adaptive switchesAdaptiveSlider - Platform-adaptive slidersAdaptiveAlertDialog - Native alert dialogsAdaptivePopupMenuButton - Platform-adaptive popup menusYour coding agent can read these notes before it upgrades. Set up the MCP server →