Skip to content

Releases: rydmike/flex_color_picker

Version 3.6.0

25 Sep 20:33
Compare
Choose a tag to compare

3.6.0

September 25, 2024

NEW

The ColorPicker got the following new properties and features:

  • Boolean showEditIconButton, defaults to false.

    • 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
  • IconData editIcon, defaults to Icons.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 to false.

    • 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
  • Boolean tonalPaletteFixedMinChroma, defaults to false.

    • 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 from false to true, to match the actual default behavior it has had since version 3.4.0, and the behavior that should be preferred. The false 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 use false at all, but for now it is fixed again.

TESTS

  • Improved the test coverage of the ColorPicker.

Version 3.5.1

28 Jun 19:10
Compare
Choose a tag to compare

June 28, 2024

CHORE

  • Update FlexSeedScheme to min version 3.0.0.
  • Update example app dependencies to latest versions.

Version 3.5.0

14 May 21:21
Compare
Choose a tag to compare

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 to ColorPicker and showColorPickerDialog, it controls the vertical axis size of the picker's column layout. Defaults to MainAxisSize.max as before, like Columns do by default. The property was added to enable setting the dialog to use MainAxisSize.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 properties color and onColorChanged.
  • Fixed typos and language in the readme.

Version 3.5.0-dev.1

13 May 19:04
Compare
Choose a tag to compare
Version 3.5.0-dev.1 Pre-release
Pre-release

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

16 Mar 13:41
Compare
Choose a tag to compare

3.4.1

Mar 16, 2024

FIX

Package

  • Fixed #81 The property tonalSubheading in the convenience dialog function showColorPickerDialog was never passed along to the ColorPicker 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

03 Mar 20:00
Compare
Choose a tag to compare

3.4.0

Mar 3, 2024

Requires min Flutter 3.16.0 and Dart 3.0.0.

NEW

  • 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.
  • Added shadowColor and surfaceTintColor 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 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.

Version 3.3.1

20 Jan 23:34
Compare
Choose a tag to compare

January 21, 2024

Version 3.3.0

18 Jul 16:27
Compare
Choose a tag to compare

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

11 May 02:08
Compare
Choose a tag to compare

3.2.2

May 11, 2023

  • Updated to use minimum flex_seed_scheme ^1.3.0. This version, no longer depends on material_color_utilities, thus avoiding all version issues and conflicts when Flutter changes what breaking version of material_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

16 Apr 13:15
Compare
Choose a tag to compare

3.2.1

Apr 16, 2023

  • Changed to using flex_seed_scheme: ^1.2.4 that depends on material_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.