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
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.
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.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.
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.
FilledButton theming limitation issue#
FilledButton.tonal variants separately, see issue #118063.
The new Material-3 buttons
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
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
InputChip follow M3 spec by using theming, see issue #115827.
BACKGROUND: The current a bit messy
Chiptheming 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
ButtonStyleButtonand 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.
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#
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
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.