FlexTones.vividSurfaces constructor

FlexTones.vividSurfaces(
  1. Brightness brightness
)

Creates a tonal palette extraction setup that results in M3 like ColorsSchemes with chroma like FlexTones.vivid on main colors, but double chroma on neutrals and more color tinted surfaces and onColors.

Primary tone is one tone darker than in Material 3 standard setup in light mode. As in M3 default, primary uses its own chroma, but with a minimum value of 50. Secondary and tertiary key colors use their own chroma with no min limits, making the secondary and tertiary mid tones closer to their used key colors. Chroma for neutral is 8 and neutralVariant 16, doubled from M3 defaults.

The tones are modified for more colorful container, onColors color tones and for using higher tones on surfaces and backgrounds. This creates an alpha blend like of effect of primary on surfaces, without using any blend level in FlexColorScheme. You can apply alpha blends to this tones setup too, but it is easy to overdo it with these surfaces and backgrounds as starting points.

Implementation

factory FlexTones.vividSurfaces(Brightness brightness) =>
    brightness == Brightness.light
        ? const FlexTones.light(
            primaryTone: 30,
            onPrimaryTone: 98,
            onSecondaryTone: 98,
            onTertiaryTone: 98,
            onErrorTone: 98,
            surfaceTone: 95,
            onSurfaceVariantTone: 20,
            inverseSurfaceTone: 30,
            backgroundTone: 98,
            surfaceTintTone: 30,
            //
            primaryMinChroma: 50,
            neutralChroma: 5,
            neutralVariantChroma: 10,
          )
        : const FlexTones.dark(
            onPrimaryTone: 10,
            onSecondaryTone: 10,
            onTertiaryTone: 10,
            primaryContainerTone: 20,
            surfaceTone: 20,
            onSurfaceVariantTone: 95,
            inverseSurfaceTone: 95,
            //
            primaryMinChroma: 50,
            neutralChroma: 5,
            neutralVariantChroma: 10,
          );