2.22 2026-06-20 lichtkind ------- * = minor fix release * ! fix hash in scalar context bug while arg splitting in new * ? various POD fixes 2.21 2026-06-20 lichtkind ------- * = minor fix release * ? various POD fixes 2.20 2026-06-19 lichtkind ------- * = big feature release: +3 spaces, +8 methods, +7 args, new docs, error handling * * add methods lighten / darken, saturate / desaturate, * * add methods tint (white) / shade (black) / tone (grey) * * new 16 Page doc in GTC::Manual with Reference, Topics, CookBook, CheatSheet * + spaces: 'OKHSL', 'OKHSV', 'OKHWB' * + color space property: 'family', 'role' * + method 'analogous' with args: 'to', 'in', 'steps' and 'tilt' * + method alias 'tone_curve' for 'apply' * + argument 'in' to method 'complement' (selectable cylindrical space) * + argument 'in' to method 'new' disambiguate color spaces * + argument 'skew' to method 'complement' (move circle along color-target axis) * + argument 'by' as alias of 'amount' argument for 'mix' * + reestablish optional Carp error messages + 4 other modes * + format: 'nested_array' * ~ change default color space for most methods to 'OKLAB' or 'OKHSL' * ~ change name and name alias in 'YUV' space now 'YPbPr' space * ~ change default argument of 'invert' from 'in' to 'only' * ~ rename method 'apply' to 'tone_curve', keeping 'apply' as alias til 3.0 * ~ amount argument has now 0 .. 1 range, instead of 0 .. 100 * ~ reduce arguments of the 'color' routine to work like the 'color' argument of 'new' * - reduce arguments of 'is_in_gamut' to 1 ('in') in method mode and 1 as routine ('color') * ! HSB constraints removal was mistake, constraint was reestablished 2.11 2026-05-08 lichtkind ------- * = bug fix release * ! fix hash in scalar context bug while arg splitting in new * ! HSB should never have had constraints as HSV 2.1 2026-05-05 lichtkind ------- * = big feature release: +12 spaces, +7 args, +2 features * * add color spaces: LinearRGB, CIERGB, Adobe 98 RGB, Apple RGB, ProPhoto RGB, Wide Gamut RGB, Rec.709, Rec.2020, Linear Display P3, Display P3, Linear DCI P3, DCI P3 * + add 'is_in_gamut' argument 'color' and 'in' (check if color is in gamut of some space) * + add constructor argument 'color', and 'range' to input custom ranged values * + add constructor argument 'color' and 'raw' to input unclamped, imaginary colors * + add argument 'raw' to method 'values' to return even out of gamut values * + add argument 'only' as alias of 'select' in method 'distance' * + added hash format for range definitions: {r => 100, g => 'normal', b => [-.5,.5]} * + added ouput format ARRAY (tuple) (output only) * + can insert ' ', '-', '_' and '.' into color space names * ? document the 'only' argument of 'invert' * & compact test suite with custom color 'is_tuple' test function * ~ CIEXYZ converts now from and to linearRGB * ! HSB, HWB and NCol space got same constraints as HSV 2.02 2026-03-30 lichtkind ------- * = minor feature release: 2 small new features * + add method 'apply' with only argument 'gamma' * + add argument 'only' to method 'invert', selecting axis to invert 2.01 2026-03-23 lichtkind ------- * = minor bug fix release: 3 fixes * ? removed deprecation warning in POD * ? rewrote GT::Color::Space POD * ! tried to fix eval in scalar context hash error with < 5.26 Perl versions 2.00 2026-03-23 lichtkind ------- * = API update release * - removing support for methods: string, rgb, red, green, blue, * - rgb_hex, rgb_hash, hsl, hue, set, add, saturation, lightness, * - hsl_hash, distance_to, blend, blend_with, gradient_to, * - rgb_gradient_to, hsl_gradient_to, complementary * + cone shaped space constraints for HWB space 1.99 2026-03-22 lichtkind ------- * = small feature release: 3 small features * + method 'is_in_gamut' checks if values are valid * + exportable symbol 'is_in_gamut' * + cone shaped space constraints for HSV * + added 'sRGB' as alias name of RGB space * \ final test release before 2.0 1.98 2026-03-19 lichtkind ------- * = small fix release: 2 fixes * ~ satisfy default proportion of 1:1 when mixing more than 2 colors without amount values * ? POD fixed / rewrote for methods "mix" * ? POD fixed in main example * ? document new color space syntax * \ test release before 2.0 1.972 2025-09-30 lichtkind ------- * = small fix release: +2 fixes * ? POD fixed / rewrote for methods "values", "name", "closest_name", "distance" * ! public API cluster method test fix 1.971 2025-08-31 lichtkind ------- * = small fix release: +3 fixes * ? documented latest input format * ? typos in POD * ! more cluster method test fixes 1.97 2025-08-30 lichtkind ------- * = small feature release +1 fix * + new input format: space_name => [ ....] * + method "name" can now return names from a radius * ~ renamed cluster argument: distance => minimal_distance * ~ cluster argument "minimal_distance" got alias: "min_d" * ~ cluster argument "radius" got alias: "r" * ? removed bad chars from POD * ? reorganized POD for color names 1.961 2025-08-29 lichtkind ------- * = fix stupidity release * ? removed bad chars from POD 1.951 2025-08-29 lichtkind ------- * = tiny POD fix release * ? removed bad chars from POD 1.95 2025-08-29 lichtkind ------- * = mid sized feature release: +3 fixes * * added support of 3 color spaces: OKLAB, OKLCH, HunterLAB * + methods "name" and "closest_name" can now return multiple names and full names * ? rewrote some POD * ? POD example code fixes * ? fix POD links in GTC::Space::Hub lib * ! fixed too tight set calc tests: Issue Pause:169094 found by SlavenRezic++ * ! removed unused "use Benchmark;" - fixed by ppisar++ 1.92 2025-08-20 lichtkind ------- * = mid sized feature release: +1 fix * * methods "name" and "closest_name" work on any scheme from Graphics::ColorNames * ~ extended "CSS_string" format, commas are now optional * ~ no space between axis value and suffix allowed * ~ color space "CIELCHuv" got alias name "LCHuv" * & converter value IO moved to standard tuple format * ? POD syntax fixes 1.91 2025-08-12 lichtkind ------- * = minor bug fix release * ~ added aliases for renamed methods "add_value" and "set_value" * ? POD syntax fixes * ? rewrote parts of ::Color::Space POD 1.9 2025-08-12 lichtkind ------- * = major feature release: +5 spaces, +3 methods, +3 features * * added "cluster" and "invert" calculation method * * added "closest_name" method * * added support of 5 color spaces: NCol YUV CIELUV CIELCHab CIELCHuv, rewrote CIEXYZ CIELAB * + extended range definitions with explicit type names * + color spaces can now define value precision, value suffix ('%') and value parsing regex * ? added documentation for color space object and missing formats * & moved code into Space::Format space attribute object class * & removed Carp and Test::Warn as dependencies * & moved color and color set calculators into own packages * ~ reworked all calculator methods * ~ renamed single color calculator method "blend" to "mix" * ~ renamed method "add" and "set" to "add_value" and "set_value" * ~ renamed method "mix" argument "with" to "to" * ~ renamed method "gradient" argument "dynamic" to "tilt" * ~ default space of methods 'distance', 'mix' and 'gradient' went from HSL to RGB, consistent with defaults (complement has to be HSL) 1.71 2023-09-21 lichtkind ------- * = 4 doc fixes * ? typos, misspellings, broken sentences * ? added range def explanation * ? simplified HEADINGS * ? removed doc of deprecated methods 1.70 2023-09-20 lichtkind ------- * = mid level improvements, completed API change * + changed method complement to named arguments * + option for nonlinear complement circles by setting delta hue value * + select saturation and lightness change axis in complement * ~ renamed distance argument : metric => select * ? rewrote some main module documentation 1.61 2023-09-12 lichtkind ------- * = small fix release * ~ renamed complementary method => complement * - deprecated complementary, will be removed at 2.0 1.60 2023-09-11 lichtkind ------- * = API development * * added color spaces: HSB HWB YIQ * + output format array: ['rgb',1,2,3] * + input and output format string: 'rgb: 1,2,3' * + input and output format css_string: 'rgb(1,2,3)' * - deprecated getter method string 1.54 2023-08-21 lichtkind ------- * = small feature release * + added named ARRAY syntax for constructor like [CMYK => 0,0,1,1] * - removed option to get single values from values method * & split GTC::Constant package into ::Name and ::Name::Constant * ? rewrote lot of documentation 1.53 2023-08-11 lichtkind ------- * = maintenance release * ? more doc fixes to new API * ! fix rounding error under -Duselongdouble 1.52 2023-08-11 lichtkind ------- * = maintenance + third phase toward 2.0 * + added gradient method with new API * ? more doc fixes to new API * & more tests 1.51 2023-08-10 lichtkind ------- * = a few POD documentation fixes 1.50 2023-08-09 lichtkind ------- * = first + second phase of 2.0 rewrite * + add CMY, CMYK and HSV support * + new universal getter method: values * + new modifier method: set, blend * ~ enhanced and made stricter: add * \ deprecate all other numeric getter: rgb, red, green, blue, rgb_hex, rgb_hash, hsl, hue, saturation, lightness, hsl_hash, string * \ till 2.0 will be also deprecated: rgb_gradient_to, hsl_gradient_to, gradient_to, distance_to, blend_with * & new getter API * & keep complex names like 'SVG:green' to be returned by getter: ->name * ? rewritten large part of documentation 1.09 2023-07-17 lichtkind ------- * = maintenance release * ? ever more POD fixes * ? new method chapter split * ? POD in HSL constructor * & enhance some tests and new ones * / split and rearrange value libs with tests 1.08 2023-01-24 lichtkind ------- * = small enhancements * + added method rgb_gradient_to * ~ changed gradient_to to hsl_gradient_to (but keeping compatibility) * ? even more POD fixes 1.07 2023-01-20 lichtkind ------- * = several POD fixes 1.06 2023-01-20 lichtkind ------- * = maintenance release * + simplified string serialisation method (->new(eval $string) => ->new($string)) * ? small POD fixes 1.05 2022-12-31 lichtkind ------- * = small enhancements * + added getters for data hashes * ? cleaned some sentences and comments * ? synopsis cleanup 1.04 2022-11-04 lichtkind ------- * = small fix release * & fixing meta files * ? typos 1.03 2022-11-04 lichtkind ------- * = small enhancements * + recursive constructor that takes an object as argument * ? mention Bundle::Graphics::ColorNames in POD 1.02 2022-10-29 lichtkind ------- * = fixes * + sub color {} as importable constructor shortcut * ? cleaned some constructor related bits in POD * ! normalize constructor input color_name in 'palette_name:color_name' same as 'color_name' 1.01 2022-10-27 lichtkind ------- * = fixes * ? mention VACCC and other additional color palettes * ! loading from Graphics::ColorNames::* via 'palette_name:color_name' was actually broken 1.0 2022-10-04 lichtkind ------- * = initial release - moved code out of Chart module * \ created own distro * ~ small POD fixes