Updated to support Flutter 3.0.0, Dart 2.17 and latest Flutter package dependencies in example apps. Requires at least Flutter 3.0.0 and Dart 2.17.0.
NEW
Added full support for in Flutter 3.0.0 new ColorScheme.surfaceTint color. It is set to ColorScheme.primary color by default, as Flutter and Material 3 does. If a custom surfaceTint color is provided, it is also used as the blend color, instead of primary color, for
FlexColorScheme's surface blend feature.
Added API for using Flutter 3.0.0 theme extensions directly via FlexColorScheme API. It was added as a convenience feature in order to avoid having to add theme extensions with a copyWith on FlexColorScheme produced ThemeData. With the FlexColorScheme.extensions and FlexThemeData.extensions properties you can add custom theme extensions directly.
DEPRECATED
Deprecated:FlexColorScheme.m3TextTheme. The custom M3 text theme is no longer needed after Flutter 3.0.0 release that includes the new M3 Typography in addition to its earlier released TextTheme. You can opt in on using the new M3 style TextTheme as before by setting FlexColorScheme.subThemesData.useTextTheme to true or by setting FlexColorScheme.useMaterial3 to true. Using either does however come with known issue #103864, where dynamically switching Typography, e.g. from 2014 or 2018, to M3 2021 Typography, triggers the mentioned assert in issue
#103864. This issue has always existed in Flutter SDK ThemeData when dynamically changing between different Typography. Before FlexColorScheme avoided triggering this issue by only using Typography 2018, also when
opting in on M3 TextTheme, that before used 2018 based Typography to make a custom M3 like TextTheme. Avoiding this issue is no longer possible when opting in on M3, that now correctly uses its own and different Typography from M2. This exposes this issue if you dynamically change ThemeData from one to another Typography. To avoid this Flutter SDK issue, use the same Typography for all your themes in your app and don't dynamically switch theme between ThemeData objects that uses different Typography in your application. The use cases for doing this are few, but it is still a Flutter SDK limitation to be aware about.
Deprecated:FlexSubThemes.buttonTheme that creates an opinionated ButtonThemeData. The ButtonThemeData is marked as obsolete in Flutter SDK, but not yet deprecated in Flutter version 3.0.0. FlexColorscheme now marks it as deprecated. It will be removed in a future FlexColorScheme release when Flutter SDK deprecates ButtonThemeData.
M3 STYLE FIXES AND CHANGES
FAB M3 defaults change: Floating Action Button background color, will when opting in on ThemeData.useMaterail3, use color theme.colorScheme.primaryContainer, otherwise theme.colorScheme.secondary is used.
Input Decorator default change: The TextField and its InputDecorator border radius default value was changed from 20dp to 16 dp when using opinionated component themes. If opting in on Material 3, the default value for M3 design is used, which is only 4 dp. See specification https://m3.material.io/components/text-fields/specs. Flutter 3.0.x does not yet implement the new M3 TextField style, but via this change when opting in on M3, FlexColorScheme offers an early approximation of it.
NavigationBar M3 defaults change: Default colors of NavigationBar when opting in on useMaterial3 and not using opinionated component themes will now match M3 default colors. The background color will follow M3 style also by default when component themes are enabled and useMaterial3 is true. This style is difficult to replicate with a single color otherwise. The difference is subtle for FCS surface tinted background colors. You can still set it to background color to replicate past FCS default color when sub-themes were enabled. For other properties, if opinionated component themes are not used, FCS will use default M3 theme styles on NavigationBar when useMaterial3 is true. If opting in on opinionated component themes, FCS uses its own custom opinionated default style. Which can be modified to be the same as default M3 style too, just as before. The change also includes a default font size change for FCS opinionated styled navigation bar, from 11dp to 12dp. This change was done to harmonize it with its M3 style.
NavigationRail M3 defaults change: Default colors of NavigationRail when opting in on useMaterial3 and not using opinionated component themes will now match M3 default colors. If opinionated component themes are not used, FCS will use default M3 theme styles on NavigationRail when useMaterial3 is true. If opting in on opinionated component themes, FCS uses its own custom opinionated default style. Which can be modified to be the same as default M3 style too, just as before. The change also includes a default font size change for FCS opinionated styled rail, from 14dp to 12dp. This change was done to harmonize it with its M3 style.
Toggleable M3 style change: Default color of toggles (Switch, CheckBox and Radio) are now using primary color as default themed color when opting in on opinionated component themes or setting ThemeData.useMaterail3 to true. The Switch, CheckBox and Radio themes then use a style that match the M3 color design intent. In it, switches and toggles are mostly primary color based. In M3 color design, the secondary color is a poor choice for switches and toggles, and it is therefore not used as their default color. It does not look nice with M3 based ColorSchemes, created e.g. using M3 color seeding. If you use a custom M3 color design, where secondary color is still prominent, you can of course still use it.
Fixed lint: "Avoid using private types in public APIs". See tweet discussion about why and when you might run into this lint being triggered by older Stateful Widgets. The lint warning was addressed in the package and examples.
EXAMPLE UPDATES
Added a Theme Extensions example to the default example app, i.e. the "Hot Reload Playground".
Themes Playground: Updated the default style info labels for Switch, CheckBox and Radio.
Themes Playground: To the top row theme selector, where the FlexColorScheme and component themes switches are, added the "Use Material 3" toggle. Previously this toggle was only available on the introduction panel. The availability in the header makes it easy to toggle it ON and OFF at any time, to see what impact it has on widgets.
Themes Playground: Updated the default style info labels for the NavigationBar. The logic to display default color labels in different config modes (M2/M3/FCS/FCS+M2/FCS+M3) is quite involved, please report any issues.
Themes Playground: Updated the default style info labels for the NavigationRail. The logic to display default color labels in different config modes (M2/M3/FCS/FCS+M2/FCS+M3) is quite involved, please report any issues.
Themes Playground: Due to issue #107190, the Playground previous default to use Material 3 was changed to false.
Added support in Themes Playground to customize the surfaceTint color. It controls both the elevation color used for elevated Material surfaces in M3. Plus for FlexColorScheme it is also used as the surface blend color. By default, the surfaceTint color equals ColorScheme.primary color. Generally there are not many good design reasons to change the color, but it is now possible to do so. A good graphical designer can use it to create subtle difference from the standard surface elevation color branding effects. Used poorly, it mostly creates not so appealing visual and coloring results.
Updated to support Flutter 3.0.0, Dart 2.17 and latest Flutter package dependencies in
example apps. Requires at least Flutter 3.0.0 and Dart 2.17.0.
NEW
Added full support for in Flutter 3.0.0 new ColorScheme.surfaceTint color. It is set to
ColorScheme.primary color by default, as Flutter and Material 3 does. If a custom surfaceTint
color is provided, it is also used as the blend color, instead of primary color, for
FlexColorScheme's surface blend feature.
Added API for using Flutter 3.0.0 theme extensions directly via FlexColorScheme
API. It was added as a convenience feature in order to avoid having to add theme extensions with a
copyWith on FlexColorScheme produced ThemeData. With the FlexColorScheme.extensions and
FlexThemeData.extensions properties you can add custom theme extensions directly.
DEPRECATED
Deprecated:FlexColorScheme.m3TextTheme. The custom M3 text theme is no longer needed after
Flutter 3.0.0 release that includes the new M3 Typography in addition to its earlier released
TextTheme. You can opt in on using the new M3 style TextTheme as before by setting
FlexColorScheme.subThemesData.useTextTheme to true or by setting
FlexColorScheme.useMaterial3 to true. Using either does however come with known issue
#103864, where dynamically switching
Typography, e.g. from 2014 or 2018, to M3 2021 Typography, triggers the mentioned assert in issue
#103864. This issue has always existed in
Flutter SDK ThemeData when dynamically changing between different Typography.
Before FlexColorScheme avoided triggering this issue by only using Typography 2018, also when
opting in on M3 TextTheme, that before used 2018 based Typography to make a custom M3 like
TextTheme. Avoiding this issue is no longer possible when opting in on M3, that now correctly
uses its own and different Typography from M2. This exposes this issue if you dynamically
change ThemeData from one to another Typography.
To avoid this Flutter SDK issue, use the same Typography for all your themes in your app and don't
dynamically switch theme between ThemeData objects that uses different Typography in your
application. The use cases for doing this are few, but it is still a Flutter SDK limitation to be
aware about.
Deprecated:FlexSubThemes.buttonTheme that creates an opinionated ButtonThemeData.
The ButtonThemeData is marked as obsolete in Flutter SDK, but not yet deprecated in
Flutter version 3.0.0. FlexColorscheme now marks it as deprecated. It will be
removed in a future FlexColorScheme release when Flutter SDK deprecates ButtonThemeData.
M3 STYLE FIXES AND CHANGES
FAB M3 defaults change: Floating Action Button background color, will when opting in on
ThemeData.useMaterail3, use color theme.colorScheme.primaryContainer,
otherwise theme.colorScheme.secondary is used.
Input Decorator default change: The TextField and its InputDecorator border radius
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps flex_color_scheme from 5.0.1 to 5.1.0.
Release notes
Sourced from flex_color_scheme's releases.
... (truncated)
Changelog
Sourced from flex_color_scheme's changelog.
... (truncated)
Commits
5f11597
Add icons to macos and named48de5d
Doc updatesad80b5e
Make homepage point to the docs site6502e35
Add link to documentation website for pub listing543eef1
Add link to issue tracker for pub listingaf21d8b
Change homepage link to repositoryd2a8602
More version 5.1.0 features and fixes (#57)2249169
Custom surfaceTint and surface blends support in Playground2000d65
Add full support for surfaceTint color, so it is also used as FCS blend color...9896aca
Doc updatesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)