forui 0.15.1
forui: ^0.15.1 copied to clipboard
Beautifully designed, minimalistic widgets for desktop & touch devices.
0.15.1 #
- Fix CLI generating incorrect icon mappings.
- Fix CLI generating theme that references private constant.
0.15.0 #
Cursors #
We've changed the default cursor for many widgets from MouseCursor.click
to MouseCursor.defer
. This is in line with
native desktop behavior and W3C User Interface guidelines.
FThemeData
#
Hover colors now use lightness-based adjustments rather than alpha blending, providing better visual feedback across all
color variants, especially FColors.secondary
.
We've also added support for theme extensions. This allows you to add custom application-specific properties to the theme without having to manage them around separately.
-
Add
FThemeData.extension()
. -
Add
FThemeData.extensions
. -
Remove
foreground
parameter fromFColors.hover(...)
.
FAccordion
#
-
Add
FAccordionItem.onHoverChange
-
Add
FAccordionItem.onStateChange
-
Breaking Make
FAccordionController.controllers
private. -
Breaking Change
FAccordionItem.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
. -
Breaking Remove
FAccordionController.radio(...)
- useFAccrdionController(max: 1)
instead. -
Breaking Remove
FAccordionController.validate(...)
.
FAutocomplete
(new) #
- Add
FAutocomplete
. - Add
FAutocompleteController
. - Add
FAutocompleteStyle
. - Add
FAutocompleteSection
. - Add
FAutocompleteItem
.
FBottomNavigationBar
#
- Breaking Change
FBottomNavigationBarItem.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
.
FButton
#
- Breaking Change
FButton.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
.
FBreadcrumb
#
-
Add
onTapHide
toFBreadcrumb.collapsed(...)
. -
Breaking Change
FBreadcrumb.hideOnTapOutside
toFBreadcrumb.hideRegion
.
FDateField
#
-
Add
onTapHide
toFDateField.calendar(...)
. -
Add
FDateFieldCalendarProperties.onTapHide
. -
Breaking Change
FDateField.hideOnTapOutside
toFDateField.hideRegion
. -
Breaking Change
FDateField.builder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldBuilder<FDateFieldStyle>
. -
Breaking Change
FDateField.prefixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FDateFieldStyle>
. -
Breaking Change
FDateField.suffixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FDateFieldStyle>
.
FHeader
#
- Breaking Change
FHeaderAction.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
.
FItem
#
- Breaking Change
FItem.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
.
FMultiSelect
(new) #
- Add
FMultiSelect
. - Add
FMultiSelectController
. - Add
FMultiSelectStyle
. - Add
FMultiSelectTag
.
FPopover
& FPopoverMenu
#
-
Add
FPopover.onTapHide
. -
Add
FPopoverMenu.onTapHide
. -
Breaking Change
FPopover.hideOnTapOutside
toFPopover.hideRegion
. -
Breaking Change
FPopoverMenu.hideOnTapOutside
toFPopoverMenu.hideRegion
. -
Breaking Change
FHidePopoverRegion
toFPopoverHideRegion
. -
Breaking Change
FHidePopoverRegion.excludeTarget
toFHidePopoverRegion.excludeChild
.
FSelect
#
We've done an overhaul of FSelect
to make it more consistent and easier to use.
-
Add
FSelect.contentEmptyBuilder
. -
Add
FSelectItem.raw(...)
-
Change
FSelect
's vertical padding for default loading and empty indicators to be the same height. -
Breaking Rename
FSelect.divider
toFSelect.contentDivider
. -
Breaking Replace
FSelect.hideOnTapOutside
withFSelect.hideRegion
. -
Breaking Change
FSelect.builder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldBuilder<FTextFieldStyle>
. -
Breaking Change
FSelect.prefixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FTextFieldStyle> prefixBuilder
. -
Breaking Change
FSelect.suffixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FTextFieldStyle> suffixBuilder
. -
Breaking Change
FSelectSearchFieldProperties.builder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldBuilder<FTextFieldStyle>
. -
Breaking Change
FSelectSearchFieldProperties.prefixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FTextFieldStyle> prefixBuilder
. -
Breaking Change
FSelectSearchFieldProperties.suffixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FTextFieldStyle> suffixBuilder
. -
Change
FSelectSearchContentBuilder
fromList<FSelectItemMixin> Function(BuildContext context, FSelectSearchData<T> data);
toList<FSelectItemMixin> Function(BuildContext context, String query, Iterable<T> values)
. -
Breaking Remove
FSelectSearchFilter<T>
typedef - use the literal function signature instead. -
Breaking Remove
FSelectSearchData<T>
typedef. -
Breaking Replace
FSelect.emptyBuilder
withFSelect.contentEmptyBuilder
. -
Breaking Replace
FSelect.searchLoadingBuilder
withFSelect.contentLoadingBuilder
. -
Breaking Replace
FSelect.searchErrorBuilder
withFSelect.contentErrorBuilder
. -
Breaking Replace
FSelect.defaultEmptyBuilder
withFSelect.defaultContentEmptyBuilder
. -
Breaking Replace
FSelect.defaultSearchLoadingBuilder
withFSelect.defaultContentLoadingBuilder
. -
Breaking Replace
FSelect.fromMap(...)
withFSelectSection.new(...)
. -
Breaking Replace
FSelect(...)
withFSelectSection.rich(...)
. -
Breaking Replace
FSelect.searchFromMap(...)
withFSelectSection.search(...)
. -
Breaking Replace
FSelect.search(...)
withFSelectSection.searchBuilder(...)
. -
Breaking Replace
FSelectSection.new(...)
withFSelectSection.rich(...)
-
Breaking Replace
FSelectSection.fromMap(...)
withFSelectSection.new(...)
. -
Breaking Change
FSelectItem(...)
's parameters to no longer accept string parameter. -
Breaking Change
FSelectItem.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
. -
Breaking Replace
FSelectItemStyle
with underlyingFItemStyle
. -
Fix first focused item not unfocusing when other items are pressed on touch devices.
FSelectMenuTile
#
-
Add
FSelectMenuTile.onTapHide
. -
Breaking Change
FSelectMenuTile.hideOnTapOutside
toFSelectMenuTile.hideRegion
.
FSelectTileGroup
#
- Breaking Change
FSelectTile.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
.
FSidebar
#
- Breaking Change
FSidebarGroup.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
. - Breaking Change
FSidebarItem.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
.
FTappable
#
- Breaking Change
FTappable.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
.
FTextField
& FTextFormField
#
-
Add
FFieldBuilder.
-
Add `FFieldIconBuilder.
-
Add
FTextField.selectAllOnFocus
. -
Add
FTextFormField.selectAllOnFocus
. -
Breaking Change
FTextField.builder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldBuilder<FTextFieldStyle>
. -
Breaking Change
FTextField.prefixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FTextFieldStyle> prefixBuilder
. -
Breaking Change
FTextField.suffixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FTextFieldStyle> suffixBuilder
. -
Breaking Change
FTextFormField.builder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldBuilder<FTextFieldStyle>
. -
Breaking Change
FTextFormField.prefixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FTextFieldStyle> prefixBuilder
. -
Breaking Change
FTextFormField.suffixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FTextFieldStyle> suffixBuilder
.
FTile
#
- Breaking Change
FTile.onStateChange
fromValueChanged<Set<WidgetState>>
toValueChanged<FWidgetStatesDelta>
.
FTimeField
#
-
Add
onTapHide
toFTimeField.picker(...)
. -
Breaking Change
FTimeField.hideOnTapOutside
toFTimeField.hideRegion
. -
Breaking Change
FTimeField.builder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldBuilder<FDateFieldStyle>
. -
Breaking Change
FTimeField.prefixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FDateFieldStyle>
. -
Breaking Change
FTimeField.suffixBuilder
fromValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)>
toFFieldIconBuilder<FDateFieldStyle>
. -
Fix regression in Flutter 3.35.2 by reducing
FTextFieldStyle.contentPadding
fromEdgeInsets.symmetric(horizontal: 14, vertical: 10)
toEdgeInsets.symmetric(horizontal: 10, vertical: 10)
.
Others #
-
Add
FSelectMenuTile.onTapHide
. -
Add
FTypeaheadController
. -
Add
FWidgetStatesDelta
. -
Change
FMultiValueNotifier
to be non-abstract. -
Breaking Change
FMultiValueNotifier.radio({T? value})
toFMultiValueNotifier.radio([T? value])
. -
Breaking Change
ValueWidgetBuilder<FToasterEntry>? suffixBuilder
toWidget Function(BuildContext, FToasterEntry)? suffixBuilder
inshowFToast(...)
. -
Fix
FProgress.circularIcon()
using incorrect color. -
Fix
FScaffold
not propagatingIconTheme
fromFStyle.iconStyle
. -
Fix
FSelectGroup
throwing a duplicate error when rapidly hovering over severalFCheckbox
es. -
Fix
FTabs
throwing an assertion error ifFTabController
is provided with ainitialIndex
> 0.
0.14.1 #
- Fix
FToaster
sometimes crashing due to an incorrect update of a late final variable.
0.14.0 #
FButton
#
- Add
FButton.onSecondaryPress
. - Add
FButton.onSecondaryLongPress
.
FHeaderAction
#
- Add
FHeaderAction.onSecondaryPress
. - Add
FHeaderAction.onSecondaryLongPress
. - Add
FHeaderAction.actions
. - Add
FHeaderAction.shortcuts
.
FItemData
#
- Breaking Change
FItemData
to store fields in separate data class instead of directly in an inherited widget. - Breaking Rename
FItemData
toFInheritedItemData
.
FPopover
#
-
Breaking Change
FPopoverController.shown
toFPopoverController.status
. -
Fix
FPopover
not respectingFPopover.traversalEdgeBehavior
.
FSelect
#
-
Change
FSelect
's default popover animation duration from50ms
to100ms
. -
Change
FSelect.anchor
's default value fromAlignment.topLeft
toAlignmentDirectional.topStart
. -
Change
FSelect.fieldAnchor
's default value fromAlignment.bottomLeft
toAlignmentDirectional.bottomStart
. -
Fix
FSelect
flickering when selecting an item on desktop. -
Fix
FSelect
not scrolling to selected item when opened if the item is really far down the list. -
Fix
FSelect
layout shifting when scrolling through a long list of items.
FSelectMenuTile
#
-
Add
FSelectMenuTile.fromMap(...)
. -
Fix
FSelectMenuTile
throwing an error when wrapped in aFTileGroup
.
FSidebar
#
-
Add
FSidebar.focusNode
. -
Add
FSidebar.traversalEdgeBehavior
. -
Change
FSidebarItemStyle.focusedOutlineStyle.spacing
from 3 to 0. -
Fix
FSidebar
's focus traversal behavior.
FTappable
#
- Add
FTappable.onSecondaryPress
. - Add
FTappable.onSecondaryLongPress
.
FTile
#
- Add
FTile.onSecondaryPress
. - Add
FTile.onSecondaryLongPress
.
Others #
-
Add
FToasterStyle.toastAlignment
. -
Change default
hideOnTapOutside
inFDateField.calendar(...)
fromFHidePopoverRegion.anywhere
toFHidePopoverRegion.excludeTarget
. -
Change default
hideOnTapOutside
inFTimeField.picker(...)
fromFHidePopoverRegion.anywhere
toFHidePopoverRegion.excludeTarget
. -
Breaking Change
FPersistentSheetController.shown
toFPersistentSheetController.status
. -
Breaking Change
FTooltipController.shown
toFTooltipController.status
. -
Fix
FPopoverMenu
throwing an error when wrapped in aFTileGroup
. -
Fix
FTextField
applying different padding on mobile & desktop.
0.13.1 #
- Fix
FSelectTile
mixing inFItemMixin
instead ofFTileMixin
. - Fix
FSelectMenuTile
mixing inFItemMixin
instead ofFTileMixin
.
0.13.0 #
This update focuses on polishing & improving the usability of existing widgets.
Animations #
We've updated the animations in Forui to feel more nature and be origin aware. This should make the animations feel more polished.
Blur & glassmorphic support #
We've updated most overlay widgets to support background blur & glassmorphic styles. This is disabled by default. It can
be enabled by setting a barrierFilter
& backgroundFilter
in the widget's style.
Styles #
We've updated styles to be easier to configure and use without the CLI. All widgets now accept a style builder function rather than a style object. Similarly, all nested styles inside styles have been replaced with style builder functions. This makes it easier to customize styles based on the existing styles.
Previously:
FFCheckbox(
style: context.theme.checkBoxStyle.copyWith(
tappableStyle: context.theme.checkBoxStyle.copyWith(...),
),
);
Now:
FFCheckbox(
style: (style) => style.copyWith(
tappableStyle: (style) => style.copyWith(...),
),
);
In most cases, this is not a breaking change. Styles have been updated to implement the call
function. This means
that you can still pass in a style object as before.
// Long-form
FFCheckbox(
style: (style) => FCheckBoxStyle(...),
);
// Short-form
FFCheckbox(
style: FCheckBoxStyle(...),
);
FThemeData
#
- Add
FColors.systemOverlayStyle
.
FAccordion
#
-
Add
FAccordionItemStyle.expandDuration
. -
Add
FAccordionItemStyle.expandCurve
. -
Add
FAccordionItemStyle.collapseDuration
. -
Add
FAccordionItemStyle.collapseCurve
. -
Refine
FAccordion
's collapsible animation. -
Breaking Change
FAccordionStyle.iconStyle
's default icon color fromprimary
tomutedForeground
. -
Breaking Remove
FAccordionItemStyle.animationDuration
- useFAccordionItemStyle.expandDuration
instead.
FAlert
#
- Breaking Change
FAlertStyle.primary
's signature - passFAlertStyle.primary()
instead ofFAlert.primary
toFAlert
. - Breaking Change
FAlertStyle.destructive
's signature - passFAlertStyle.destructive()
instead ofFAlert.destructive
toFAlert
.
FBadge
#
- Breaking Change
FBadgeStyle.primary
's signature - passFBadgeStyle.primary()
instead ofFBadgeStyle.primary
toFBadgeStyle
. - Breaking Change
FBadgeStyle.secondary
's signature - passFBadgeStyle.secondary()
instead ofFBadgeStyle.secondary
toFBadgeStyle
. - Breaking Change
FBadgeStyle.destructive
's signature - passFBadgeStyle.destructive()
instead ofFBadgeStyle.destructive
toFBadgeStyle
. - Breaking Change
FBadgeStyle.outline
's signature - passFBadgeStyle.outline()
instead ofFBadgeStyle.outline
toFBadgeStyle
.
FBottomNavigationBar
#
- Add
FBottomNavigationBarStyle.backgroundFilter
.
FBreadcrumb
#
We've added support for an alternative popover menu which uses FItem
and more closely resembles Shadcn/ui's popover
menu suited for desktop.
-
Add
FBreadcrumbItem.collapsedTiles(...)
. -
Breaking Change
FBreadcrumbItem.collapsed
to useFItem
instead ofFTile
- useFBreadcrumb.collapsedTiles(...)
instead.
FButton
#
-
Add
FButton.actions
. -
Add
FButton.shortcuts
. -
Add
mainAxisAlignment
toFButton(...)
. -
Add
crossAxisAlignment
toFButton(...)
. -
Add
textBaseline
toFButton(...)
. -
Add
FButtonContentStyle.spacing
. -
Breaking Change
instrinicWidth
inFButton(...)
tomainAxisSize
. -
Breaking Change
FButtonStyle.primary
's signature - passFButtonStyle.primary()
instead ofFButtonStyle.primary
toFButtonStyle
. -
Breaking Change
FButtonStyle.secondary
's signature - passFButtonStyle.secondary()
instead ofFButtonStyle.secondary
toFButtonStyle
. -
Breaking Change
FButtonStyle.destructive
's signature - passFButtonStyle.destructive()
instead ofFButtonStyle.destructive
toFButtonStyle
. -
Breaking Change
FButtonStyle.outline
's signature - passFButtonStyle.outline()
instead ofFButtonStyle.outline
toFButtonStyle
. -
Breaking Change
FButtonStyle.ghost
's signature - passFButtonStyle.ghost()
instead ofFButtonStyle.ghost
toFButtonStyle
.
FDialog
#
- Add
showFDialog
. - Add
FDialog.animation
. - Add
FDialogRoute
. - Add
FDialogStyle.barrierFilter
. - Add
FDialogStyle.backgroundFilter
. - Add
FDialogStyle.entranceExitDuration
. - Add
FDialogStyle.entranceCurve
. - Add
FDialogStyle.exitCurve
. - Add
FDialogStyle.fadeTween
. - Add
FDialogStyle.scaleTween
.
FHeader
#
- Add
FHeaderStyle.backgroundFilter
. - Add
FHeaderStyle.decoration
.
FItem
(new) #
An FItem
is typically used to group related information together. It is a more generic version of FTile
that is used
to build more complex widgets.
- Add
FItem
. - Add
FItemData
. - Add
FItemDivider
. - Add
FItemGroup
. - Add
FItemStyle
. - Add
FItemContentStyle
.
FPopover
#
-
Add
FPopover.barrierSemanticsLabel
. -
Add
FPopover.barrierSemanticsDismissible
. -
Add
FPopover.builder
. -
Add
FPopoverStyle.barrierFilter
. -
Add
FPopoverStyle.backgroundFilter
. -
Change
FPopover
's animation to be origin aware. -
Change
FPopover(...)
'scontroller
to be optional. -
Breaking Change
FPopover.hideOnTapOutside
default value fromFHidePopoverRegion.anywhere
toFHidePopoverRegion.excludeTarget
. -
Breaking Change
FPopover.popoverBuilder
's signature fromValueWidgetBuilder<FPopoverStyle>
toWidget Function(BuildContext, FPopoverController)
. -
Breaking Remove
FPopover.automatic
- This was a bad abstraction in hindsight, useFPopover.new
instead.
FPopoverMenu
#
We've added support for an alternative popover menu which uses FItem
and more closely resembles Shadcn/ui's popover
menu suited for desktop.
-
Add
FPopoverMenu.tiles(...)
-
Add
FPopoverMenu.barrierSemanticsLabel
. -
Add
FPopoverMenu.barrierSemanticsDismissible
. -
Add
FPopoverMenu.builder
. -
Add
FPopoverMenu.menuBuilder
. -
Change
FPopoverMenu
's animation to be origin aware. -
Change
FPopoverMenu(...)
'scontroller
to be optional. -
Breaking Remove
FPopoverMenu.automatic
- This was a bad abstraction in hindsight, useFPopoverMenu.new
instead. -
Breaking Change
FPopoverMenu(...)
to useFItem
s instead ofFTile
s - useFPopoverMenu.tiles(...)
instead.
FPortal
#
-
Add
FPortal.barrier
. -
Add
FPortal.builder(...)
. -
Change
FPortal.controller
to be optional. -
Breaking Change
FPortal.portalBuilder
's signature fromWidgetBuilder
toWidget Function(BuildContext, FPortalController)
.
FSelect
#
We've updated FSelect
to support dividers & FSelectItem
to support prefixes & subtitles.
-
Add
FSelect.divider
. -
Add
FSelectSection.divider
. -
Add
FSelectItem.prefix
. -
Add
FSelectItem.subtitle
. -
Add
FSelectItemStyle.prefixIconStyle
. -
Add
FSelectItemStyle.prefixIconSpacing
. -
Add
FSelectItemStyle.titleSpacing
-
Add
FSelectItemStyle.subtitleStyle
. -
Breaking Rename
FSelectItem.child
toFSelectItem.title
. -
Breaking Rename
FSelectItemStyle.textStyle
toFSelectItem.titleTextStyle
. -
Breaking Rename
FSelectItemStyle.iconStyle
toFSelectItem.suffixIconStyle
. -
Fix
FSelect.search(...)
always focusing on 1st item even when there is a selected item. -
Fix
FSelect.search(...)
expanding items unnecessarily.
FSelectMenuTile
#
-
Add
FSelectMenuTile.actions
. -
Add
FSelectMenuTile.barrierSemanticsLabel
. -
Add
FSelectMenuTile.barrierSemanticsDismissible
. -
Add
FSelectMenuTile.detailsBuilder
. -
Add
FSelectMenuTile.shortcuts
. -
Change
FSelectMenuTile.selectController
to be optional.
FSheet
#
- Change
FSSheet
's transition animation. - Breaking Change
FSheetStyle.barrierColor
toFSheetStyle.barrierFilter
. - Breaking Remove
FSheetStyle.backgroundColor
.
FSidebar
#
-
Add
FSidebarStyle.backgroundFilter
. -
Add
FSidebarStyle.decoration
. -
Add
FSidebarItemStyle.expandDuration
. -
Add
FSidebarItemStyle.expandCurve
. -
Add
FSidebarItemStyle.collapseDuration
. -
Add
FSidebarItemStyle.collapseCurve
. -
Refine
FSidebar
's collapsible animation. -
Breaking Change
FSidebar
to not bounce. -
Breaking Change
FSidebar.child
to be non-nullable. -
Breaking Change
FSidebarStyle.width
toFSidebarStyle.constraints
. -
Breaking Remove
FSidebarStyle.bordeColor
- useFSidebarStyle.decoration
instead. -
Breaking Remove
FSidebarStyle.bordeWidth
- useFSidebarStyle.decoration
instead. -
Breaking Remove
FSidebarItemStyle.collapsibleAnimationDuration
- useFSidebarItemStyle.expandDuration
instead. -
Fix
FSidebarItem
's style not updating when passed in style changes.
FTappable
#
-
Add
FTappable.actions
. -
Add
FTappable.shortcuts
. -
Add
FTappableStyle.bounceDuration
. -
Add
FTappableStyle.bounceDownCurve
. -
Add
FTappableStyle.bounceUpCurve
. -
Breaking Rename
FTappableStyle.animationTween
toFTappableStyle.bounceTween
. -
Breaking Remove
FTappableAnimations
- useFTappableStyle.defaultBounceTween
andFTappableStyle.noBounceTween
instead.
FTile
#
We have refactored FTile
's implementation to be simpler & its styling to be easier to understand & use. It now uses
FItem
internally.
-
Add
FTile.actions
. -
Add
FTile.shortcuts
. -
Add
FTile.raw(...)
. -
Add
FTileGroupStyle.border
. -
Add
FTileGroupStyle.divierColor
. -
Add
FTileGroupStyle.dividerWidth
. -
Breaking Change
FTileGroup
to render the border even if it contains no groups/tiles - while this isn't desirable this allows us to draw the border in a single pass rather than having each tile draw its part of the border and stitching the results. -
Breaking Change
FTile
to default toFThemeData.tileStyle
instead ofFThemeData.tileGroupStyle.tileStyle
whenFTile
is not inside aFTileGroup
. -
Breaking Remove
FTileGroupStyle.borderColor
- useFTileGroupStyle.border
instead. -
Breaking Remove
FTileGroupStyle.borderWidth
- useFTileGroupStyle.border
instead. -
Breaking Change
prefixIcon
toprefix
in FTile(...)`. -
Breaking Change
suffixIcon
tosuffix
in FTile(...)`. -
Breaking Change
FTile
to ignoreWidgetState
s when neitheronPress
nororLongPress
is given. -
Change
FTile
's focused outline to be a rounded rectangle even if the tile is inside aFTileGroup
. -
Change
FTile
to no longer wrap its content inside aFTileData
if it is not part of aFTileGroup
. -
Breaking Remove
FTileDivider
- useFItemDivider
instead. -
Breaking Remove
FTileData
- useFItemData
instead. -
Breaking Remove
FTileGroupData
- useFItemData
s instead. -
Breaking Change
FTileStyle
to extendFItemStyle
. -
Breaking Remove
FTileStateStyle
. -
Breaking Remove
FTileStateStyle.backgroundColor
- useFTileStyle.decoration
instead. -
Breaking Remove
FTileStateStyle.borderColor
- useFTileStyle.decoration
instead. -
Breaking Remove
FTileStateStyle.borderRadius
- useFTileStyle.decoration
instead. -
Fix
FTileGroup.merge(...)
ignoringphysics
property. -
Fix
FTile
's focused outline being drawn even when explicitly disabled.
FToast
#
We've made toasts dismissable by swiping.
-
Add
swipeToDismiss
toshowFToast(...)
. -
Add
swipeToDismiss
toshowRawFToast(...)
. -
Add
FToastStyle.backgroundFilter
. -
Add
FToasterStyle.swipeCompletionDuration
. -
Add
FToasterStyle.swipeCompletionCurve
. -
Fix
FToaster
auto-dismissing when hovering over non-first toast when expanded. -
Fix
FToaster
expanded state persisting after all toasts has been dismissed on touch devices. -
Fix
showFToast
&showRawFToast
not using custom style passed toFToaster
.
FTooltip
#
-
Add
FTooltip.builder
. -
Add
FTooltipStyle.backgroundFilter
. -
Breaking Replace
FTooltipStyle.margin
withFTooltip.spacing
. -
Breaking Change
FTooltip.tipBuilder
's signature fromValueWidgetBuilder<FTooltipStyle>
toWidget Function(BuildContext, FTooltipController)
. -
Change
FTooltip
's animation to be origin aware.
FScaffold
#
- Add
FScaffold.toasterSwipeToDismiss
. - Add
FScaffold.systemOverlayStyle
.
FSelectMenuTile
#
- Breaking Change
FSelectMenuTile.prefixIcon
toFSelectMenuTile.suffix
. - Breaking Change
FSelectMenuTile.suffixIcon
toFSelectMenuTile.suffix
.
FSelectTile
#
- Breaking Change
prefixIcon
toprefix
in FSelectTile.suffix(...)`. - Breaking Change
suffixIcon
tosuffix
in FSelectTile(...)`.
Others #
-
Add
FAnimatedModalBarrier
. -
Add
FModalBarrier
. -
Add
FPaginationStyle.focusedOutlineStyle
. -
Add
FLocalizations.popoverSemanticsLabel
. -
Add
FSelectTile.actions
. -
Add
FSelectTile.shortcuts
. -
Breaking Remove
defaultFontFamily
fromFTypography.copyWith(...)
. -
Breaking Change
FSelectTileGroup.divider
fromFTileDivider
toFItemDivider
. -
Breaking Change
FSelectMenuTile.autoHide
default value fromfalse
totrue
. -
Breaking Change
FSelectMenuTile.divider
fromFTileDivider
toFItemDivider
. -
Breaking Remove
FTransformable
. -
Fix
FTappable
persisting pressed effect even after pointer is moved outside the widget. -
Fix
FTextFormField
not passing correct value to validator when no controller is provided.
0.12.0 #
Bumps minimum Flutter SDK version to 3.32.0.
CLI #
-
Add
icon-mapping
snippet. -
Breaking Improve how style aliases are generated - Certain style aliases may be removed or renamed.
-
Fix style suggestions always displaying actual style name instead of alias.
FCollapsible
(new) #
A widget that collapses and expands its child.
- Add
FCollapsible
.
FDateField
#
-
Enhance
FDateField.calendar
's focus management. -
Fix
FDateField
not closing calendar popover when enter is pressed.
FScaffold
#
- Add
FScaffold.sidebar
. - add
FScaffold.toasterSwipeToDismiss
. - Add
FScaffoldStyle.sidebarBackgroundColor
.
FSelect
#
-
Add
FSelect.searchFromMap(...)
. -
Add
FSelectItem.raw(...)
. -
Add
FSelectSection.fromMap(...)
. -
Breaking Change
format
inFSelect.new(...)
to be required. -
Breaking Change
format
inFSelect.search(...)
to be required. -
Breaking Remove
FSelect.defaultFormat
. -
Breaking Change
FSelectItem(...)
to require a String text instead of Widget child.
FSidebar
(new) #
A sidebar widget that usually resides on the side of the screen for navigation.
- Add
FSidebar
. - Add
FSidebarGroup
. - Add
FSidebarItem
.
FTextField
& FTextFormField
#
- Add
FTextField.onTapOutside
. - Add
FTextFormField.onTapOutside
.
FToast
& FToaster
(new) #
An optional toast.
- Add
showFToast(...)
. - Add
showRawFToast(...)
. - Add
FToast
. - Add
FToastStyle
. - Add
FToaster
. - Add
FToasterEntry
. - Add
FToasterExpandBehavior
. - Add
FToasterStyle
.
Others #
-
Add
toggleable
parameter toFCalendarController.date(...)
. -
Add
toggleable
parameter toFLineCalendar(...)
. -
Add
FPopover.shortcuts
. -
Add
FTabs.onPress
. -
Breaking Change
FLineCalendar
to be un-toggleable by default. -
Breaking Change
FThemeData.headerStyle
toFThemeData.headerStyles
. -
Enhance
FSelect
's focus management. -
Enhance
FTimeField.picker
's focus management.
0.11.1 #
- Add optional named parameters with their default values to CLI generated styles.
- Fix
FTileStyle.pressable
not changing background color on press & hold. - Fix typo in CLI generated styles' documentation.
0.11.0 #
Styles #
We added a CLI to generate styles for Forui widgets. See forui.dev/docs/cli for more information.
We made several breaking changes to styles and widgets that rely on state styles to improve consistency and usability
(too many to list sanely). Generally, all styles have been updated to use WidgetState
s, becoming more customizable and
concise.
- Breaking Rename
FThemeData.colorScheme
toFThemeData.colors
. - Breaking Rename all
F<Style>.inherit(colorScheme: ...)
toF<Style>.inherit(colors: ...)
.
Semantics Labels #
Both semanticsLabel
and semanticLabel
were used interchangeably throughout the library. All semanticLabel
s
have been renamed to semanticsLabel
for consistency.
- Breaking Rename
semanticLabel
tosemanticsLabel
inFAvatar.new
. - Breaking Rename
semanticLabel
tosemanticsLabel
inFBreadcrumb.collapsed
. - Breaking Rename
FCheckbox.semanticLabel
toFCheckbox.semanticsLabel
. - Breaking Rename
FDialog.semanticLabel
toFDialog.semanticsLabel
. - Breaking Rename
FHeaderAction.semanticLabel
toFHeaderAction.semanticsLabel
. - Breaking Rename
FPopover.semanticLabel
toFPopover.semanticsLabel
. - Breaking Rename
FPopoverMenu.semanticLabel
toFPopoverMenu.semanticsLabel
. - Breaking Rename
FRadio.semanticLabel
toFRadio.semanticsLabel
. - Breaking Rename
FSelectGroupItem.semanticLabel
toFSelectGroupItem.semanticsLabel
. - Breaking Rename
FSelectMenuTile.semanticLabel
toFSelectMenuTile.semanticsLabel
. - Breaking Rename
FSelectTile.semanticLabel
toFSelectTile.semanticsLabel
. - Breaking Rename
FSelectTileGroup.semanticLabel
toFSelectTileGroup.semanticsLabel
. - Breaking Rename
FSwitch.semanticLabel
toFSwitch.semanticsLabel
. - Breaking Rename
FTappable.semanticLabel
toFTappable.semanticsLabel
. - Breaking Rename
FTile.semanticLabel
toFTile.semanticsLabel
. - Breaking Rename
FTileGroup.semanticLabel
toFTileGroup.semanticsLabel
.
FAccordion
#
-
Add
FAccordionItemMixin
. -
Breaking Change
FAccordion.items
toFAccordion.children
. -
Change
FAccordion.children
fromList<FAccordionItem>
toList<FAccordionIteMixin
.
FBottomNavigationBar
#
The tappable logic has been moved from FBottomNavigationBar
to FBottomNavigationBarItem
to improve
FBottomNavigationBarItem
's usability. Unfortunately, this means that custom navigation items have to implement
FTappable
on their own moving forward.
-
Add
FBottomNavigationBarItem.autofocus
. -
Add
FBottomNavigationBarItem.focusNode
. -
Add
FBottomNavigationBarItem.onFocusChange
. -
Add
FBottomNavigationBarItem.onHoverChange
. -
Add
FBottomNavigationBarItem.onStateChange
. -
Add
FBottomNavigationItemStyle.spacing
. -
Breaking Move
FBottomNavigationBarStyle.tappableStyle
toFBottomNavigationBarItemStyle.tappableStyle
. -
Breaking Move
FBottomNavigationBarStyle.focusedOutlineStyle
toFBottomNavigationBarItemStyle.focusedOutlineStyle
.
FButton
#
-
Add
FButton.onChange
. -
Add
FButton.onHoverChange
. -
Add
FButton.selected
. -
Add
intrinsicWidth
toFButton(...)
. -
Breaking Change
FButton(label: ...)
toFBadge(child: ...)
.
FBreadcrumb
#
-
Add
traversalEdgeBehavior
toFBreadcrumbItem.collapsed
. -
Add
autofocus
toFBreadcrumbItem(...)
. -
Add
focusNode
toFBreadcrumbItem(...)
. -
Add
onFocusChange
toFBreadcrumbItem(...)
. -
Add
onHoverChange
toFBreadcrumbItem(...)
. -
Add
onStateChange
toFBreadcrumbItem(...)
. -
Add
spacing
toFBreadcrumbItem.collapsed(...)
. -
Add
offset
toFBreadcrumbItem.collapsed(...)
. -
Add
onHoverChange
toFBreadcrumbItem.collapsed(...)
. -
Add
onStateChange
toFBreadcrumbItem.collapsed(...)
. -
Add
FBreadcrumbStyle.focusedOutlineStyle
. -
Breaking Change
focusNode
fromFocusNode
toFocusScopeNode
inFBreadcrumbItem.collapsed
. -
Breaking Remove
directionPadding
fromFBreadcrumbItem.collapsed(...)
.
FDateField
#
-
Add
FDateField.builder
. -
Add
FDateField.initialDate
. -
Add
FDateField.onChange
. -
Add
spacing
toFDateField.calendar(...)
. -
Add
offset
toFDateField.calendar(...)
. -
Add
spacing
toFDateField(...)
. -
Add
offset
toFDateField(...)
. -
Breaking Remove
directionalPadding
fromFDateField.calendar(...)
. -
Breaking Remove
directionalPadding
fromFDateField(...)
.
FDialog
#
-
Breaking Change
FDialog
to not automatically wrap actions inInstrinicWidth
. -
Breaking Change
FDialog
to not automatically wrap body inIntrinsicWidth
. -
Breaking Move
FDialog.insetAnimationDuration
toFDialogStyle.insetAnimationDuration
. -
Breaking Move
FDialog.insetAnimationCurve
toFDialogStyle.insetAnimationCurve
. -
Breaking Combine
FDialogStyle.minWidth
andFDialogStyle.maxWidth
intoFDialog.constraints.
. -
Breaking Combine
FDialogStyle.minWidth
andFDialogStyle.maxWidth
toFDialog.constraints.
. -
- Fix
FDialog
not handling infinitely sized body correctly.
- Fix
FHeader
#
-
Add
FHeaderAction.onHoverChange
. -
Add
FHeaderAction.onStateChange
. -
Add
FHeaderAction.selected
. -
Add
titleAlignment
toFHeader.nested(...)
. Thanks @a-man-called-q! -
Change
FHeader(title: ...)
to be optional. -
Change
FHeader.nested(title: ...)
to be optional. -
Breaking Change
FHeader(actions: ...)
toFHeader(suffixes: ...)
. -
Breaking Change
FHeader(prefixActions: ...)
toFHeader(prefixes: ...)
. -
Breaking Change
FHeader(suffixActions: ...)
toFHeader(suffixes: ...)
. -
Fix
FHeader
spacing appearing in incorrect order.
FIcon
(removed) #
FIcon
has been removed in favor of Flutter's Icon
class. FIcon
was designed with only monochrome icons in mind
and is not able to support multicolored icons. This coincides with replacement of FAssets
with FIcons
and svg icons
with font icons. In addition, all iconColor
and iconSize
style properties have been replaced with IconThemeData
.
- Breaking Remove
FIcon
- use Flutter'sIcon
. - Breaking Remove
FIconStyle
- use Flutter'sIconThemeData
instead. - Breaking Replace
FAssets
withFIcons
. - Breaking Replace
FAccordionStyle
iconColor
andiconSize
withiconStyle
. - Breaking Replace
FBottomNavigationBarItemStyle
activeIconColor
,inactiveIconColor
andiconSize
withselectedIconStyle
andunselectedIconStyle
. - Breaking Replace
FBottomNavigationBarItemStyle
activeTextStyle
andinactiveTextStyle
withselectedTextStyle
andunselectedTextStyle
. - Breaking Replace
FButtonIconContentStyle
enabledColor
,disabledColor
andiconSize
withenabledStyle
anddisabledStyle
. - Breaking Replace
FButtonContentStyle
enabledIconColor
,disabledIconColor
andiconSize
withenabledIconStyle
anddisabledIconStyle
. - Breaking Replace
FButtonIconContentStyle
enabledColor
,disabledColor
andiconSize
withenabledStyle
anddisabledStyle
. - Breaking Remove
FCalendarHeaderStyle
enabledIconColor
anddisabledIconColor
- configurebuttonStyle.iconContentStyle
instead. - Breaking Change
FDateFieldStyle.iconStyle
fromFIconStyle
toIconThemeData
. - Breaking Replace
FHeaderActionStyle
enabledColor
,disabledColor
andsize
withenabledStyle
anddisabledStyle
. - Breaking Change
FPaginationStyle.iconStyle
fromFIconStyle
toIconThemeData
. - Breaking Change
FTileContentStateStyle.prefixIconStyle
fromFIconStyle
toIconThemeData
. - Breaking Change
FTileContentStateStyle.suffixIconStyle
fromFIconStyle
toIconThemeData
. - Breaking Change
FTimeFieldStyle.iconStyle
fromFIconStyle
toIconThemeData
. - Breaking Replace
FAlertCustomStyle
iconColor
andiconSize
withiconStyle
. - Breaking Change
FBreadcrumbStyle.iconStyle
fromFIconStyle
toIconThemeData
. - Breaking Replace
FCheckboxStateStyle
iconColor
withiconStyle
.
FLineCalendar
#
- Add
FLineCalendar.onChange
. - Add
FLineCalendar.initialSelection
. - Add
FLineCalendar.physics
. - Add
FLineCalendar.keyboardDismissBehavior
. - Change
FLineCalendar.controller
to be optional. - Breaking Rename
FLineCalendar.initialDateAlignment
toFLineCalendar.initialScrollAlignment
. - Breaking Rename
FLineCalendar.initial
toFLineCalendar.initialScroll
.
FPagination
#
-
Add
FPagination.initialPage
. -
Add
FPagination.pages
. -
Change
FPagination.controller
to be optional. -
Change
FPagination.onChange
fromVoidCallback?
toValueChanged<int>?
-
Breaking Change
FPaginationController
to requirepages
parameter.
FPopover
& FPopoverMenu
. #
The traversal-edge behavior of FPopover
and Forui widgets that depend on it have been fixed.
-
Add
FPopover.traversalEdgeBehavior
. -
Add
traversalEdgeBehavior
toFPopoverMenu
. -
Add
FPopover.constraints
. -
Add
FPopover.spacing
. -
Add
FPopover.offset
. -
Add
FPopover.groupId
. -
Add
FPopoverMenu.spacing
. -
Add
FPopoverMenu.offset
. -
Add
FPopoverMenu.groupId
. -
Breaking Change
FPopover.focusNode
fromFocusNode
toFocusScopeNode
. -
Breaking Change
FPopoverMenu.focusNode
fromFocusNode
toFocusScopeNode
. -
Breaking Remove
FPopover.directionPadding
. -
Breaking Remove
FPopoverMenu.directionPadding
. -
Fix
FPopover
unconditionally callingFPopoverController.hide()
when tapping outside aFPopover
.
FPortal
#
FPortal
has been re-implemented to support size alignment, directional spacing & fix a series of longstanding issues.
- Add
FPortal.viewInsets
. - Add
FPortal.spacing
. - Add
FPortalConstraints
. - Add
FPortalSpacing
. - Fix
FPortal
not positioning portals correctly when wrapped in aRepaintBoundary
/Padding
. - Fix
FPortal
not updating portals when child's offset/size changes. - Fix
FPortal
displaying portal when child is not rendered.
FProgress
#
FProgress
has been updated to support indeterminate progress and fix some longstanding issues.
- Add
FProgress.circularIcon
. - Breaking Change
FProgressStyle
toFLinearProgressStyle
. - Breaking Remove
FButtonSpinner
- useFProgress.circularIcon(...)
instead.
FSelect
(new) #
A select displays a list of options for the user to pick from. It is searchable and supports both async & sync loading of items.
- Add
FSelect
. - Add
FSelectController
.
FSelectGroup
, FSelectGroupController
& controller callbacks #
FSelectGroupController
has been replaced with FMultiValueNotifier
to allow usage across other non-select group
widgets. This applies to all Forui widgets that use FSelectGroupController
.
A new onChange
and onSelect
callback has been added to most Forui widgets.
-
Add
FMultiValueNotifier
. -
Add
FSelectTileGroupController
typedef. -
Add
FSelectMenuTileController
typedef. -
Add
FSelectGroup.onChange
. -
Add
FSelectGroup.onSelect
. -
Add
FSelectTileGroup.onChange
. -
Add
FSelectTileGroup.onSelect
. -
Add
FSelectMenuTile.onChange
. -
Add
FSelectMenuTile.onSelect
. -
Breaking Change
FSelectGroup(items: ...)
toFBadge(children: ...)
. -
Breaking Replace
FSelectGroupItem
withFCheckbox.grouped(...)
andFRadio.grouped(...)
. -
Breaking Replace
FSelectGroupController
with a typedef ofFMultiValueNotifier
. -
Breaking Remove
FMultiSelectGroupController
- useFSelectGroupController(...)
instead. -
Breaking Remove
FRadioSelectGroupController
- useFSelectGroupController.radio(...)
instead. -
Breaking Rename
FSelectTileGroup.groupController
toFSelectTileGroup.selectController
. -
Breaking Rename
FSelectMenuTile.groupController
toFSelectMenuTile.selectController
. -
Breaking Rename
FSelectMenuTile.menuTileBuilder
toFSelectMenuTile.menuBuilder
. -
Fix
FSelectGroup
not setting itsFormField
's initial value.
FSelectMenuTile
#
-
Add
FSelectMenuTile.traversalEdgeBehavior
. -
Add
FSelectMenuTile.spacing
. -
Add
FSelectMenuTile.offset
. -
Breaking Change
focusNode
fromFocusNode
toFocusScopeNode
inFSelectMenuTile
. -
Breaking Remove
FSelectMenuTile.directionalPadding
.
FSelectTile
& FSelectTileGroup
#
-
Add
FSelectTile.onHoverChange
. -
Add
FSelectTile.onStatesChange
. -
Fix
FSelectTileGroup
not setting itsFormField
's initial value.
FSlider
#
-
Add
FSlider.initialSelection
. -
Add
FSlider.onChange
. -
Change
FSlider.controller
to be optional. -
Fix
FSlider
not setting itsFormField
's initial value.
FTabs
#
-
Add
FTabs.physics
. -
Breaking Change
FTabs(tabs: ...)
toFTabs(children: ...)
. -
Breaking Rename
FTabs.onPress
toFTabs.onChange
to better reflect its purpose. -
Breaking Change
FTabEntry(content: ...)
toFTabEntry(child: ...)
.
FTappable
#
FTappable
has been updated to support animations by default. This applies to all Forui widgets that use FTappable
.
The hovered
state has also been split into hovered
and pressed
states.
-
Add
FTappableStyle
. -
Add
FAccordionStyle.tappableStyle
. -
Add
FBottomNavigationBarStyle.tappableStyle
. -
Add
FBreadcrumbStyle.tappableStyle
. -
Add
FButtonStyle.tappableStyle
. -
Add
FCalendarDayPickerStyle.tappableStyle
. -
Add
FCalendarEntryStyle.tappableStyle
. -
Add
FCalendarHeaderStyle.tappableStyle
. -
Add
FHeaderActionStyle.tappableStyle
. -
Add
FLineCalendarStyle.tappableStyle
. -
Add
FPaginationStyle.tappableStyle
. -
Add
FTileStyle.tappableStyle
. -
Add
FTappable.onStateChange
. -
Add
FTappable.onHoverChange
. -
Add
FTappableStyle.cursor
. -
Breaking Replace
FTappable.semanticsSelected
withFTappable.selected
. -
Breaking Rename
FTappable
toFTappable.static
. -
Breaking Rename
FTappable.animated
toFTappable
. -
Breaking Split
FTappableData.hovered
intoFTappableData.hovered
andFTappableData.pressed
. -
Fix
FTappable
's animation sometimes being invoked after it is unmounted.
FTextField
& FTextFormField
(new) #
We've split FTextField
into FTextField
and FTextFormField
. This change was necessary to allow FTextField
to be
used in other widgets and allowing those widgets to properly implement FormField
.
-
Add
FTextField.groupId
. -
Add
FTextField.obscuringCharacter
. Thanks @MrHeer! -
Add
FTextField.filled
andFTextField.fillColor
. Thanks @MrHeer! -
Add
FTextFormField
. -
Breaking Change
FTextField
to not support form-related operations. UseFTextFormField
instead. -
Fix
FTextField
not setting itsFormField
's initial value. -
Fix
FTextField(...)
not setting the max lines to 1 default.
FTile
#
- Add
FTile.onHoverChange
. - Add
FTile.onStateChange
. - Add
FTile.selected
.
FTimeField
#
-
Add
FTimeField.builder
. -
Add
FTimeField.initialTime
. -
Add
FTimeField.onChange
. -
Add
spacing
toFTimeField.picker(...)
. -
Add
offset
toFTimeField.picker(...)
. -
Breaking Remove
directionalPadding
fromFTimeField.picker(...)
.
Others #
-
Breaking Rename
FAlertStyle
toFBaseAlertStyle
. -
Breaking Rename
FAlertCustomStyle
toFAlertStyle
. -
Breaking Move constants in
FBaseAlertStyle
toFAlertStyle
. -
Breaking Change
FBadge(label: ...)
toFBadge(child: ...)
. -
Add
FCardContentStyle.imageSpacing
. -
Add
FCardContentStyle.subtitleSpacing
. -
Add
FLerpBorderRadius
. -
Add
FPicker.onChange
. -
Add
FResizable.onChange
. -
Fix
FResizable
not guarding against precision errors in assertions. -
Breaking Change
FScaffold(content: ...)
toFScaffold(child: ...)
. -
Add
FTimePicker.onChange
.
0.10.0+1 #
Fix bad build caused by generated files not being published.
0.10.0 #
Additions #
- Add
FTextField.counterBuilder
. - Add
FTransformable
. - Add
FTransformables
. - Add
FTextField.clearable
. - Add
FTextField.stylusHandwritingEnabled
. - Add
FPickerWheelMixin
. - Add
FTimeField
. - Add
FTimeFieldController
. - Add
FTimeFieldProperties
. - Add
FThemeData.toApproximateMaterialTheme()
. - Add
FTimePicker
. - Add
FTimePickerStyle
. - Add
FPickerStyle.selectionHeightAdjustment
. - Add
FDateField.clearable
. - Add
FTileGroup.physics
. - Add
FSelectTileGroup.physics
. - Add
FSelectMenuTile.physics
. - Add
FPagination
.
Changes #
- Change all widget styles to use code generated functions.
- Change spacing between
FDateField
's default prefix icon and content. - Change most occurrences of
Alignment
toAlignmentGeometry
. - Change most occurrences of
BorderRadius
toBorderRadiusGeometry
. - Change most occurrences of
EdgeInsets
toEdgeInsetsGeometry
. - Breaking Rename
FDatePicker
toFDateField
. - Breaking Rename
FDatePickerController
toFDateFieldController
. - Breaking Rename
FDatePickerController.calendar
toFDateFieldController.popover
. - Breaking Rename
FDatePickerCalendarProperties
toFDateFieldCalendarProperties
. - Breaking Rename
FLocalizations.datePickerHint
toFLocalizations.dateFieldHint
. - Breaking Rename
FLocalizations.datePickerInvalidDateError
toFLocalizations.dateFieldInvalidDateError
. - Breaking Change
FThemeData(...)
to automatically configure styles not passed in. - Breaking Remove
FThemeData.inherit
. UseFThemeData(...)
instead. - Breaking Remove FTextField.scribbleEnabled. Use
stylusHandwritingEnabled
instead. - Breaking Change
FDialogContentStyle.actionPadding
toFDialogContentStyle.actionSpacing
. - Breaking Change default
FPickerStyle.textStyle
size fromlg
tobase
. - Breaking Change
FTimePicker
to useFTimePickerStyle
instead ofFPickerStyle
. - Breaking Rename
FLocalizations.sheetLabel
toFLocalizations.sheetSemanticsLabel
. - Breaking Rename
FBadgeStyle
toFBaseBadgeStyle
. - Breaking Rename
FBadgeCustomStyle
toFBadgeStyle
. - Breaking Move constants in
FBaseBadgeStyle
toFBadgeStyle
. - Breaking Rename
FButtonStyle
toFBaseButtonStyle
. - Breaking Rename
FButtonCustomStyle
toFButtonStyle
. - Breaking Move constants in
FBaseButtonStyle
toFButtonStyle
.
Fixes #
- Fix
FDateField.input
to show default icon. - Fix
FTab
not updating when using controller to switch tabs. - Fix
FPicker
incorrectly detecting number of wheels when controller is not given and placeholder is used. - Fix
FDateField
not handlingbg
,en
,sr
,sr_Latn
andzu
locales properly. - Fix
FDateField
not updating when locale changes. - Fix
FHeader
not respectingFHeaderStyle.actionSpacing
.
0.9.1+1 #
Fix documentation not publishing.
0.9.1 #
0.9.0 #
Additions #
- Add
FDatePicker
. - Add
FFormProperties
. - Add
FPagination
. - Add
FPicker
. - Add
FPopoverTagRegion
. - Add
FBreadcrumb
. - Add
FTextField.builder
. - Add
FTextField.onTap
. - Add
FTextField.onTapAlwaysCalled
. - Add
FSelectGroupController.onUpdate
. - Add
animationTween
toFTappable.animated(...)
. - Add
FValueNotifier.addValueListener(...)
. - Add
FValueNotifier.removeValueListener(...)
.
Changes #
- Breaking Change
FPopover.hideOnTapOutside
's type frombool
toFHidePopoverRegion
. The default behavior for hiding behavior forFPopover()
has changed from excluding the target to not. - Breaking Change
FPopoverStyle.shadow
toFStyle.shadow
. - Breaking Change
FPopoverMenu.tappable(...)
toFPopoverMenu.automatic(...)
. - Breaking Change
FPopover.controller(...)
toFPopover.popoverController(...)
. - Breaking Change
FPopover.tappable(...)
toFPopover.automatic(...)
. - Breaking Change
FPopover.followerAnchor
toFPopover.popoverAnchor
. - Breaking Change
FPopover.targetAnchor
toFPopover.childAnchor
. - Breaking Change
FPortal.followerAnchor
toFPortal.portalAnchor
. - Breaking Change
FPortal.targetAnchor
toFPortal.childAnchor
. - Breaking Change
FPortal.followerBuilder
toFPortal.portalBuilder
. - Breaking Change
FPortalFollowerShift
toFPortalShift
. - Breaking Remove
onChange
parameter fromFSelectTile
. This was accidentally include from early prototyping. - Breaking Change
FSelectGroupController.select(...)
toFSelectGroupController.update(...)
- Breaking Change
FSelectGroupController
to be aValueNotifier
. - Breaking Change
FTileGroup.prefix
fromWidget
toValueWidgetBuilder<FTextFieldStateStyle>
. - Breaking Change
FTileGroup.suffix
fromWidget
toValueWidgetBuilder<FTextFieldStateStyle>
. - Breaking Change
FTileGroup.controller
toFTileGroup.scrollController
.
Fixes #
- Fix
FCalendar
rebuilding whenever the giveninitialType
and/orinitialMonth
changes. - Fix
FCalendar
's day picker not updating when a new start and/or end date is given. - Fix
FHeader.nested(...)
not rendering the title when no prefix and suffix actions are given. - Fix
FPopover
not handling focus changes in popover properly. - Fix
FTabs
's scrollable alignment not being correct. - Fix
FTappable
remaining in a hovered or touched state when itsonPress
/onLongPress
callbacks were nulled after being non-null. - Fix
FTextField
ignoringenableInteractiveSelection
parameter. - Fix
FTextField
ignoringFTextFieldStyle.cursorColor
.
0.8.0 #
Bump minimum Flutter version to 3.27.0.
Additions #
-
Add
showFSheet(...)
. -
Add
showFPersistentSheet(...)
. -
Add
FModalSheetRoute
. -
Add
FSheets
. -
Add
FSheets
internally toFScaffold
. -
Add
truncateAndStripTimezone
toFCalendarController.date(...)
. -
Add
truncateAndStripTimezone
toFCalendarController.dates(...)
. -
Add
truncateAndStripTimezone
toFCalendarController.range(...)
. -
Add
FCalendar.dayBuilder
. -
Add
FLineCalendar
. -
Add
FTileGroup.builder
. -
Add
FSelectTileGroup.builder
. -
Add
FSelectMenuTile.builder
. -
Add
FScaffold.resizeToAvoidBottomInset
. -
Add
FThemeData.debugLabel
.
Changes #
-
Change
FCalendarController.date(...)
to automatically strip and truncate all DateTimes to dates in UTC timezone. -
Change
FCalendarController.dates(...)
to automatically strip and truncate all DateTimes to dates in UTC timezone. -
Change
FCalendarController.ranges(...)
to automatically strip and truncate all DateTimes to dates in UTC timezone. -
Change
FCalendar.start
to be optional and default to 1st January 1900. -
Change
FCalendar.end
to be optional and default to 1st January 2100. -
Change
FTheme
to internally extendInheritedTheme
. -
Change
FTileGroup
to be scrollable. -
Change
FPopoverMenu
to be scrollable. -
Change
FSelectTileGroup
to be scrollable. -
Change
FSelectMenuTile
to be scrollable. -
Change
ThemeBuildContext
toFThemeBuildContext
. -
Breaking Change
Layout
toFLayout
. -
Breaking Change
FLocalizations.of(...)
to returnFLocalizations?
instead ofFLocalizations
- doFLocalizations.of(...) ?? FDefaultLocalizations()
. This change is sadly needed as Flutter now forcefully regeneratesFLocalizations
each timeflutter pub get
is called. -
Breaking Change
FTileData.index
toFTileData.last
. -
Breaking Change
FPopoverMenu.controller
toFPopoverMenu.popoverController
. -
Breaking Change
FSelectTileGroup.controller
toFSelectTileGroup.groupController
. -
Breaking Change
FPopoverController.duration
toFPopoverController.animationDuration
. -
Breaking Change
FTooltipController.duration
toFTooltipController.animationDuration
. -
Breaking Change
FTabController.ignoreDirectionalPadding
toFTabController.directionPadding
. -
Breaking Change
FPopover.ignoreDirectionalPadding
toFPopover.directionPadding
- the value should be inverted.* -
Breaking Change
FPopoverMenu.ignoreDirectionalPadding
toFPopoverMenu.directionPadding
- the value should be inverted. -
Breaking Change
FSelectMenuTile.ignoreDirectionalPadding
toFSelectMenuTile.directionPadding
- the value should be inverted.
Fixes #
- Resolved an issue where
FLabel
exhibited incorrect padding when used withAxis.horizontal
and RTL layouts.
0.7.0 #
This update adds responsive breakpoints, focused outlines & localization! It also introduces several new tile widgets.
Additions #
-
Add
FButtonSpinner
. -
Add
FBreakpoints
. -
Add
FIcon.empty()
. -
Add
FTappable
. -
Add
FTile
. -
Add
FTileGroup
. -
Add
FSelectMenuTile
. -
Add
FSelectTile
. -
Add
FSelectTileGroup
. -
Add
FCalendarDayPickerStyle.tileSize
. -
Add
FPopover.ignoreDirectionalPadding
. -
Add
FPopover.tappable(...)
. -
Add
FPopoverMenu
. -
Add
FPortal.offset
. -
Add
FLocalizations
. -
Add
FFocusedOutline
. -
Add
FDialog.adaptive(...)
. -
Breaking Add
focusedOutlineStyle
toFAccordionStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedOutlineStyle
toFBottomNavigationBar
- this only affect users which use the primary constructor. -
Breaking Add
focusedOutlineStyle
toFButtonStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedOutlineStyle
toFHeaderActionStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedOutlineStyle
toFResizableDividerStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedOutlineStyle
toFCheckboxStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedOutlineStyle
toFRadioStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedBorder
toFTileStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedDividerStyle
toFTileStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedOutlineStyle
toFTabsStyle
- this only affect users which use the primary constructor. -
Breaking Add
focusedOutlineStyle
toFSliderThumbStyle
- this only affect users which use the primary constructor.
Changes #
-
Breaking Change
FPopover()
to not automatically wrap a target in aGestureDetector
- useFPopover.tappable(...)
instead. -
Breaking Change
FSlider
to default to the current text direction instead ofLayout.ltr
. -
Change
FCalendar
to support localization.
Fixes #
-
Change FButton's animation to only start on mouse down and up.
-
Fix
FLabel
not showing error message if label and description are null. -
Fix
FSelectGroup
not properly disposing callbacks.
0.6.1 #
- Fix range slider not displaying tooltip for minimum thumb.
0.6.0 #
Additions #
-
Add
FAccordion
. -
Add
FSlider
. -
Add
FButtonStyles.ghost
. -
Add
FButtonCustomStyle.enabledHoverBoxDecoration
. -
Add
FTextField.contentInsertionConfiguration
. -
Add
FTextField.mouseCursor
. -
Add
FTextField.forceErrorText
. -
Add
FIcon
. -
Add
FColorScheme.disable(...)
. -
Add
FColorScheme.disableOpacity
. -
Add
FColorScheme.hover(...)
. -
Add
FColorScheme.enabledHoveredOpacity
. -
Add
FChangeNotifier
. -
Add
FValueNotifier
.
Changes #
-
Change button to change color when hovering over it.
-
Change
FCalendar
year picker to update the header whenever a year is selected. -
Increase
FCalendar
's default text size fromFTypography.sm
toFTypography.base
. -
Breaking Change
FBottomNavigationBarItem.label
fromString
toWidget
. -
Breaking Split
FCalendarHeaderStyle.iconColor
intoFCalendarHeaderStyle.enabledIconColor
andFCalendarHeaderStyle.disabledIconColor
. -
Breaking Change
FTextField
to useFLabel
. -
Breaking Remove
FTextFieldErrorStyle.animatioDuration
. -
Breaking Rename
FLabelStateStyle
toFLabelStateStyles
. -
Breaking Rename
FTextField.onSave
toFTextField.onSaved
. -
Breaking Remove FAlertIcon & FAlertIconStyle - use
FIcon
instead. -
Breaking Remove FButtonIcon & FAlertIconStyle - use
FIcon
instead. -
Breaking Change FButtonCustomStyle to better represent the style's layout - this will only affect users that create a custom
FButtonCustomStyle
. -
Breaking Change
FBottomNavigationBarItem.icon
fromSvgAsset
toWidget
- wrap the asset inFIcon
instead. -
Breaking Change
FHeaderAction.icon
fromSvgAsset
toWidget
- wrap the asset inFIcon
instead. -
Breaking Change
FSelectGroup.builder
parameters. -
Breaking Change
FBadgeCustomStyle.content
toFBadgeCustomStyle.contentStyle
. -
Breaking Change
FAvatarStyle.text
toFAvatarStyle.textStyle
. -
Breaking Change
FDialogStyle.horizontal
toFDialogStyle.horizontalStyle
. -
Breaking Change
FDialogStyle.selectedLabel
toFDialogStyle.selectedLabelTextStyle
. -
Breaking Change
FDialogStyle.unselectedLabel
toFDialogStyle.unselectedLabelTextStyle
. -
Breaking Change
FDividerStyle.horizontal
toFDividerStyle.horizontalStyle
. -
Breaking Change
FDividerStyle.vertical
toFDividerStyle.verticalStyle
. -
Breaking Change
FDialogStyle.indicator
toFDialogStyle.indicatorDecoration
. -
Breaking Change
FHeader.leftActions
toFHeader.prefixActions
. -
Breaking Change
FHeader.rightActions
toFHeader.suffixActions
. -
Breaking Change
FLabelStyle.horizontal
toFLabelStyle.horizontalStyle
. -
Breaking Change
FLabelStyle.vertical
toFLabelStyle.verticalStyle
. -
Breaking Change
FButtonStyles.outline
's background to transparent.
Fixes #
-
Fix
FBottomNavigationBar
items hit region being smaller than intended. -
Fix
FCalendar
showing focused outline when pressing and long pressing a date. -
Fix
FCalendar
year and month picker applying incorrect initial top padding. -
Fix
FCalendar
year and month picker incorrectly calculating start and end dates. -
Fix
FTextfield
being vertically larger than intended. -
Fix
FTextfield
description text's odd transition animation whenever an error occurs. -
Fix
FSwitch
not using correct label style. -
Fix
FCheckbox
,FRadio
,FSelectGroup
,FSwitch
andFTextField
styles causing the widget inspector to crash. -
Fix
FSelectGroup
not applying correct style if a custom widget-specific style is given.
0.5.1 #
#
- Fix
FTabs
not showing correct tab entry when switching tabs. Issue #203.
0.5.0 #
The minimum Flutter version has been increased from 3.19.0
to 3.24.0
.
Additions #
-
Add
FButton.icon(...)
. -
Add
FBottomNavigationBarData
. -
Add
FButtonData
. -
Add
FCalendarHeaderStyle.buttonStyle
. -
Add
FFormFieldStyle
. -
Add
FHeaderData
. -
Add
FResizable.semanticFormatterCallback
. -
Add
FLabel
. -
Add label and description to
FCheckbox
. -
Add label and description to
FSwitch
. -
Add
FPortal
. -
Add
FPopover
. -
Add
FTooltip
. -
Add
FSelectGroup
. -
Add
FRadio
.
Changes #
-
Breaking: Change
FAlertIconStyle.height
toFAlertIconStyle.size
. -
Breaking: Rename
FBottomNavigationBar.items
toFBottomNavigationBar.children
. -
Breaking: Remove
FBottomNavigationBar.raw(...)
- use the default constructor instead. -
Breaking: Rename
FButtonIconStyle.height
toFButtonIconStyle.size
. -
Breaking: Change
FDivider.vertical
toFDivider.axis
. -
Change
FResizable
to resize byFResizable.resizePercentage
when using a keyboard. -
Breaking: Change
FResiableDividerStyle.thickness
toFResizableDividerStyle.width
. -
Change
FTextFieldStyle
to inherit fromFFormFieldStyle
. -
Change
FTextField
to display error under description instead of replacing it. -
Breaking: Change
FTextField.help
toFTextField.description
. -
Breaking: Change how
FTextFieldStyle
stores various state-dependent styles. -
Breaking: Remove
FTextField.error
- useFTextField.forceErrorText
instead. -
Change
FTabController
to implementChangeNotifier
instead ofListenable
. -
Breaking: Flattened
FStyle.formFieldStyle
- useFStyle.enabledFormFieldStyle
,FStyle.disabledFormFieldStyle
, andFStyle.errorFormFieldStyle
. -
Improve platform detection for web when initializing platform-specific variables.
-
Breaking:
FCheckbox
andFSwitch
no longer wrapsFormField
- consider wrapping them in aFormField
if required. -
Breaking: Require
FTheme
to be wrapped in aCupertinoApp
,MaterialApp
orWidgetsApp
.
Fixes #
-
Fix
FResizable
not rendering properly in an expanded widget when its crossAxisExtent is null. -
Fix
FTextField
not changing error text color when an error occurs. -
Fix
FTextField
error message replacing the description text. -
Fix
FCheckboxStyle.inherit(...)
icon color inheriting from the wrong color. -
Fix
FTabs
not handling indexes properly.
0.4.0 #
Additions #
-
Add
FAvatar
. -
Breaking: Add
FCalendarEntryStyle.focusedBorderColor
. This only affects users that customizedFCalendarEntryStyle
. -
Add
FResizable
. -
Add
image
parameter toFCard
.
Changes #
-
Change number of years displayed per page in
FCalendar
from 12 to 15. -
Breaking: Move
FCalendar.enabled
toFCalendarController.selectable(...)
. -
Breaking: Rename
FCalendarController.contains(...)
toFCalendarController.selected(...)
. -
Breaking: Rename
FCalendarController.onPress(...)
toFCalendarController.select(...)
. -
Breaking: Rename
FCalendarEntryStyle.focusedBackgroundColor
toFCalendarEntryStyle.hoveredBackgroundColor
. This only affects users that customizedFCalendarEntryStyle
. -
Breaking: Rename
FCalendarEntryStyle.focusedTextStyle
toFCalendarEntryStyle.hoveredTextStyle
. This only affects users that customizedFCalendarEntryStyle
. -
Breaking: Move
FCalendarSingleValueController
toFCalendarController.date(...)
. -
Breaking: Move
FCalendarMultiValueController
toFCalendarController.dates(...)
. -
Breaking: Rename
FCalendarSingleRangeController
toFCalendarRangeController.range(...)
. -
Breaking: Rename
FSeparator
toFDivider
. -
Breaking: Remove
colorScheme
,typography
andstyle
parameters fromFThemeData.copyWith(...)
. The problem was widget-specific styles not being re-created after the removed parameters were updated. This led to unintuitive behavior where the style of a widget was not updated when theFThemeData
was updated. This should only affect people that customizeFThemeData
. Use theFThemeData.inherit(...)
constructor instead.
Fixes #
-
Fix
FCalendar
dates &FButton
s not being toggleable usingEnter
key. -
Fix
FCalendar
dates sometimes not being navigable using arrow keys.
0.3.0 #
0.2.0 #
Additions #
-
Add
FCheckbox
. -
Add
FHeader.nested
. -
Add
FProgress
.
Enhancements #
-
Breaking Move
FHeaderStyle
toFHeaderStyles.rootStyle
. -
Breaking Move
FHeaderActionStyle.padding
toFRootHeaderStyle.actionSpacing
. -
Breaking Suffix style parameters with
Style
, i.e.FRootHeaderStyle.action
has been renamed toFRootHeaderStyle.actionStyle
. -
Breaking Raw fields have been removed, wrap strings with the Text() widget. E.g.
FButton(label: 'Hello')
orFButton(rawLabel: 'Hello')
should be replaced withFButton(label: Text('Hello'))
. -
Change
FTextField
to be usable inForm
s. -
Change
FTextFieldStyle
's default vertical content padding from5
to15
. -
Split exports in
forui.dart
into sub-libraries.
Fixes #
-
Fix missing
key
parameter inFTextField
constructors. -
Breaking
FButton.prefixIcon
andFButton.suffixIcon
have been renamed toFButton.prefix
andFButton.suffix
. -
Fix padding inconsistencies in
FCard
andFDialog
.
0.1.0 #
- Initial release! 🚀