Date format: DD/MM/YYYY
ProgressRing
now spins on the correct direction (#83)- Added the
backwards
property toProgressRing
FluentApp.builder
now works as expected (#84)- Implemented
NavigationPane.customPane
, which now gives you the ability to create custom panes forNavigationView
- BREAKING
sizes
,offsets
andindex
parameters fromNavigationIndicatorBuilder
were replaced bypane
- Back button now isn't forced when using top navigation mode (#74)
PilButtonBar
now accept 2 items (#66)- Added builder variant to
NavigationBody
. - Fixed content bug when
AppBar
was not supplied tooNavigationView
- Added missing parameters in
_FluentTextSelectionControls
methods (#67) - Min Flutter version is now 2.5.0
- EXAMPLE APP Updated the url strategy on web.
- EXAMPLE APP Upgraded dependencies
- Format code according to flutter_lints
- Updated Typography:
- BREAKING Renamed
header
->display
- BREAKING Renamed
subHeader
->titleLarge
- BREAKING Renamed
base
->bodyStrong
- Added
bodyLarge
- Updated font size and weight for most of the text styles
- BREAKING Renamed
- Update
SplitButton
design - Update
IconButton
design - Fixed
ToggleSwitch
not showing expanded thumb mode when dragging - BREAKING Remove
CheckboxListTile
,RadioListTile
andSwitchListTile
. Use the respective widget with thecontent
property
- Update
ToggleButton
design. - Update
Button
design. - Update
RadioButton
design. - Update
ContentDialog
design. - Update
NavigationView
design:- BREAKING: Acryic is not used anymore. Consequently,
useAcrylic
method was removed.
- BREAKING: Acryic is not used anymore. Consequently,
- Implemented
Mica
, used by the newNavigationView
- Added support for horizontal tooltips. Set
Tooltip.displayHorizontally
to true to enable it. - Updated Acrylic to support the web
- Update
Checkbox
design - Update
ToggleSwitch
design - Update
Scrollbar
design - Update
Slider
design - Update
InfoBar
design - Update pickers design (
Combobox
,DatePicker
andTimePicker
)
- Implement Fluent Selection Controls for
TextBox
(#49) Tooltip
is now displayed when focused (#45)- AppBar is now displayed when minimal pane is open.
- AppBar's animation now follows the pane animation
- BREAKING: Material
Icons
are not used anymore. UseFluentIcons
instead. - BREAKING: Reworked the
Acrylic
widget implementation (#47) - BREAKING: Removed the
useAcrylic
property fromNavigationView
. Acrylic is now used by default. PaneDisplayMode.compact
has now a width of 40, not 50.- Removed
SizeTransition
fromTabView
.
- Option to set a default font family on the theme data (
ThemeData.fontFamily
) indicatorBuilder
is correctly applied to the automatic display mode inNavigationView
- An overlay is open when the toggle button is pressed on the compact display mode (#43)
- Implemented
BottomNavigation
- Implemented
BottomSheet
- Implemented
Chip
- Implemented
Snackbar
- Implemented
PillButtonBar
- New buttons variations:
FillButton
OutlinedButton
TextButton
PaneItem
s'build
method is now overridable. You can know customize how the items inNavigationView
should look like by overriding the method.- Fixed bug that navigation indicator was not showing on the first frame
- Fixed minimal tooltip not updating when closed the overlay
- EXAMPLE APP: Navigation indicator is now configurable on the
Settings
page
- Correctly apply items positions to pane indicators, regardless of external factors, such as navigation view app bar (#41)
- Improved
NavigationIndicator
s performance
-
BREAKING CHANGES: Reworked the theme api (#39):
-
Removed the theme extension (
context.theme
). UseFluentTheme.of(context)
instead -
ButtonState
is now a class that can receive a value. It now allows lerping between values, makingAnimatedFluentTheme
possible.Here's an example of how to migrate your code:
Before:
cursor: (_) => SystemMouseCursors.click,
Now:cursor: ButtonState.all(SystemMouseCursors.click),
-
All theme datas and
AccentColor
have now a lerp method, in order to makeAnimatedFluentTheme
possible. -
Implemented
AnimatedFluentTheme
, in order to replaceAnimateContainer
s all around the library -
Dedicated theme for each theme data (#37):
- IconTheme
- ButtonTheme
- RadioButtonTheme
- CheckboxTheme
- FocusTheme
- SplitButtonTheme
- ToggleButtonTheme
- ToggleSwitchTheme
- NavigationPaneTheme
- InfoBarTheme
- TooltipTheme
- DividerTheme
- ScrollbarTheme
-
DividerThemeData
now hasverticalMargin
andhorizontalMargin
instead of an axis callback. -
Updated button colors.
-
Removed
animationDuration
andanimationCurve
from theme datas (except fromNavigationPaneThemeData
). -
Renamed
copyWith
tomerge
on theme datas (except fromThemeData
) -
Fixed typo
standart
->standard
-
Implement
AnimatedAcrylic
-
- Minimal flutter version is now 2.2
- Implement
FluentScrollBehavior
, that automatically adds a scrollbar into listviews (#35) - Reworked the inputs api (#38):
- A input can have multiple states. Now, if the widget is focused and pressed at the same time, it doesn't lose its focused border.
- Now, the focus is not requested twice when the button is pressed, only once. This fixes a bug introduced in a previous version that combo boxes items we're not being focused.
- Semantics (acessibility) is now applied on all inputs
- New way to disable the acrylic blur effect. Just wrap the acrylic widget in a
NoAcrylicBlurEffect
to have it disabled. - Reworked the Navigation Panel from scratch (#31):
- The legacy
NavigationPanel
andScaffold
were removed. UseNavigationView
andScaffoldPage
instead - Implemented open, compact, top and minimal display modes.
- Custom Selected Indicators
- The legacy
- Implemented fluent localizations (#30)
- FIX Reworked the combo box widget to improve fidelity. (#25)
- FIX Improved
HoverButton
focus management. - FIX Reworked the tooltip widget. Now, if any mouse is connected, the tooltip is displaying according to the pointer position, not to the child's. (#26)
- FIX TabView is now scrollable if the size of the tabs overflow the width
- BREAKING
InfoHeader
was renamed toInfoLabel
. You can now set if the label will be rendered above the child or on the side of it. - FIX Fixed
RadioButton
inner color overlaping the border. - NEW
ThemeData.inputMouseCursor
- FIDELITY Switch thumb is now draggable. (Fixes #22)
- EXAMPLE Reworked the example app inputs page
- FIX
CheckboxListTile
,SwitchListTile
andRadioListTile
now doesn't focus its leading widget. - FIX
TabView
is now not scrollable - FIX Fixed
Acrylic
blur effect being disabled by default. - FIDELITY Improved
ContentDialog
transition fidelity - FIX Fixed
FocusBorder
for some widgets. It was affecting layout when it shouldn't - FIX
RatingBar
andSlider
weren't working due toFocusBorder
- NEW | FIDELITY New
Slider
thumb
- NEW
FocusBorder.renderOutside
. With this property, you can control if the FocusBorder will be rendered over the widget or outside of it. - FIX Fixed
RadioButton
s border when focused - FIX
Color.resolve
now doesn't throw a stack overflow error. - BREAKING Removed
Color.resolveFromBrightness
. This is only available onAccentColor
- EXAMPLE APP Hability to change the app accent color
- NEW
darkest
andlightest
colors variants inAccentColor
- FIX Fixed
InfoBar
's error icon. It now usesIcons.cancel_outlined
instead ofIcons.close
- NEW
NavigationPanel
now has aScrollbar
and thebottom
property is now properly styled if selected
- FIX
TabView
tabs can now be reordered (Fixes #10) - FIDELITY If a new
Tab
is added, its now animated - FIX
FocusBorder
now doesn't change the size of the widgets - BREAKING
buttonCursor
,uncheckedInputColor
andcheckedInputColor
are now moved toButtonThemeData
as static functions.
- FIX Fixed diagnostic tree. (Fixes #17)
- FIX | FIDELITY
TappableListTile
now changes its color when focused instead of having a border - FIDELITY Improved
Acrylic
's blur effect fidelity - FIX
Acrylic
's elevation was being applying margin - NEW
ThemeData.shadowColor
, which is now used byAcrylic
- NEW You can now globally disable the acrylic blur effect by changing
Acrylic.acrylicEnabled
The whole theme implementation was reworked on this change.
- BREAKING Renamed
Theme
toFluentTheme
- BREAKING All the properties in
FluentTheme
now can't be null - BREAKING Renamed all the
Style
occurrences toThemeData
- BREAKING
ThemeData.accentColor
is now anAccentColor
- FIX When providing a custom style to a tooltip, it's now correctly applied to
ThemeData.tooltipStyle
- FIX
debugCheckHasFluentTheme
has now a better error message - FIX
FluentApp
now doesn't throw an error if notheme
is provided - FIX Reworked
Scrollbar
to improve fidelity. - NEW Color extension methods:
Color.toAccentColor
andColor.basedOnLuminance
- NEW
Button.builder
- NEW In
TabView
, it's now possible use the following shortcuts ifTabView.shortcutsEnabled
istrue
(Follows this):Ctrl + F4
orCtrl + W
to close the current tabCtrl + T
to create a new tab1-8
to navigate to a tab with the pressed number9
to navigate to the last tab and navigate to the last tab
- NEW
IconButton.autofocus
,ToggleButton.autofocus
- BREAKING Renamed all the
semanticsLabel
tosemanticLabel
- NEW Web version hosted at https://bdlukaa.github.io/fluent_ui
- NEW Colors showcase page in example app
- NEW Info Colors:
Colors.warningPrimaryColor
Colors.warningSecondaryColor
Colors.errorPrimaryColor
Colors.errorSecondaryColor
Colors.successPrimaryColor
Colors.successSecondaryColor
- FIX Reworked all the accent colors (
Colors.accentColors
) withdarkest
,dark
,normal
,light
andlighter
- BREAKING
Colors.blue
is now anAccentColor
- NEW
Checkbox.autofocus
- BREAKING
Button
refactor:- Removed
Button.icon
andButton.trailingIcon
- Renamed
Button.text
toButton.child
- Removed
- You can now disable the acrylic backdrop effect by setting
enabled
to false - NEW
NavigationPanelBody.animationCurve
andNavigationPanelBody.animationDuration
- NEW
Scrollbar
andScrollbarStyle
- Reworked
FluentApp
to not depend of material anymore.
- FIX Updated
Icon
widget to use Flutter's default icon widget - NEW Documentation
- FIX Improved
ListTile
sizing (#Spacing) - NEW
FocusStyle
and support for glow focus - NEW
RatingBar.starSpacing
- FIX Animation when using
NavigationPanelBody
now works as expected - NEW
CheckboxListTile
,SwitchListTile
andRadioListTile
- FIX It's now not possible to focus a disabled
TextBox
- FIX The mouse cursor in a disabled input is now
basic
instead offorbidden
- FIX
NavigationPanelBody
now doesn't use aIndexedStack
under the hood because it was interfering in the focus scope - FIX The color of the focus now is the
Style.inactiveColor
- FIX
RadioButton
's cursor was not being applied correctly - NEW
Button.toggle
- FIX The state provided by
HoverButton
was beingfocused
when it shouldn't be - FIX TimePicker showing wrong minute count. It should start from 00 and end in 59
- NEW
TimePicker.minuteIncrement
- FIXED Fixed the possibility to give a elevation lower than 0 in
Acrylic
- NEW It's now possible to change the rating of
RatingBar
using the keyboard arrows - NEW Now it's possible to navigate using the keyboard with all focusable widgets
-
Added the missing
Diagnostics
-
Updated all the screenshots
-
BREAKING CHANGE Uses the material icon library now
DEVELOPER NOTE This was a hard choice, but the material icon library is a robust, bigger library. It contains all the icons the previous library has, and a few many more.
-
Added
Diagnostics
to many widgets -
NEW
AutoSuggestBox
(Follows this) -
NEW
Flyout
andFlyoutContent
(Folllows this) -
FIXED Popup was being shown off-screen.
DEVELOPER NOTE The solution for this was to make it act like a tooltip: only show the popup above or under the
child
. This was a hard choice, but the only viable option that would work on small screens/devices. This also madeFlyout
easier to implement. This should be changed when multi-window support is available. -
FIXED
DatePicker
incorrectly changing hour -
NEW
Colors.accentColors
-
Documentation about system_theme
-
BREAKING Removed
Pivot
because it's deprecated
- NEW
Style.fasterAnimationDuration
- FIX
ComboBox
press effect - NEW
TimePicker
(Follows this) - NEW
DatePicker
(Follows this)
- NEW
InfoHeader
- NEW
ComboBox
(Follows this) - NEW
TappableListTile
- BREAKING Removed
DropdownButton
andButton.dropdown
- NEW Vertical Slider
- NEW Indeterminate
ProgressRing
(@raitonoberu) - NEW
ListTile
- DIAGNOSTICS Provide
Diagnostics
support to:Style
NavigationPanelStyle
TooltipStyle
This version provides the fix for #5
Theme.of
can't be null anymore. UseTheme.maybeOf
for such- NEW
Style.inactiveBackgroundColor
- BREAKING Replaced
color
,border
,borderRadius
fromIconButtonStyle
todecoration
- DIAGNOSTICS Provide
Diagnostics
support to the following classes:- ButtonStyle
- Checkbox
- CheckboxStyle
- IconButtonStyle
- RadioButtonStyle
- RatingBar
- SplitButtonStyle
- ToggleButton
- ToggleButtonStyle
- ToggleSwitch
- ToggleSwitchStyle
- Slider
- SliderStyle
- Typography
- Divider
- DividerStyle
- Provide accessibility support to the following widgets:
- Button
- Checkbox
- IconButton
- RadioButton
- RatingBar
- Slider
- ToggleButton
- ToggleSwitch
- TabView
- FIX
IconButtonStyle
'siconStyle
now works properly - Improved
TabView
icon styling - NEW Indeterminate
ProgressBar
(@raitonoberu)
- NEW Determinate
ProgressBar
andProgressRing
- NEW
TabView
(#TabView)
- FIX Fixed
InfoBar
's overflow
- BREAKING
RadioButton
'sselected
property was renamed tochecked
to match a single pattern between all the other widgets.
- NEW | EXAMPLE APP
Settings
screen - Improved theme changing
- FIX
FluentApp
doesn't lose its state anymore, possibiliting hot relaod. - NEW
showDialog
rework:showDialog
now can return data. (Fixes #2)showDialog.transitionBuilder
showDialog.useRootNavigator
showDialog.routeSettings
- It's no longer necessary to have the fluent theme to display dialogs using this function.
- BREAKING Removed
_regular
from the name of the icons. - NEW
InfoBar
(Follows this)
- NEW
Divider
- FIDELITY Improved
ToggleButton
fidelity - NEW
NavigationPanelBody
- NEW Page transitions
EntrancePageTransition
(#PageRefresh)DrillInPageTransition
(#Drill)HorizontalSlidePageTransition
(#HorizontalSlide)SuppressPageTransition
(#Supress)
- Add timing and easing to style. (Follows this)
- NEW
Style.fastAnimationDuration
(Defaults to 150ms) - NEW
Style.mediumAnimationDuration
(Defaults to 300ms) - NEW
Style.slowAnimationDuration
(Defaults to 500ms) - Default
animationCurve
is nowCurves.easeInOut
(standard) instead ofCurves.linear
- BREAKING Removed
Style.animationDuration
- NEW
- Refactored Navigation Panel
- BREAKING Removed
Card
widget. UseAcrylic
instead - NEW
Acrylic
widget (#Acrylic) - NEW NAVIGATION PANEL
bottom
property - FIDELITY Improved the corder radius of some widgets (Follows this)
- FIX FIDELITY Dark theme hovering color
- Improved documentation
- NEW Typography
- Migrated all the widgets to use typography
- NEW Tooltip
- NEW Dark theme
- FIX Disabled button press effect if disabled
- FIX Grey color resulting in green color
- NEW Screenshots
- FIX
NavigationPanel
navigation index - FIX
Slider
's inactive color - FIDELITY Scale animation of button press
- FIDELITY Improved
Slider
label fidelity - NEW Split Button
- NEW Null-safety
- NEW New Icons Library
- NEW
NavigationPanelSectionHeader
andNavigationPanelTileSeparator
- BREAKING Removed
Snackbar
- Export the icons library
- NEW
TextBox
- NEW
ContentDialog
🎉 - NEW
RatingControl
🎉 - NEW
NavigationPanel
🎉 - Improved
Button
fidelity
- NEW
Slider
🎉 - Use physical model for elevation instead of box shadows
- Improved TODO
- FIXED Button now detect pressing
- FIXED
ToggleSwitch
default thumb is now animated - FIXED Improved
ToggleSwitch
fidelity FIXED Darker color for button press. - NEW THEMING
Style.activeColor
Style.inactiveColor
Style.disabledColor
Style.animationDuration
Style.animationCurve
ToggleSwitch
is now stable 🎉- NEW
DefaultToggleSwitchThumb
- NEW
ToggleButton
- New toast lib: fl_toast
- Screenshot on the readme. (Fixes #1)
- New fluent icons library: fluentui_icons
- Re-made checkbox with more fidelity
- Refactored the following widgets to follow the theme accent color:
Checkbox
ToggleSwitch
RadioButton
- Added accent colors to widget. Use this as a base
- HIGHLIGHT A whole new documentation
- Scaffold now works as expected.
- Improved theming checking
- NEW
null
(thirdstate) design onCheckbox
. (Follows this)- Now you can use the
Decoration
to style the inputs
- BREAKING:
- Removed
Button.action
- Removed
Button.compound
- Removed
Button.primary
- Removed
Button.contextual
- Removed
AppBar
- Now the default theme uses accent color instead of a predefined color (Follows this)
- Removed
- FIXED:
ToggleSwitch
can NOT receive null values
- The whole library was rewritten following this
- Tooltip's background color is now opaque (Follows this)
- Dropdown button now works as expected
- FIXED:
- Snackbar now is dismissed even if pressing or hovering
- Margin is no longer used as part of the clickable button
- BREAKING:
- Renamed
Toggle
toToggleSwitch
(Follows this) - Removed
BottomNavigationBar
. It's recommended to use top navigation (pivots) - Removed
IconButton.menu
- Renamed
- NEW:
- Initial release