hyper_snackbar 0.8.0
hyper_snackbar: ^0.8.0 copied to clipboard
A highly customizable and animated snackbar package for Flutter.
0.8.0 #
โจ New Features #
- Web/Desktop Layout Support: Added
maxWidthandalignmentproperties toHyperConfigandshow()methods. This allows you to constrain the width of the snackbar and align it (e.g., center-right) on large screens, preventing it from stretching across the entire window. - Fully Optional Title: The
titleparameter inHyperSnackbar.show()and related methods is now completely optional (String?). You can now easily create clean, message-only or content-only snackbars.
๐ Bug Fixes & UI Improvements #
- Title Height Bug: Fixed an issue where an empty space was reserved for the title even when
titlewas null. The layout now perfectly collapses when no header elements (title, icon, close button) are present. - Vertical Centering: Improved the vertical alignment of the snackbar content. When displaying a message without a title, the text is now perfectly centered vertically.
- Corner Radius Artifacts: Fixed a visual bug where the bottom corners of the snackbar appeared slightly distorted when using a
progressBar. Removed the default Material 3 border radius from theLinearProgressIndicatorto ensure perfectly smooth corners. - Validation: Added an assertion to ensure that at least a
title,message, or customcontentis provided, preventing the display of empty, meaningless snackbars.
0.7.0 #
โจ New Features #
- Presets System (
HyperSnackbar.preset):- Introduced
HyperSnackbar.preset()factory method. This allows developers to define reusable configuration objects (presets) cleanly. - Added
presetparameter toshow()andcontext.showHyperSnackbar(). You can now pass a base preset and override specific properties (e.g.,HyperSnackbar.show(preset: myErrorPreset, message: '...')).
- Introduced
- Unified Animation Controls:
- Added
animationTypeandanimationDurationparameters. These set both the enter and exit animations simultaneously, simplifying configuration.
- Added
- GetX Migration Aids:
- Added parameter aliases to assist developers familiar with GetX:
duration,snackPosition,colorText, andanimationDuration. These map toHyperSnackbar's native parameters.
- Added parameter aliases to assist developers familiar with GetX:
๐ Bug Fixes #
- Overlay Context Switching: Fixed a bug where the snackbar would remain attached to the previous Overlay (e.g., global root) even when
useLocalOverlay: truewas requested in a new context (e.g., inside a Playground or nested Navigator). The manager now correctly detects overlay changes and remounts the entry.
๐ฆ Examples #
- New Demo Page: Added "Presets & Overrides" page to the example app to demonstrate configuration inheritance and cascading styles.
0.6.0 #
โจ New Features #
- Overlay Control (
useLocalOverlay):- Added
useLocalOverlayparameter toHyperSnackbar.showand extension methods (default:false). - Allows developers to choose whether the snackbar should render on the root overlay (covering everything, including modals) or the local overlay (scoped within a nested Navigator).
- Added
๐ Improvements #
- Playground Update: Updated the example app to demonstrate the new Loader mode and embedded overlay behavior.
0.5.0 #
Added #
- Added
useAdaptiveLoaderproperty toHyperConfig.- When set to
true, a platform-adaptive loading indicator (CupertinoActivityIndicatoron iOS,CircularProgressIndicatoron others) is displayed in the icon slot. - This overrides the
iconproperty if both are specified.
- When set to
Documentation #
- Updated all code comments and API documentation to English for better international support.
0.4.4 #
- Fix: Corrected installation instructions and example code in README.md.
- Documentation: Updated usage examples for better clarity.
0.4.3 #
Fixed #
- Overlay Retrieval Crash: Fixed an issue where calling
HyperSnackbar.showwithout a proper context (or from background processes) caused aNo Overlay widget foundcrash. Added a robust fallback mechanism usingnavigatorKey. - Corner Rendering Artifacts: Fixed an issue where black halos/borders appeared on rounded corners when the snackbar was displayed over dark backgrounds (like Drawers). Improved rendering by separating Material shape handling from content clipping using
ClipRRect.
Improved #
- Overlay Lookup: Enhanced
Overlaylookup to supportrootOverlay: true, ensuring the snackbar appears above modals and drawers when a context is provided.
0.4.2 #
- CHORE: Translated remaining comments in the example app to English for better accessibility.
- DOCS: Minor updates to the example code for consistency.
0.4.1 #
- FIX: Improved UX for scrollable messages. The auto-dismiss timer now pauses for 1 second after the user stops scrolling, preventing the snackbar from disappearing immediately.
- FIX: Resolved an issue where the text ellipsis (
...) would not appear correctly if the truncated text ended with a space or newline. - REFACTOR: Replaced deprecated color methods (e.g.,
withOpacity) withwithAlphato ensure future Flutter compatibility. - EXAMPLE: Significant design and feature updates to the Playground app.
- New "Dark Glassmorphism" UI design.
- Added "Surprise Me" button for random style generation.
- Improved real-time code generation preview.
0.4.0 #
- FEAT: Added Progress Bar support.
- Introduced
progressBarWidth: Supports0.0for a "Wipe" effect (fills the background), positive values for a standard line (e.g.,4.0), and negative values to hide it. - Introduced
progressBarColor: Allows customization of the progress indicator's color.
- Introduced
- FEAT: Increased freedom of styling presets.
- Enhanced
HyperConfigandshow()parameters to support finer control overborder,borderRadius,elevation, and shadows. This enables diverse preset styles like "Outlined", "Flat", or "High Contrast".
- Enhanced
- FEAT: Added an interactive Playground to the example app.
- Includes a real-time mobile preview, style toggles, and code generation.
- DOCS: Updated README to showcase the new progress bar styles and playground features.
0.3.2 #
- IMPROVEMENT: Made
titleinHyperConfigoptional (String?). This facilitates the creation of reusable configuration templates (e.g., defining a common error style without a dummy title). - DOCS: Updated the configuration table in
README.mdto include previously missing parameters:maxVisibleCount,displayMode,scrollable, andmessageMaxHeight. - DOCS: Added a "Style Templates" section to
README.mdto demonstrate how to reuse configuration objects effectively. - REFACTOR: Improved null-safety handling for the title in
HyperSnackBarContentand removed unused variables.
0.3.1 #
- FIX: Ensures the scrollbar always appears at the right edge of the card, even for short messages on wide screens.
- DOCS: Updated README images to use absolute URLs for better compatibility with pub.dev.
0.3.0 #
- FEAT: Added
actionAlignmentparameter to control the horizontal alignment of the action button (Right, Center, Left). - FEAT: Added
contentparameter to support arbitrary Widgets as footer content (replacing the standard action button). - FEAT: Implemented "Overflow Safety" mechanism. Extremely long messages now automatically become scrollable within a constrained height (max 80% of screen) to prevent UI overflow errors.
- FEAT:
Duration.zeroindisplayDurationis now treated as a persistent snackbar (equivalent tonull). - FIX: Resolved
ScrollControllerrelated crashes by refactoringHyperSnackBarContentto a StatefulWidget. - FIX: Fixed layout issues where the close button would scroll off-screen. The header and footer are now fixed, with only the message body being scrollable.
- FIX: Improved scrollbar positioning to appear at the absolute right edge of the card.
- DOCS: Updated README with examples for new features.
0.2.5 #
New Features #
- Scrollable Message Text: Introduced
scrollableandmessageMaxHeightproperties toshow()andHyperConfig, allowing for scrollable message content within a specified maximum height. When scrolling, the auto-dismiss timer is paused. - Display Mode (Stack vs. Queue): Added
displayModeproperty toshow()andHyperConfig.HyperSnackDisplayMode.stack(default): Shows multiple notifications simultaneously, stacked on top of each other.HyperSnackDisplayMode.queue: Displays notifications one by one, similar to standard Snackbars.
Bug Fixes #
- Swipe Gesture Ghosting: Resolved an issue where a ghost animation could appear when dismissing a snackbar via swipe gesture. The auto-dismiss timer is now properly cancelled when a swipe begins.
Docs #
- Updated
README.mdto include an explanation of the newdisplayModefeature.
0.2.4 #
UI/UX Improvements #
- Action Button Placement: Moved the action button below the message text to improve readability and layout stability on narrower screens.
- Close Button: Aligned the close button to the top-right corner (
CrossAxisAlignment.start) for better aesthetics with multi-line messages. - Typography: Added
TextOverflow.ellipsisto the title (max 1 line) to prevent layout breakage. Action button text is now bold for better visibility.
New Features #
- Message Lines Control: Added
maxLinesparameter toshow()andHyperConfig.- Defaults to
5lines to prevent the snackbar from taking up too much screen space. - Pass
nullto display the full message without truncation.
- Defaults to
- Auto Dismiss Action: Added
autoDismissproperty toHyperSnackAction(defaults totrue). The snackbar will now automatically close when an action is tapped, unless specified otherwise.
0.2.3 #
- Fixed: Resolved a
setState() called during buildruntime error that could occur when triggering a snackbar during a navigation transition (e.g., usinggo_routerwithout aBuildContext). - Improvement: Added
SchedulerBindingphase checks to ensure the overlay is inserted safely after the current frame build is completed. - Tests: Added compatibility tests and examples for
go_router.
0.2.2 #
Added #
- Added
isSnackbarOpenById(String id)to check if a snackbar with a specific ID is currently visible. - Added an
animatedparameter to theclearAll()method to allow choosing whether to dismiss snackbars with an animation. Defaults totrue. - Added an example of using
HyperConfigto the sample app.
Changed #
- The default behavior of
clearAll()has been changed from immediate removal to animated dismissal.
Fixed #
- Stabilized tests related to animations by using
pumpAndSettleto ensure animations are complete before making assertions.
Chore #
- Removed unnecessary dependencies.
- Updated
SECURITY.mdto reflect the currently supported version.
0.2.1 #
๐งน Refactoring #
-
Consolidated
HyperSnackAnimationTypeenum to use unified types (e.g.,topinstead offromToportoTop) for both entry and exit animations. This simplifies animation configuration. -
Enhanced HyperConfig.copyWith: The
HyperConfig.copyWithmethod now supports all properties, significantly improving reusability and flexibility when updating snackbar configurations.
๐ Documentation #
- Internationalization: All Japanese comments across the codebase (
pubspec.yaml,lib/src/*,example/lib/main.dart) have been translated to English. - GitHub Feedback Link: The
README.mdhas been updated to include a GitHub Issues badge, making it easier for users to provide feedback and contribute.
0.2.0 #
โ ๏ธ BREAKING CHANGES #
-
Static API by Default: The
HyperSnackbarclass is now fully static. This makes the API more intuitive and similar to popular packages likeGetX. You no longer need to instantiate it.Before:
HyperSnackbar().show(config);After:
HyperSnackbar.show(...); // With named parameters // Old usage style (with HyperConfig object) is now available via `HyperSnackbar.showFromConfig(config);` -
Simplified
showMethod: The primaryshowmethod no longer takes aHyperConfigobject. Instead, it now accepts named parameters directly, significantly improving ease of use for one-off snackbars.Before:
HyperSnackbar().show(HyperConfig( title: 'Success', message: 'Your file was saved.' ));After:
HyperSnackbar.show( title: 'Success', message: 'Your file was saved.' ); // Old usage style (with HyperConfig object) is now available via `HyperSnackbar.showFromConfig(config);`
โจ Features #
-
Intuitive API: The new static API (
HyperSnackbar.show(...)) is cleaner, requires less boilerplate, and is easier to discover.// The simplest way to show a snackbar: HyperSnackbar.show(title: 'Hello World!'); -
Configuration Reusability: Added the
HyperSnackbar.showFromConfig(config)method. This allows you to create a reusableHyperConfigobject for styles that you use frequently, offering the best of both worlds.// Define a reusable style final myErrorStyle = HyperConfig( backgroundColor: Colors.red, // ... other properties ); // Reuse it anywhere HyperSnackbar.showFromConfig( myErrorStyle.copyWith(title: 'Error 1') ); HyperSnackbar.showFromConfig( myErrorStyle.copyWith(title: 'Error 2') ); -
Updated BuildContext Extension: The
context.showHyperSnackbar()extension has also been updated to use named parameters for a consistent and convenient API.
0.1.3 #
- Improved documentation comments.
0.1.2 #
โจ Features #
- Manual Dismissal: Added
dismissById(String id)to close specific snackbars programmatically. - Clear All: Added
clearAll()to close all visible snackbars at once.
0.1.1 #
- Fix README formatting.
0.1.0 #
โ ๏ธ Breaking Changes #
- Renamed Main Class:
HyperManagerhas been renamed toHyperSnackbarto be more intuitive.
โจ Features #
- Context-less Usage: Added support for showing snackbars without a
BuildContext.- Note: To use this feature, you must assign
HyperSnackbar.navigatorKeyto thenavigatorKeyproperty of yourMaterialApp.
- Note: To use this feature, you must assign
- Hybrid Support: The
showmethod now accepts an optionalcontext. If provided, it uses the local context (ideal for inheriting themes); otherwise, it falls back to the global navigator key. - Extension Method: Added
context.showHyperSnackbar(config)for easier usage within widgets.
0.0.4 #
- Documents update.
0.0.3 #
- Initial complete release.
0.0.2 #
- Update README.md.
- Add Demo.gif
0.0.1 #
- Initial release.
[0.2.4] #
UI/UX Improvements #
- Action Button Placement: Moved the action button below the message text to improve readability and layout stability on narrower screens.
- Close Button: Aligned the close button to the top-right corner (
CrossAxisAlignment.start) for better aesthetics with multi-line messages. - Typography: Added
TextOverflow.ellipsisto the title (max 1 line) to prevent layout breakage. Action button text is now bold for better visibility.
New Features #
- Message Lines Control: Added
maxLinesparameter toshow()andHyperConfig.- Defaults to
5lines to prevent the snackbar from taking up too much screen space. - Pass
nullto display the full message without truncation.
- Defaults to
- Auto Dismiss Action: Added
autoDismissproperty toHyperSnackAction(defaults totrue). The snackbar will now automatically close when an action is tapped, unless specified otherwise.
[0.2.3] #
- Fixed: Resolved a
setState() called during buildruntime error that could occur when triggering a snackbar during a navigation transition (e.g., usinggo_routerwithout aBuildContext). - Improvement: Added
SchedulerBindingphase checks to ensure the overlay is inserted safely after the current frame build is completed. - Tests: Added compatibility tests and examples for
go_router.
[0.2.2] #
Added #
- Added
isSnackbarOpenById(String id)to check if a snackbar with a specific ID is currently visible. - Added an
animatedparameter to theclearAll()method to allow choosing whether to dismiss snackbars with an animation. Defaults totrue. - Added an example of using
HyperConfigto the sample app.
Changed #
- The default behavior of
clearAll()has been changed from immediate removal to animated dismissal.
Fixed #
- Stabilized tests related to animations by using
pumpAndSettleto ensure animations are complete before making assertions.
Chore #
- Removed unnecessary dependencies.
- Updated
SECURITY.mdto reflect the currently supported version.
0.2.1 #
๐งน Refactoring #
-
Consolidated
HyperSnackAnimationTypeenum to use unified types (e.g.,topinstead offromToportoTop) for both entry and exit animations. This simplifies animation configuration. -
Enhanced HyperConfig.copyWith: The
HyperConfig.copyWithmethod now supports all properties, significantly improving reusability and flexibility when updating snackbar configurations.
๐ Documentation #
- Internationalization: All Japanese comments across the codebase (
pubspec.yaml,lib/src/*,example/lib/main.dart) have been translated to English. - GitHub Feedback Link: The
README.mdhas been updated to include a GitHub Issues badge, making it easier for users to provide feedback and contribute.
0.2.0 #
โ ๏ธ BREAKING CHANGES #
-
Static API by Default: The
HyperSnackbarclass is now fully static. This makes the API more intuitive and similar to popular packages likeGetX. You no longer need to instantiate it.Before:
HyperSnackbar().show(config);After:
HyperSnackbar.show(...); // With named parameters // Old usage style (with HyperConfig object) is now available via `HyperSnackbar.showFromConfig(config);` -
Simplified
showMethod: The primaryshowmethod no longer takes aHyperConfigobject. Instead, it now accepts named parameters directly, significantly improving ease of use for one-off snackbars.Before:
HyperSnackbar().show(HyperConfig( title: 'Success', message: 'Your file was saved.' ));After:
HyperSnackbar.show( title: 'Success', message: 'Your file was saved.' ); // Old usage style (with HyperConfig object) is now available via `HyperSnackbar.showFromConfig(config);`
โจ Features #
-
Intuitive API: The new static API (
HyperSnackbar.show(...)) is cleaner, requires less boilerplate, and is easier to discover.// The simplest way to show a snackbar: HyperSnackbar.show(title: 'Hello World!'); -
Configuration Reusability: Added the
HyperSnackbar.showFromConfig(config)method. This allows you to create a reusableHyperConfigobject for styles that you use frequently, offering the best of both worlds.// Define a reusable style final myErrorStyle = HyperConfig( backgroundColor: Colors.red, // ... other properties ); // Reuse it anywhere HyperSnackbar.showFromConfig( myErrorStyle.copyWith(title: 'Error 1') ); HyperSnackbar.showFromConfig( myErrorStyle.copyWith(title: 'Error 2') ); -
Updated BuildContext Extension: The
context.showHyperSnackbar()extension has also been updated to use named parameters for a consistent and convenient API.
0.1.3 #
- Improved documentation comments.
0.1.2 #
โจ Features #
- Manual Dismissal: Added
dismissById(String id)to close specific snackbars programmatically. - Clear All: Added
clearAll()to close all visible snackbars at once.
0.1.1 #
- Fix README formatting.
0.1.0 #
โ ๏ธ Breaking Changes #
- Renamed Main Class:
HyperManagerhas been renamed toHyperSnackbarto be more intuitive.
โจ Features #
- Context-less Usage: Added support for showing snackbars without a
BuildContext.- Note: To use this feature, you must assign
HyperSnackbar.navigatorKeyto thenavigatorKeyproperty of yourMaterialApp.
- Note: To use this feature, you must assign
- Hybrid Support: The
showmethod now accepts an optionalcontext. If provided, it uses the local context (ideal for inheriting themes); otherwise, it falls back to the global navigator key. - Extension Method: Added
context.showHyperSnackbar(config)for easier usage within widgets.
0.0.4 #
- Documents update.
0.0.3 #
- Initial complete release.
0.0.2 #
- Update README.md.
- Add Demo.gif
0.0.1 #
- Initial release.
