pull_down_button
A package that implements Pull-Down Button from iOS 14 in Flutter. Highly customizable.
0.10.2
303K downloads/mo
#685 most downloaded on pub.dev
notDmDrl/pull_down_button
What this package is like to depend on
Last release 2 years ago
no release in 18 months
Ships unpredictably
gaps range from 8 days to 9 months
Nearly every release is documented
notes for 25 of 25 stable releases
1 version withdrawn
withdrawn after publishing
4 years old
37 releases · first in 2022
0 releases in the last 12 months
see the full history below
Release timeline
37 releases · May 2022 to Sep 2024Releases
latest 37-
0.10.230 Sep 2024Release notes
Open source →2024-09-30 - Desktop scrollbar fixes
Fixed
- Fix
ScrollControllerrelated warnings (#58). - Fix desktop platforms having a duplicate scrollbar.
- Fix
-
0.10.106 Aug 2024 -
0.10.003 Aug 2024Release notes
Open source →2024-08-03 - Multiple small improvements
Changed
- Bump Flutter minimum supported version from 3.0 to 3.19.0.
- Bump Dart minimum supported version from 2.17.0 to 3.3.0.
- Change the default font family of pull-down menu items to
CupertinoSystemTextas it is the current default font family in Flutter's cupertino widgets.
Added
- Add
useRootNavigatortoPullDownButtonandshowPullDownMenu(#49). Thanks to @gborges9. - Add
routeSettingstoPullDownButtonandshowPullDownMenu(#53). - Add
isOpenhelper getter toPullDownMenuButtonBuilder(#52). Thanks to @vizakenjack. - Add
PullDownMenuHeader.leadingBuilderto allow a more flexible creation of the header's leading widget (#50).
-
0.9.418 Apr 2024Release notes
Open source →2024-04-18 - Menu animation alignment override
Added
- Add
animationAlignmentOverridetoPullDownButton. This feature is experimental and may be removed in the future versions. - Add example for
PullDownButton.animationAlignmentOverride.
- Add
-
0.9.328 Jul 2023Release notes
Open source →2023-07-28 - Menu scroll controller
Added
- Add
scrollControllertoPullDownButton,PullDownMenuandshowPullDownMenuto allow passing custom scroll controller (#31).
Removed
- Breaking: remove
initialScrollOffsetfromPullDownButton,PullDownMenuandshowPullDownMenuto allow more precise scroll controller customization usingscrollController.
- Add
-
0.9.220 Jul 2023Release notes
Open source →2023-07-20 - Add support for menu offsets
Fixed
- Fix menu items being "stuck" in the highlighted mode in scrollable menus (partially #29).
Added
-
0.9.104 May 2023Release notes
Open source →2023-05-05 - README images fixes
Changed
- Use correct image for
PullDownMenuHeaderin README.
- Use correct image for
-
0.9.004 May 2023Release notes
Open source →2023-05-05 - Match guidelines from the Apple Design Resources Sketch file
Changed
- Update the following stuff based on guidelines defined in the Apple Design Resources Sketch file:
- Update menu blur to include color saturation.
- Update the
PullDownMenuItemlayout. - Update the
PullDownMenuTitlelayout. - Update default height for
PullDownMenuActionsRow. - Update default height for
PullDownMenuTitle. - Update default theme values for all sub-themes.
- Update the example app to include newly added stuff.
- Deprecate
PullDownMenuDividerandPullDownMenuDivider.wrapWithDivider. Menu now inserts small dividers automatically. - Breaking: rename
PullDownMenuRouteTheme.largeTextScaleWidthtoPullDownMenuRouteTheme.accessibilityWidth.
Added
- Add
PullDownMenuHeader. Based on UIDocumentProperties from iOS 16. - Add
subtitletoPullDownMenuItemandPullDownMenuItem.selectable. - Add
PullDownMenuTitle.alignmentto allow customizing alignment ofPullDownMenuTitle. - Add
subtitleStyle,onHoverBackgroundColor,onPressedBackgroundColor, andonHoverTextColortoPullDownMenuItemTheme.
Removed
- Breaking: remove
dividerColorfromPullDownMenuActionsRow. - Breaking: remove
iconSize,checkmarkWeight,checkmarkSizefromPullDownMenuItemTheme. - Breaking: remove
onHoverColorfromPullDownMenuItemTheme. UseonHoverBackgroundColorinstead. - Breaking: remove
onHoverTextStylefromPullDownMenuItemTheme. UseonHoverTextColorinstead. - Breaking: remove
beginShadowandendShadowfromPullDownMenuRouteTheme. Useshadowinstead.
- Update the following stuff based on guidelines defined in the Apple Design Resources Sketch file:
-
0.8.321 Apr 2023Release notes
Open source →2023-04-21 - Support iOS 16 "Large Text" accessibility options
Changed
- Update menu items layouts to support all options in iOS 16 "Large Text" accessibility menu.
Added
PullDownMenuRouteTheme.largeTextScaleWidthto allow customizing the menu's "accessibility" width.
-
0.8.211 Apr 2023Release notes
Open source →2023-04-11 - "Anchoring" to specific button side
Changed
- Rename all nullable
of(context)methods tomaybeOf(context)to follow Flutter repo style.
Added
- Add
PullDownButton.buttonAnchorto allow "anchoring" menu to specific button side (#22). - Add an example for
PullDownButton.buttonAnchor. See Examples -> Advanced in the example app. - Add haptic feedback when sliding between items (as seen in iOS).
- Rename all nullable
-
0.8.130 Mar 2023Release notes
Open source →2023-03-30 - Fixes for menu position calculations
Added
-
Add precautions to menu position calculations for cases when
PullDownButton.buttonBuilder's height is bigger than the screen height (#21).Consider using
showPullDownMenuif the end position calculated using those precautions is not what was desired.
-
-
0.8.030 Mar 2023Release notes
Open source →2023-03-30 - Improved menu positioning, new customization options
Changed
- Breaking:
showPullDownMenuposition now requiresRectinstead ofRelativeRect. - Reworked the way the pull-down menu calculates its position on the screen:
- Updated menu's scale transition alignment calculation to closely match native.
- If opened from the left or right side of the screen (but not directly near the edge), additionally move the menu to the left or right by a certain amount of pixels (based on the native compare tool).
Added
- Add
PullDownMenuItem.delayedTapHandler. - Add
PullDownButton.animationBuilderto allow customization of animation forPullDownButton.buttonBuilderwhen the pull-down menu is opening or closing. - Add an example for
PullDownButton.animationBuilder. See Examples -> Advanced in the example app.
Removed
- Breaking: remove
PullDownMenuPosition.underandPullDownMenuPosition.above.PullDownMenuPosition.automaticshould be used instead (new default). - Breaking: remove
buttonSizeandmenuPositionfromshowPullDownMenu. - Breaking:
PullDownButton.applyOpacityandPullDownButtonTheme.applyOpacity. To remove opacity animation fromPullDownButton.buttonBuildersetPullDownButton.animationBuilderto null. - Breaking: remove
PullDownButton.offset.
- Breaking:
-
0.7.015 Mar 2023Release notes
Open source →2023-03-15 - Continuous swipe
Added
-
Add "continuous swipe" support to menus (see demo) (#19, #18).
Thanks to @iSa1vatore.
-
-
0.6.515 Mar 2023Release notes
Open source →2023-03-15 - PullDownMenu
Changed
- Update
PullDownMenuItem.defaultTapHandlerto work withPullDownMenu.
Added
- Add
PullDownMenu- a pull-down menu as a simple widget, with no animations or adding routes to the navigation stack (#17).
- Update
-
0.6.414 Mar 2023Release notes
Open source →2023-03-14 - PullDownMenuItem.tapHandler
Added
- Add
PullDownMenuItem.tapHandlerto allow customization of howPullDownMenuItem.onTapis handled (#16). - Add an example for
PullDownMenuItem.tapHandler. See Examples -> Advanced in the example app.
- Add
-
0.6.308 Mar 2023 withdrawnNothing published for this version
-
0.6.3+108 Mar 2023Release notes
Open source →2023-03-08 - Animation improvements
Changed
- Add clamped animation for menu animations, updated shadow animation.
Fixed
- Fix
PullDownMenuItemTheme.lerpusing incorrect text styles for lerping.
-
0.6.226 Feb 2023Release notes
Open source →2023-02-26 - Animation improvements
Changed
-
Add menu height transition and updated open animation curve (#14, #15).
Thanks to @iSa1vatore.
-
-
0.6.124 Feb 2023Release notes
Open source →2023-02-24 - Layout fixes
Fixed
- Fix the
PullDownMenuActionsRowitems content not being centered.
- Fix the
-
0.6.023 Feb 2023Release notes
Open source →2023-02-23 - Bringing looks closer to native
Changed
- Update padding values for
PullDownMenuItem. - Update open/close animation curves - open curve now includes "bouncy" effect native counterpart has (#13).
- Note: new curves are still not 100% equal to native, but slightly more similar than before.
- Apply an additional small amount of padding for menu positioning if the button is smaller than 44px.
- Update text style, checkmark configuration in
PullDownMenuItemThemedefaults. - Update shadows for dark mode in
PullDownMenuRouteThemedefaults.
Added
- Add
PullDownMenuItemsOrder- an ordering logic forPullDownButtonandshowPullDownMenuitems. - Add native compare tool.
- Update padding values for
-
0.5.123 Jan 2023Release notes
Open source →2023-01-23 - Text style merge fixes
Fixed
- Fix
PullDownMenuItem.itemTheme.textStylebeing overridden by globalPullDownButtonTheme.itemTheme.textStyleduring text styles marge inPullDownMenuItemandPullDownMenuTitleif both are not null.
- Fix
-
0.5.011 Jan 2023Release notes
Open source →2023-01-11 - Bringing looks closer to native
Changed
- Breaking:
PullDownMenuEntryno longer extendsStatelessWidget, it now extendsWidget. This was done to allowStatefulWidgets to be used asPullDownMenuEntry(#11). - Breaking:
PullDownMenuEntryno longer provides fields to override due to their redundancy. - Following things have been updated to be a lot closer to native variant:
- Menu open / close animation to use scaling transition.
PullDownMenuTitle- minimum height to be equal to native variant.- Default colors for
PullDownMenuDividerThemeandPullDownMenuRouteTheme. - On menu open opacity for
PullDownButton.buttonBuilder. PullDownMenuItemtext style and icon color opacity whenPullDownMenuItem.enabledis false.
PullDownMenuItemandPullDownMenuTitle- merge default text styles with provided ones (via theme or widget parameters).
Added
- Add
showPullDownMenu- an alternative way to display menu (#12).
- Breaking:
-
0.4.103 Dec 2022Release notes
Open source →2022-12-03 - Blur fixes
Changed
- Update menu to not use
BackdropFilterfor blur used in pull-down menu if menu's background color is fully opaque (#9).
- Update menu to not use
-
0.4.022 Nov 2022Release notes
Open source →2022-11-22 - Theming overhaul
Changed
Please see README for detailed info about new sub-themes.
- Modularize
PullDownButtonTheme- all properties where split into 4 sub-themes:- routeTheme - menu container theme (
PullDownMenuRouteTheme). - itemTheme -
PullDownMenuItemtheme (PullDownMenuItemTheme). - dividerTheme -
PullDownMenuDividertheme (PullDownMenuDividerTheme). - titleTheme -
PullDownMenuTitletheme (PullDownMenuTitleTheme).
- routeTheme - menu container theme (
- All customization options that were previously available on menu items are now also using sub-themes.
<details><summary>Migration</summary>
Before
PullDownButtonTheme( backgroundColor: colorScheme.surface, dividerColor: colorScheme.outline, largeDividerColor: colorScheme.outlineVariant, destructiveColor: colorScheme.error, textStyle: TextStyle( color: colorScheme.onSurface, ), titleStyle: TextStyle( color: colorScheme.onSurface, ), widthConfiguration: const PullDownMenuWidthConfiguration(280), )After
PullDownButtonTheme( routeTheme: PullDownMenuRouteTheme( backgroundColor: colorScheme.surface, width: 280, ), dividerTheme: PullDownMenuDividerTheme( dividerColor: colorScheme.outline, largeDividerColor: colorScheme.outlineVariant, ), itemTheme: PullDownMenuItemTheme( destructiveColor: colorScheme.error, textStyle: TextStyle( color: colorScheme.onSurface, ), ), titleTheme: PullDownMenuTitleTheme( style: TextStyle( color: colorScheme.onSurface, ), ), )</details>
Added
- Add customization of menu's border radius, begin and end shadows to
PullDownMenuRouteTheme(#8).
Removed
- Breaking: replace
SelectablePullDownMenuItemwithPullDownMenuItem.selectable. - Breaking: remove
PullDownMenuIconAction-PullDownMenuActionsRownow usesPullDownMenuItem. - Breaking: remove
PullDownMenuWidthConfiguration- usePullDownMenuRouteTheme.width.
- Modularize
-
0.3.111 Oct 2022Release notes
Open source → -
0.3.003 Oct 2022Release notes
Open source →2022-10-03 - PullDownMenuActionsRow
Added
- Add
PullDownMenuActionsRow- displays multiple actions in a row (from iOS 16). - Add new example app.
- Add
-
0.2.0-beta.1.127 Sep 2022 pre-releaseRelease notes
Open source →2022-09-27 - PullDownMenuPosition.automatic
Changed
- Breaking: update
PullDownMenuDivider's constructors - deprecate (removed any usages)dividerColorandlargeDividerColorfromPullDownMenuDividerandPullDownMenuDivider.largerespectively. Both constructors now use samecolorproperty. - Default
PullDownMenuPositionofPullDownButtonis nowundersince this behaviour is the most frequent across iOS system apps. - Rework the way menus are rendered on screen (position and size) and added new position mode
automatic(#5):over- will attempt to fill as much space as possible.under- is forced to be under an anchor. If there is no available space, will be placed above an anchor.above- is forced to be above an anchor. If there is no available space, will be placed under an anchor.automatic- is positioned under or above an anchor depending on side that has more space available.
Fixed
- Fix issue where it was not possible to open pull-down menu when no items where provided to
PullDownMenuDivider.wrapWithDivider.
- Breaking: update
-
0.2.0-beta.127 Sep 2022 pre-releaseNothing published for this version
-
0.1.0-beta.807 Sep 2022 pre-releaseRelease notes
Open source →2022-09-07 - PullDownMenuItem on hover support part 2
Added
- Add
onHoverTextStyletoPullDownButtonTheme(#6).
- Add
-
0.1.0-beta.706 Sep 2022 pre-releaseRelease notes
Open source →2022-09-06 - PullDownMenuItem on hover support part 1
Added
- Add support for mouse pointers for
PullDownMenuItem. - Add
onHoverColortoPullDownButtonTheme(#6).
- Add support for mouse pointers for
-
0.1.0-beta.614 Jul 2022 pre-releaseRelease notes
Open source →2022-07-14 - Opacity for PullDownButton.buttonBuilder
Added
- Add ability to choose to whether apply opacity on menu open for
PullDownButton.buttonBuilderor not (#4).
- Add ability to choose to whether apply opacity on menu open for
-
0.1.0-beta.506 Jul 2022 pre-releaseRelease notes
Open source →2022-07-06 - Menu width
Added
- Add
PullDownMenuWidthConfigurationto allow customizing pull-down menu's width (#3).
- Add
-
0.1.0-beta.4.129 Jun 2022 pre-releaseNothing published for this version
-
0.1.0-beta.429 Jun 2022 pre-releaseRelease notes
Open source →2022-06-29 - Various fixes
Changed
- Replace
SizedBoxwithConstrainedBoxinPullDownMenuTitleto allowPullDownMenuTitleto have adaptive height. - Update
largeDividerColorinPullDownButtonThemeDefaultsto more correct value. - Bump Flutter minimum supported version from beta 2.13.0-0 to 3.0.
Added
- Add
iconColorandiconWidgetparameters toPullDownMenuItemandSelectablePullDownMenuItem.
Fixed
- Fix menu background color "jumping" during open animation.
- Fix
showDialog(and other actions that change navigation stack) to work directly without any workarounds (#1):
<details><summary>Migration</summary>
Instead of
onTap: () async { await Future<void>.delayed(const Duration(milliseconds: 1)); await showDialog<void>( context: context, builder: (context) => ..., ); },Now is possible to write it like this:
onTap: () => showDialog<void>( context: context, builder: (context) => ..., ),</details>
- Replace
-
0.1.0-beta.316 Jun 2022 pre-releaseRelease notes
Open source →2022-06-16 - PullDownButtonInheritedTheme
Added
- Add
PullDownButtonInheritedThemeas an additional way of defining globalPullDownButtonTheme(#2).
- Add
-
0.1.0-beta.226 May 2022 pre-releaseRelease notes
Open source →2022-05-26 - Improvements
Changed
- Update pull-down menu show/hide animations to be more similar to native version.
- Improve pull-down menu positioning on screen.
- Add shadow behind pull-down menu.
Fixed
- Fix pull-down menu animating from the top instead of bottom for
PullDownMenuPosition.above.
-
0.1.0-beta.125 May 2022 pre-release