No Fix
The issues below have not been fixed yet in the current Flutter stable release.
The status of fixes to known issues is typically reviewed when a new stable release lands. Some of the listed issues below may have a fix in master or beta channel that has not yet been recorded as fixed below. In that case, the link to the issue will show that it is closed. On rare occasions, there may be a WIP fix that is not yet merged into the Flutter master channel.
Cannot theme progress indicators, many properties missing
ProgressIndicatorThemeData
is missing many key properties from LinearProgressIndicator
and CircularProgressIndicator
making it impossible to theme their styles. For more information, see issue #131690.
Proposal: Make InputDecorationTheme usage in components consistent
InputDecorationTheme
in component themes varies widely between component themes. This makes using components that use InputDecoration
unpredictable and confusing. For more information, see proposal #131666.
Switch proposal: Expose _SwitchConfig configuration
Switch
has many useful styling configuration options hidden in a private mixin class called _SwitchConfig
. These configuration options would be very useful when creating custom Switch
designs. For more information, see proposal #131478.
DropdownMenu does not inherit from inputDecorationTheme.
ThemeData.dropdownMenuTheme.inputDecorationTheme
does not inherit from ThemeData.inputDecorationTheme
.
For more information, see issue #131213.
Checkbox theme breaking style regression
Checkbox
theming style, with zero notification or deprecation time. It breaks the Checkbox
theme in FlexColorScheme in a bad way in versions before FlexColorScheme 7.3.0, it and later versions includes a fix (theme adjustment) for this breaking change. For more information, see issue #130295.
Proposal: Add a static function to Material UI widgets exposing internal default values
DatePicker InputDecorator issue
IconButton theming destroys variant styles
IconButton.filled
, IconButton.filledTonal
and IconButton.outlined
. They all get the same style as IconButton. For more information, see issue #123829.
DropdownMenu themed focused item broken
DropdownMenu
does not use MenuButtonThemeData
. Its simulation of the focused state omits the theme. This makes it impossible to provide a consistent style for the focused/selected item when using a custom theme in a DropdownMenu
. We have to use the default style for the entire menu, or accept a deviant and out-of-style looking focused/selected item. For more information, see issue #123736.
NavigationDrawer wrong default width in M3
NavigationDrawer
drawer width does not follow Material-3 specification. Reference: Material-3 Design Navigation Drawer specification. It might, however, not be such a good design to use the M3 360 dp spec as width. For more information, see issue #123380. It remains unknown what the response and view from the Google Material design team on the matter is.
NavigationDrawer indicator is centered when sized
NavigationDrawer ink size does not follow indicator size
NavigationDrawer ink effects do not follow M3 spec
NavigationDrawer ink effect colors cannot be changed
NavigationDrawer drawer size change animation overflows
NavigationDrawer Label is not truncated to fit
SegmentedButton height does not match Material3 spec and cannot be changed
TapTargetSize
of 48 dp. This cannot be achieved in Flutter since the minimumSize
style-property does not affect the widget. The correct minimumSize was actually set as default value in PR #120095, but is not honored, see issue #121493.
SegmentedButton OverlayColor MaterialState incorrectly set
MaterialState
incorrectly for overlayColor
in its used ButtonStyleButton
segments. See issue 123308.
FilledButton theming limitation issue
FilledButton
and FilledButton.tonal
variants separately, see issue #118063.
The new Material-3 buttons FilledButton
and FilledButton.tonal
cannot be themed separately to use different styles from each other. This is in conflict with their default themes where these buttons can use different styles and do look different. However, if you use FilledButtonThemeData
in ThemeData
to try to color style the buttons, both variants will become identical since they share the same FilledButtonThemeData
. This effectively renders theming of the FilledButton
less usable, since e.g., theming its color properties makes the variants look identical.
Divider color inconsistencies
The issue is seen as where Theme.of(context).dividerColor
will have one color, but Divider
widget will actually use another color. Which color they get, and what color is actually used where, depends on the used theme creation factory and M2/M3 mode. For more information, please see issue 117755.
FlexColorScheme includes theming for the divider, to ensure consistent color on all divider theme related colors. There is also an optional quick setting to enable using opacity-based M2 divider style in Material-3 mode. The M2-styled divider is less prominent than using intended M3 ColorScheme.outlineVariant
and may work better on backgrounds that do not have primary color-tinted backgrounds. The default M3 divider has no opacity and is color tinted by the theme's primary color. This may not be visually ideal on backgrounds that are not plain white/black or use primary color-tinted surfaces. With default M3 ColorSchemes this is not a big problem, but even with it, the default Divider
color may not work so well on tertiary and its container color in a pure M3 design.
Chips theming limitation issues
Cannot make themed Selected and disabled ChoiceChip
, FilterChip
and InputChip
follow M3 spec by using theming, see issue #115827.
BACKGROUND: The current a bit messy
Chip
theming situation and limitations was caused by the fact that Chip M3 implementation should probably not have re-used their old M2 base. It had too many limitations and lacked support for many features required by M3 Chips. In defense of the made choice, when it was decided to re-use their M2 base, the M3 Chip specification did not have all their individual states and interactions included in the M3 guide and specification, that now exist in it.Chips based on
ButtonStyleButton
and own theme for each M3 variant Chip, could solve all the issues and allow for flexible styling of the Chips. Currently, the Chips also have some hard coded features that can only be replicated by null theme default behavior via defaults the different M3 Chip variants. As long as you use only the defaults, you are mostly fine, but as soon as you try to theme them, you run into limitations and cross over effects between the different M3 Chip variants.
FloatingActionButton theming limitation issue
SnackBar theming limitation issue
GoogleFonts TextTheme styles have wrong color
PrimaryTextTheme has wrong color in ThemeData dark mode
primaryTextTheme
gets the wrong contrast color in dark mode. See issue #118146 for more information. FlexColorScheme has always included a theme fix for this issue. It is thus a none issue in FCS. The issue is included here as information and for tracking purposes.
Slider and RangeSlider issues
Slider
and RangeSlider
components have a large number of known issues. They are typically not related to theming. Only a few are, like e.g. RangeSlider
not having M3 style value indicator. For more information, see umbrella issue #125329.
Elevation overlay color limitation in Material-2 dark mode
Material
of type canvas
in Flutter when using primary-colored surface and backgrounds, and the theme's applyElevationOverlayColor
is true
. This is caused by this Flutter SDK limitation and issue #90353 "Dark mode elevation overlay color is only applied to Material of type canvas, when surface and background colors are equal".
FCS version 4.0.0 and later addresses this limitation by introducing more color blend modes that keep the surface and background colors equal, to not be affected by this limitation. If you are using heavy color branding in dark theme mode, the overlay color may not be necessary.
This limitation in Material-2 will likely never be fixed in Flutter. It is documented here as something to be aware of. The work-around introduced in FCS is sufficient in most cases. The elevation tint in Material-3 does not have this equivalent limitation and thus removes the limitation when going forward with Material-3 theming.