Added enum values filled and filledTonal to ColorPickerActionButtonType and added support for these button styles as OK/Cancel buttons in the ColorPicker dialog.
Added dialogActionOnlyOkButton to ColorPickerActionButtons. Defaults to false. If set to true and dialogActionButtons is true, only the OK button will be shown.
Added support for a second custom color palette to the picker. In addition to ColorPickerType.custom there is now also a ColorPickerType.customSecondary picker selector. It gets its values from ColorPicker.customSecondaryColorSwatchesAndNames.
Added support for transparent colors for both custom color palette pickers. They can now have opacity in the picker in their custom color values. This also works if the opacity and slider in ColorPicker.enableOpacity is not enabled. Nothing new is needed to use this feature. It works automatically when custom color palettes are used that have partially transparent colors in them.
The color utilities ColorTools.createPrimarySwatch and ColorTools.createAccentSwatch now create color swatches with alpha channel value kept at its input values for all created swatch indexes. Previously they set alpha to #FF, even if the value might have been something else. Creating palettes with very low alpha in the source color will not produce pretty palettes, but it is now possible to create them.
The Color picker received two new layout properties. Previously all vertical spacings between the column elements in the picker were controlled by the ColorPicker property columnSpacing. For two key elements, you can now override this spacing.
Use toolbarSpacing to adjust the vertical spacing below the top toolbar header and its action buttons. The purpose is to enable using zero space or close to it, so the top toolbar and action buttons can be closer to the picker selection control than the rest of the spacing in the picker uses.
Use shadesSpacing to adjust the vertical spacing after the Material-2 swatch palette. By setting it to zero or one, you can create a design where the Material-2 swatch-based palette is closer to or connected to the Material-3 tonal palette. As long as the tonal palette does not use a heading, of course.
Both toolbarSpacing and shadesSpacing default to columnSpacing if they are not defined.
More of these vertical spacing fine-tuning properties can be added if there is a need for them.
CHANGE
Dialog OK and Cancel action buttons now use the .icon Material button variants, when icon usage is enabled. Previously they baked in the leading icon into the button child Widget. This version follows the Material design spec exactly. The visual change is minor, but it does look better now when icons are used.
Recent colors now also capture the opacity of a selected color as a different color, it does this also when you change opacity. Selecting a color with opacity in the recent colors list will set the picker's opacity to the opacity the color in the recent colors list has.
FIX
Package
Replaced APIs deprecated in Flutter 3.19.0. Replaced internally used deprecated APIs RawKeyboardListener, RawKeyEvent, RawKeyDownEvent, RawKeyEventDataMacOs, RawKeyEventDataIos with Shortcut APIs.
When using custom transitions the InheritedTheme.capture should use actionButtons.useRootNavigator value and not default it to true. Fixed.
Web demo
Reset to defaults did not reset settings for wheelSquarePadding and wheelSquareBorderRadius. Fixed.
Mar 3, 2024
Requires min Flutter 3.16.0 and Dart 3.0.0.
NEW
filled
andfilledTonal
toColorPickerActionButtonType
and added support for these button styles as OK/Cancel buttons in the ColorPicker dialog.dialogActionOnlyOkButton
toColorPickerActionButtons
. Defaults to false. If set to true anddialogActionButtons
is true, only the OK button will be shown.ColorPickerType.custom
there is now also aColorPickerType.customSecondary
picker selector. It gets its values fromColorPicker.customSecondaryColorSwatchesAndNames
.ColorPicker.enableOpacity
is not enabled. Nothing new is needed to use this feature. It works automatically when custom color palettes are used that have partially transparent colors in them.ColorTools.createPrimarySwatch
andColorTools.createAccentSwatch
now create color swatches with alpha channel value kept at its input values for all created swatch indexes. Previously they set alpha to#FF
, even if the value might have been something else. Creating palettes with very low alpha in the source color will not produce pretty palettes, but it is now possible to create them.ColorPicker
propertycolumnSpacing
. For two key elements, you can now override this spacing.toolbarSpacing
to adjust the vertical spacing below the top toolbar header and its action buttons. The purpose is to enable using zero space or close to it, so the top toolbar and action buttons can be closer to the picker selection control than the rest of the spacing in the picker uses.shadesSpacing
to adjust the vertical spacing after the Material-2 swatch palette. By setting it to zero or one, you can create a design where the Material-2 swatch-based palette is closer to or connected to the Material-3 tonal palette. As long as the tonal palette does not use a heading, of course.toolbarSpacing
andshadesSpacing
default tocolumnSpacing
if they are not defined.CHANGE
.icon
Material button variants, when icon usage is enabled. Previously they baked in the leading icon into the button child Widget. This version follows the Material design spec exactly. The visual change is minor, but it does look better now when icons are used.FIX
Package
RawKeyboardListener
,RawKeyEvent
,RawKeyDownEvent
,RawKeyEventDataMacOs
,RawKeyEventDataIos
withShortcut
APIs.InheritedTheme.capture
should useactionButtons.useRootNavigator
value and not default it to true. Fixed.Web demo
wheelSquarePadding
andwheelSquareBorderRadius
. Fixed.