Releases: rydmike/flex_seed_scheme
Version 3.5.1
Version 3.5.1-dev.1
3.5.1-dev.1
March 15, 2025
Version to check if the updates fixes pub score.
CHORE
- Update lints for package scoring.
- Minor API documentation updates and fix API doc references.
Version 3.5.0
3.5.0
Dec 29, 2024
PACKAGE
- Updated the package to support and require at least Flutter v3.27.0.
- Fixed all new analyzer lint warnings and removed usage of all deprecated
Color
properties.
NEW
- Added convenience
Color
sRGB extensions that can be used as none deprecated replacements foralpha
,red
,green
,blue
andvalue
they are calledalpha8bit
,red8bit
,green8bit
,blue8bit
andvalue32bit
. FlexSeedScheme uses them internally to avoid using the deprecated Color properties.
Version 3.4.1
3.4.1
Sep 25, 2024
PACKAGE
- No changes to the FlexSeedScheme package
WEB DEMO
- Updated the web demo example to use FlexColorPicker version 3.6.0, where the tonal palette can now also respect monochrome seed colors as its displayed Material tonal palette. This is a new feature in FlexColorPicker 3.6.0.
- In the updated Web demo, the picker's setting is tied into the demo using the setting
respectMonochromeSeed
so the picker only uses it when the FlexSeedScheme web demo is configured to do so. The setting for the FlexColorPicker to make monochrome tonal palette for monochrome input and to use chroma of selected color, is a separate feature in the picker, it is not tied to FlexSeedScheme, but for this demo they are linked and use the same settings toggle.
- In the updated Web demo, the picker's setting is tied into the demo using the setting
Version 3.4.0
3.4.0
Sep 23, 2024
CHANGE
-
The parameter
useExpressiveOnContainerColors
inSeedColorScheme.fromSeeds
now works with a schemevariant
regardless of if it hasisFlutterScheme
set to true or false. Meaning it impacts both MCUDynamicSchemeVariant
and FSSFlexTones
based scheme variants.- For
FlexTones
based variants, when using a built-inFlexTones
or even a custom one, it is no longer necessary to use theFlexTones
modifier.expressiveOnContainer()
on the usedtones
to get a seeded color scheme with expressive on container tones in light mode. - The
FlexTones
based modifier.expressiveOnContainer()
is still used, but it is applied internally when the flaguseExpressiveOnContainerColors
is set to true. - The
useExpressiveOnContainerColors
only applies in light mode to on container tones that are equal to 10, other tones are considered custom on purpose and are not changed. This is in-line with that the MCUDynamicSchemeVariant
s that did not use tone 30 before as on container color in light mode, like Fidelity, Monochrome and Content were not affected by this change in MCU 0.12.0. In the same manner, this flag no longer changesFlexTones
based schemes that have on container tones that are not 10. This applies to some on container colors in UltraContrast, Candy Pop and Chroma predefinedFlexTones
. - This change makes this flag consistent and applicable to all seed generated schemes, regardless of if it is based on
DynamicSchemeVariant
, built-inFlexTones
or even customFlexTones
configurations. - For MCU seed generated schemes,
useExpressiveOnContainerColors
only has any impact when contrast level is at the default value (0), normal contrast. - When using FFS seed generated schemes with
useExpressiveOnContainerColors
set to true, the modifier is applied before anyFlexTones
modifiers. Using tones modifiers, like e.g.onMainsUseBW()
will thus as expected, override this setting and set on container colors to tone 0 or tone 100, depending on the container colors brightness.
- For
NEW
- A new
bool
parameter,respectMonochromeSeed
inSeedColorScheme.fromSeeds
can now be used to make seed generated ColorSchemes that work as expected if a monochrome color is used as seed color input.- When set to
true
, any monochrome RGB input value will result in the creation of a greyscale tonal palette for the palette using the monochrome seed color. An RGB monochrome value is one where Red, Green and Blue values are all equal. - Previously in FSS and in Material Color Utilities (MCU) and thus still as default in Flutter
ColorScheme.fromSeed
, using a monochrome seed color value or white, resulted in a tonal palette with cyan color tones. A black input resulted in red like color tones. This is not very intuitive and not really expected when using monochrome seed colors. - FSS still defaults to setting
respectMonochromeSeed
tofalse
, to not break any existing code that may rely on the old behavior. - Prefer setting
respectMonochromeSeed
totrue
, to get more logical seed results when using monochrome seed colors or white and black as seed colors. - NOTE: When using
respectMonochromeSeed
withDynamicSchemeVariant
variantsfidelity
orcontent
, for some monochrome input colors they produceprimaryContainer
andonPrimaryContainer
as well astertiaryContainer
andonTertiaryContainer
color pairs, with low contrast. Consider using some other scheme variants with monochrome seed colors. All others work well with any monochrome seed color. This is just how the MCUDynamicScheme
sSchemeContent
andSchemeFidelity
are defined in MCU. They also produce fairly low contrast for these color pairs with very dark seed colors. This behavior with MCU'sSchemeContent
andSchemeFidelity
could be fixed in FlexSeedScheme's internal MCU fork, but we want to keep the result of these schemes consistent with MCU.
- When set to
Version 3.3.0
3.3.0
Sep 7, 2024
NEW
- Exposed
DynamicColor
,MaterialDynamicColors
andScheme
from the underlying forked Material Color Utilities (MCU) library. - Undeprecated
Scheme
, that original MCU deprecated. It does not conflict with the newDynamicSchemes
that replaced it, thus in the internal MCU fork, we do not need to deprecate it and can offer it for legacy access to oldColorScheme.fromSeed
scheme result in use before Flutter 3.22.0.- Internally FlexSeedScheme does not use
Scheme
for its own legacy version of the same scheme, it uses its FlexTones based setup instead, but produces the same color values. We still recommend using its tonesFlexTones.material3Legacy
version instead ofScheme
for a legacy Material-3 seed generatedColorScheme
. - This API is provided for legacy access to the old MCU
Scheme
style and API, that was used in Flutter 3.19.0 and earlier in itsColorScheme.fromSeed
constructor back then. If you want to recreate its exact older internal API algorithm, you can now do so usingScheme
that it used to use before Flutter 3.22.0. - This revived
Scheme
class was also complemented with the newColorScheme
colors added in Flutter 3.22.0, but it uses legacy Flutter 3.19 and earlier tone mappings for all colors that existed then. Except for dark modeonErrorContainer
that it corrected from 80 to 90. It was always a bug in Flutter version 3.19 and earlier that tone 80 was used.
- Internally FlexSeedScheme does not use
Version 3.2.0
3.2.0
Aug 27, 2024
CHANGE
- The
FlexPaletteType.extended
tones got three new tones, tones 65, 75 and 84. It now has 30 tones.
NEW
- The
tones
configuration classFlexTones
got a new modifier,higherContrastFixed()
. It can be applied to any predefined or customFlexTones
to make a returnedFlexTones
instance where the tones for the fixed colorsfixed
,onFixed
,fixedDim
andonFixedVariant
are set to 92, 6, 84 and 12 instead of their Material-3 specification tones 90, 10, 80 and 30. This for an alternative set of fixed colors with more contrast.
Version 3.1.2
3.1.2
July 23, 2024
FIX
-
FIX the faulty tones for the modified
FlexTones.vividSurfaces
surface tones. They were in version 3.1.0 set to 96 for a light scheme and 10 for a dark scheme. The values need to be 98 and 6 to not clash with any other important tones used by all the surface colors and provide separation to them. Tones 98 and 6 are also the default tones in M3 design for them, there is very little wiggle room here. -
FIX tone for the modified
FlexTones.vividBackground
it was in version 3.1.0 set to 97 for its light scheme, it needs to use value 100 (white) to really provide a "vivid" background mode in light mode and offer some differentiation toFlexTones.vividSurfaces
in light mode. In dark mode it still uses tone 5, which is already different and darker than 6 used byFlexTones.vividSurfaces
.
INFO
- How to use legacy
FlexTones.vividSurfaces
andFlexTones.vividBackground
tone mappings?- FSS version 3.1.0 removed the deprecated colors
background
,onBackground
andsurfaceVariant
from being defined as a part of theSeedColorScheme.fromSeeds
result. They still get color values, but they are whatever the default values the default Flutter SDKColorScheme()
constructor gives them. These colors were deprecated in Flutter 3.22.0 and are now removed from being defined and accessed by FSS. - FSS 3.1.0 also changed the tone mappings for
FlexTones.vividSurfaces
andFlexTones.vividBackground
to make them have some distinguishing differences whenbackground
color no longer has any effect or usage, and also to adhere to new theColorScheme
design intent. - You should prefer to map one of the new surface colors that are already of a shade close to old surface and background colors, to theme colors as needed by your design. There are eight different surface shades to choose from in the ColorScheme introduced in Flutter 3.22, compared to three before.
- If you really need the pre-Flutter 3.22 legacy style for
FlexTones.vividSurfaces
orFlexTones.vividBackground
you can optionally recreate them withcopyWith
on their definitions like this:
- FSS version 3.1.0 removed the deprecated colors
// For light legacy FlexTones.vividSurfaces
final ColorScheme vividSurfacesLight = SeedColorScheme.fromSeeds(
brightness: Brightness.light,
primaryKey: mySeedColor,
tones: FlexTones.vividSurfaces(Brightness.light).copyWith(surfaceTone: 95),
);
// For dark legacy FlexTones.vividSurfaces
final ColorScheme vividSurfacesDark = SeedColorScheme.fromSeeds(
brightness: Brightness.dark,
primaryKey: mySeedColor,
tones: FlexTones.vividSurfaces(Brightness.dark).copyWith(surfaceTone: 20),
);
// For light legacy FlexTones.vividBackground
final ColorScheme vividBackgroundLight = SeedColorScheme.fromSeeds(
brightness: Brightness.light,
primaryKey: mySeedColor,
tones: FlexTones.vividBackground(Brightness.light).copyWith(surfaceTone: 98),
);
// For dark legacy FlexTones.vividBackground
final ColorScheme vividBackgroundDark = SeedColorScheme.fromSeeds(
brightness: Brightness.dark,
primaryKey: mySeedColor,
tones: FlexTones.vividBackground(Brightness.dark).copyWith(surfaceTone: 6),
);
Version 3.1.1
3.1.1
July 13, 2024
CHORE
- FIX the pub score.
- Update readme.
Version 3.1.1-dev.1
3.1.1-dev.1
July 12, 2024
CHORE
- Experiment to find and remove references from the package to deprecated properties for scoring purposes. The deprecated colors are NOT used anymore, but pub's pana analyzer still complains. It happily ignores the "allow usage of self-deprecated members" setting. It also complains about references used in doc comments. This is the first attempt to find and fixe all things it complains about.