Releases: facelessuser/coloraide
Releases · facelessuser/coloraide
2.15
2.15
- BREAK: ∆E HCT used an extremely small JND by default to yield tonal palettes that were comparable to Google's
Material. This was not inline with other gamut mapping function defaults. The default is now a more appropriate
value of2
. Users that relied on ∆E HCT to help generate tonal pallets with HCT should now use thejnd
parameter
to set the JND to0.02
in order to generate tonal pallets more like Google. - NEW:
fit()
now accepts ajnd
option to control the JND limit when gamut mapping withlch-chroma
,
oklch-chroma
, andhct-chroma
. - NEW:
to_string()
can now accept a dictionary of arguments to control gamut mapping via thefit
argument. - FIX: Update
lch-chroma
epsilon to be consistent with other gamut mapping plugin conventions.
2.14.1
2.14.1
- FIX: More precision for HCT conversion for better round trip conversions.
2.14
2.14
- NEW:
normalize()
will now also normalize a cylindrical color model with negative chroma/saturation to its
positive chroma/saturation form, assuming one exists. - NEW: Gamut clipping is performed on a cylindrical color's normalized form ensuring that a color which is in
gamut but has a negative chroma/saturation will be mapped more correctly. - NEW: Do not clamp user input of lightness and chroma in various spaces. Clamping will only occur during
conversion if the algorithm requires it. - NEW: Channels can be accessed by
get
andset
using their numerical value (as a string input). - NEW: Color space plugins that specify the gamut space via
GAMUT_CHECK
must use that color space as a
reference when when gamut mapping or clipping by default. - NEW: New color space plugin attribute
CLIP_SPACE
added which will override the space specified by
GAMUT_CHECK
to force clipping in the origin space even if a gamut mapping space is defined. This is only used when
it is advantageous to clip in the origin space, e.g. when faster and still practical. - NEW: Deprecate non-standard CAM16 (Jab) space. People should use the standard CAM16 JMh or the CAM16 UCS, SCD,
or LCD Jab spaces. The non-standard Jab is still available viacoloraide.spaces.cam16.CAM16
, but it is no longer
available incoloraide.everything
and will be removed at a future time. - NEW: Add new channel aliases:
j
forjz
in Jzazbz and JzCzhz. Also addc
forcz
andh
forhz
in
JzCzhz. - NEW: HSL will now always return positive saturation for wide gamut colors via its conversion.
- FIX: Fix a an issue with the CAM16 model's transformation that prevented good round trip with negative
lightness. - FIX: Ensure that when
harmony
auto creates a cylindrical space from a rectangular space that it checks
achromatic status in the original color space. - FIX: ∆E HCT should use colorfulness, not chroma, in the calculation.
- FIX: Don't return scientific notation when serializing colors.
- FIX: Small fix for Rec. 2100 PQ conversion algorithm.
- FIX: The oRGB color space should be gamut mapped in
srgb
as it is a transform of the sRGB space. - FIX: Because Okhsl and Okhsv have a rough sRGB approximation and not precise, they are instead gamut mapped to
their own gamut by default. - FIX: Much more accurate ICtCp matrices.
- FIX: Fix typing of deeply nested arrays in
algebra
. - FIX: Fix issue with HCT undefined channel resolver.
- FIX: Proper handling of negative lightness for DIN99o.
- FIX: Circular mean should return positive values.
2.13.1
2.13.1
- FIX: Minor typing regressions and fixes.
2.13
2.13
- NEW: Performance related enhancements in high traffic calculations.
- NEW: Use
matmul
instead ofdot
in calculations to not confuse math savvy people. - FIX: Some typing fixes/improvements.
- FIX: Minor fixes to
algebra
library.
2.12
2.12
- NEW: When serializing,
percent
can now take a sequence of booleans to indicate which channels are desired to
be represented as a percentage, alpha included. - NEW:
color()
serializing now supports string output withpercent
. - FIX: When serializing, the alpha channel is no longer handled special with a minimum value of
5
. Precision is
equally applied to all channels.
2.11
2.11
- NEW: Add new
css-linear
interpolator that provides compatibility with the CSS specification. This deviates
from the default linear interpolator in how undefined hues are resolved for interpolation, particularly noticeable
withlonger
hue resolution. - NEW: Add new
INTERPOLATOR
class option to change the default interpolator that is used.
2.10
2.10
- NEW: Declare official support for Python 3.12.
- NEW:
Color.steps
andColor.discrete
now acceptdelta_e_args
to allow configuring the underlying distance
algorithm when using thedelta_e
option. - NEW: CIE Lab, both D50 and D65, are now derived from a
CIELab
class. CIE LCh, both D50 and D65, are also
now derived from aCIELCh
class. This makes it easy to determine a CIE Lab or CIE LCh space from other Lab-like
spaces. - NEW: ∆E^*^
76, ∆E^*^94, ∆E^*^00, and ∆E^*^cmcall accept a new parameter calledspace
which allows
the user to specify a registered Lab color space name (one that is derived from theCIELab
class) to use as the
distancing color space. This allows a user to use D50 Lab (or any other variant) for distancing if required. - FIX: For consistency, ∆E^*^
94and ∆E^*^cmcnow use Lab D65 by default just like ∆E^*^76and
∆E^*^00. This fixes an issue where the docs indicated that they use D65, but in actuality they were using D50.
2.9.1.post1
2.9.1.post1
- FIX: Fix incorrect changelog mention of recent fix being for HSL instead of HWB.
2.9.1
2.9.1
- FIX: Average should allow controlling
powerless
be disabled by default for backwards compatibility. - FIX: HWB should use the algorithm defined in CSS that allows for round tripping even in the negative lightness
direction. Previously we were converting directly from HSV.