Releases: rydmike/flex_color_picker
Version 3.6.0
3.6.0
September 25, 2024
NEW
The ColorPicker got the following new properties and features:
-
Boolean
showEditIconButton
, defaults tofalse
.- Whether to show an edit icon button before the color code field. The edit icon button can be used to give users a visual que that the color code field can be edited. When set to true, the icon button is only shown when the wheel picker is active and
colorCodeReadOnly
is false. Tapping the icon button will focus the color code entry field. - Feature included in updated web demo app: YES
- Whether to show an edit icon button before the color code field. The edit icon button can be used to give users a visual que that the color code field can be edited. When set to true, the icon button is only shown when the wheel picker is active and
-
IconData
editIcon
, defaults toIcons.edit
.- The icon to use on the edit icon button.
- Feature included in updated web demo app: NO, only default icon used.
-
Boolean
focusedEditHasNoColor
, defaults tofalse
.- Whether the color code entry field should have no color when focused. If the option, to make the color code field have the same color as the selected color is enabled via
colorCodeHasColor
, it makes it look and double like a big color indicator that shows the selected color. This can also make the edit of the color code confusing, as its color on purpose also changes as you edit and enter a new color value. If you find this behavior confusing and want to make the color code field always have no color during value entry, regardless of the selected color, then set this option to true. - Feature included in updated web demo app: YES
- Whether the color code entry field should have no color when focused. If the option, to make the color code field have the same color as the selected color is enabled via
-
Boolean
tonalPaletteFixedMinChroma
, defaults tofalse
.- Whether the tonal palette uses a fixed minimum chroma value for all tones, or if it uses the chroma value of the selected color. Prior to version 3.6.0, the tonal palette used minimum chroma value of 48 or chroma of the selected color. This was the default primary tonal palette behavior in Flutter's ColorScheme.fromSeed method before Flutter version 3.22.0. Starting from FlexColorPicker version 3.6.0, the picker creates a HCT color space tonal palette using whatever hue and chroma the selected color has. If you for some reason want to use the old behavior, set this property to true. This will make the tonal palette use the fixed minimum chroma value of 48 for all tones.
- Feature included in updated web demo app: YES
FIX
- Since version 3.4.0 the value of property
ColorPickerCopyPasteBehavior.editUsesParsedPaste
had no impact on the picker's paste behavior when the color code text field was focused. The color picker always behaved as if this property was true. Which incidentally is the behavior that pretty much all uses cases should use. This feature now again works as stated in its doc comments. However, the default value was changed fromfalse
totrue
, to match the actual default behavior it has had since version 3.4.0, and the behavior that should be preferred. Thefalse
setting was there to provide color code text field paste behavior backwards compatibility with versions before 2.0.0. We may deprecate this property in a future version, as it is not really recommended to usefalse
at all, but for now it is fixed again.
TESTS
- Improved the test coverage of the ColorPicker.
Version 3.5.1
June 28, 2024
CHORE
- Update FlexSeedScheme to min version 3.0.0.
- Update example app dependencies to latest versions.
Version 3.5.0
3.5.0
May 15, 2024
Requires min Flutter 3.22.0.
No new features or fixes in this release. A version bump to use FlexSeedScheme 2.0.0 compatible with Flutter version 3.22.0 and its new breaking ColorScheme.
The ColorPicker contains no breaking changes, but underlying Flutter does, and this version is only compatible with Flutter 3.22.0 and later.
NEW
- Added property
mainAxisSize
toColorPicker
andshowColorPickerDialog
, it controls the vertical axis size of the picker's column layout. Defaults toMainAxisSize.max
as before, likeColumns
do by default. The property was added to enable setting the dialog to useMainAxisSize.min
if needed.
FIX
- Fix wheel picker jumping to BW or custom picker under certain conditions.
- When the wheel picker's opacity value is not 100, moving the color picker cursor to the white corner or bottom black edge of the color box triggers a jump. It auto-selects BW or a custom picker containing black or white values. This is now fixed. The picker cursor will stay in the wheel picker, and the color box will not jump to BW or custom picker when the cursor is moved to the white corner or bottom black edge of the color box.
- Improved and updated API documentation for
ColorPicker
propertiescolor
andonColorChanged
. - Fixed typos and language in the readme.
Version 3.5.0-dev.1
3.5.0-dev.1
May 13, 2024
Requires min Flutter 3.22.0 and Dart 3.4.0.
No new features or fixes in this release. A version bump to use FlexSeedScheme 2.0.0 compatible with Flutter version 3.22.0 and its new breaking ColorScheme.
The ColorPicker contains no breaking changes, but underlying Flutter does and this version is only compatible with Flutter 3.22.0 and later.
Version 3.4.1
3.4.1
Mar 16, 2024
FIX
Package
- Fixed #81 The property
tonalSubheading
in the convenience dialog functionshowColorPickerDialog
was never passed along to theColorPicker
used to construct the dialog, causing the tonal sub heading to never show up in the resulting dialog.
New
Web demo
- There is now a color picker in the web demo app also using and demonstrating the usage of the optional convenience
showColorPickerDialog
function.
Version 3.4.0
3.4.0
Mar 3, 2024
Requires min Flutter 3.16.0 and Dart 3.0.0.
NEW
- Added enum values
filled
andfilledTonal
toColorPickerActionButtonType
and added support for these button styles as OK/Cancel buttons in the ColorPicker dialog. - Added
dialogActionOnlyOkButton
toColorPickerActionButtons
. Defaults to false. If set to true anddialogActionButtons
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 aColorPickerType.customSecondary
picker selector. It gets its values fromColorPicker.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. - Added
shadowColor
andsurfaceTintColor
to the dialog properties to enable control of the shadow color and surface tint color of the color picker dialog. - The color utilities
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. - The Color picker received two new layout properties. Previously all vertical spacings between the column elements in the picker were controlled by the
ColorPicker
propertycolumnSpacing
. 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
andshadesSpacing
default tocolumnSpacing
if they are not defined. - More of these vertical spacing fine-tuning properties can be added if there is a need for them.
- Use
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
withShortcut
APIs. - When using custom transitions the
InheritedTheme.capture
should useactionButtons.useRootNavigator
value and not default it to true. Fixed.
Web demo
- Reset to defaults did not reset settings for
wheelSquarePadding
andwheelSquareBorderRadius
. Fixed.
Version 3.3.1
January 21, 2024
- FIX: Fixed issue #71 _activeColorSwatchList init in Wheel with tonal palette case.
- CHORE: Bump FlexSeedScheme to version 1.4.0.
- TEST: Add tests, improve test coverage (65% -> 74%)
Version 3.3.0
3.3.0
July 18, 2023
NEW
- Use
ColorPicker.tonalColorSameSize
set to true, to make the Material-3 HCT tonal palette color indicators use the same size as the size defined for the other color indicators. Previously and by default, the tonal color indicators are smaller to make the palette width match the width of the Material-2 swatch color palette, that has fewer colors.
FIX
-
Fixed issue #67 Inner circle does not move.
- When clicking on the color wheels square color box part inside the Hue circle, the click moved the selection on wheel when clicking close to the square edge. This is now fixed. The fix also introduces exact wheel tap/drag to start an operation of Hue wheel. Previously, the Hue wheel would start operating when taping or dragging on the square containing the Hue wheel, but outside the squared color area inside it. Now to start dragging or make a tap action, it must start on the Hue wheel. Dragging around outside it or inside it, once a drag operation has started, works as before.
-
Fixed issue #66 White color selects multiple colors.
- Part of original design with the picker was to only have a given color value appear in one color palette. When adding custom color palettes or using tonal palettes, the same color values may appear in multiple palettes. Selecting such a color value would highlight all the palettes the color appears in. Tonal palettes always contain white and black colors, so it is particularly problematic when using them. This fix prevents showing the main color as selected in multiple palettes and avoids switching Material swatch palette when operating on a tonal palettes. As a part of this FIX, main Material swatch shade color index 500, or for Material accent swatch shade, color index 200, is only shown as selected when its color is actually selected in a Material swatch or Material tonal color tone.
Version 3.2.2
3.2.2
May 11, 2023
- Updated to use minimum
flex_seed_scheme ^1.3.0
. This version, no longer depends onmaterial_color_utilities
, thus avoiding all version issues and conflicts when Flutter changes what breaking version ofmaterial_color_utilities
it uses on different channels and versions. - Tested package with Flutter 3.10 and rebuilt web demo example with the new Flutter release.
Version 3.2.1
3.2.1
Apr 16, 2023
- Changed to using
flex_seed_scheme: ^1.2.4
that depends onmaterial_color_utilities
with version constraint set to>=0.2.0 <0.4.0
from^0.2.0
.- This change enables the package to be used on current Flutter stable 3.7 versions, as well as the latest 3.10.x versions on channels beta and master. It will also work with the next stable Flutter release after 3.7.
- Updated default example to use Material 3.