Skip to content

Releases: rydmike/flex_seed_scheme

Version 3.5.1

15 Mar 20:41
Compare
Choose a tag to compare

3.5.1

March 15, 2025

CHORE

  • Update lints for package scoring.
  • Minor API documentation updates and fix API doc references.

Version 3.5.1-dev.1

15 Mar 20:11
Compare
Choose a tag to compare
Version 3.5.1-dev.1 Pre-release
Pre-release

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

29 Dec 17:34
Compare
Choose a tag to compare

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 for alpha, red, green, blue and value they are called alpha8bit, red8bit, green8bit, blue8bit and value32bit. FlexSeedScheme uses them internally to avoid using the deprecated Color properties.

Version 3.4.1

25 Sep 22:24
Compare
Choose a tag to compare

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.

Version 3.4.0

22 Sep 23:29
Compare
Choose a tag to compare

3.4.0

Sep 23, 2024

CHANGE

  • The parameter useExpressiveOnContainerColors in SeedColorScheme.fromSeeds now works with a scheme variant regardless of if it has isFlutterScheme set to true or false. Meaning it impacts both MCU DynamicSchemeVariant and FSS FlexTones based scheme variants.

    • For FlexTones based variants, when using a built-in FlexTones or even a custom one, it is no longer necessary to use the FlexTones modifier .expressiveOnContainer() on the used tones 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 flag useExpressiveOnContainerColors 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 MCU DynamicSchemeVariants 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 changes FlexTones based schemes that have on container tones that are not 10. This applies to some on container colors in UltraContrast, Candy Pop and Chroma predefined FlexTones.
    • This change makes this flag consistent and applicable to all seed generated schemes, regardless of if it is based on DynamicSchemeVariant, built-in FlexTones or even custom FlexTones 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 any FlexTones 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.

NEW

  • A new bool parameter, respectMonochromeSeed in SeedColorScheme.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 to false, to not break any existing code that may rely on the old behavior.
    • Prefer setting respectMonochromeSeed to true, to get more logical seed results when using monochrome seed colors or white and black as seed colors.
    • NOTE: When using respectMonochromeSeed with DynamicSchemeVariant variants fidelity or content, for some monochrome input colors they produce primaryContainer and onPrimaryContainer as well as tertiaryContainer and onTertiaryContainer 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 MCU DynamicSchemes SchemeContent and SchemeFidelity are defined in MCU. They also produce fairly low contrast for these color pairs with very dark seed colors. This behavior with MCU's SchemeContent and SchemeFidelity could be fixed in FlexSeedScheme's internal MCU fork, but we want to keep the result of these schemes consistent with MCU.

Version 3.3.0

07 Sep 19:04
Compare
Choose a tag to compare

3.3.0

Sep 7, 2024

NEW

  • Exposed DynamicColor, MaterialDynamicColors and Scheme from the underlying forked Material Color Utilities (MCU) library.
  • Undeprecated Scheme, that original MCU deprecated. It does not conflict with the new DynamicSchemes that replaced it, thus in the internal MCU fork, we do not need to deprecate it and can offer it for legacy access to old ColorScheme.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 tones FlexTones.material3Legacy version instead of Scheme for a legacy Material-3 seed generated ColorScheme.
    • 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 its ColorScheme.fromSeed constructor back then. If you want to recreate its exact older internal API algorithm, you can now do so using Scheme that it used to use before Flutter 3.22.0.
    • This revived Scheme class was also complemented with the new ColorScheme 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 mode onErrorContainer that it corrected from 80 to 90. It was always a bug in Flutter version 3.19 and earlier that tone 80 was used.

Version 3.2.0

27 Aug 00:55
5783b08
Compare
Choose a tag to compare

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 class FlexTones got a new modifier, higherContrastFixed(). It can be applied to any predefined or custom FlexTones to make a returned FlexTones instance where the tones for the fixed colors fixed, onFixed, fixedDim and onFixedVariant 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

23 Jul 11:28
Compare
Choose a tag to compare

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 to FlexTones.vividSurfaces in light mode. In dark mode it still uses tone 5, which is already different and darker than 6 used by FlexTones.vividSurfaces.

INFO

  • How to use legacy FlexTones.vividSurfaces and FlexTones.vividBackground tone mappings?
    • FSS version 3.1.0 removed the deprecated colors background, onBackground and surfaceVariant from being defined as a part of the SeedColorScheme.fromSeeds result. They still get color values, but they are whatever the default values the default Flutter SDK ColorScheme() 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 and FlexTones.vividBackground to make them have some distinguishing differences when background color no longer has any effect or usage, and also to adhere to new the ColorScheme 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 or FlexTones.vividBackground you can optionally recreate them with copyWith on their definitions like this:
// 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

12 Jul 21:36
Compare
Choose a tag to compare

3.1.1

July 13, 2024

CHORE

  • FIX the pub score.
  • Update readme.

Version 3.1.1-dev.1

12 Jul 21:16
Compare
Choose a tag to compare
Version 3.1.1-dev.1 Pre-release
Pre-release

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.