Releases: facelessuser/coloraide
Releases · facelessuser/coloraide
5.1
5.1
- NEW: Linear Display P3 is now serialized as the official CSS color name
color(display-p3-linear ...)
which
matches recent spec updates.color(--display-p3-linear ...)
is still accepted as an input, but ColorAide will not
use this serialization on output, and support for the old name will be removed at some future time. - NEW: Deprecate the
fit
parameter inconvert()
and recommend just callingcolor.convert(space).fit()
instead. - FIX: Improve IPT's LMS conversion matrix to perform better in 64 bit.
- FIX: In the unlikely case that the ray trace gamut mapping never finds a gamut intersection during an iteration,
ensure it falls back to the original color for clipping.
5.0
5.0
- BREAKING: CSS serialization no longer requires HSL and HWB to return percentage form during serialization when
using the non-legacy (no comma) syntax. For consistency, HSL and HWB will only return the percentage form with
non-legacy serialization whenpercent
is setTrue
by the user. The legacy format will still format strings with
percentages. This matches all other color spaces in ColorAide that use modern CSS serialization syntax. If you rely
on ColorAide serializing HSL in the non-legacy format with percentage output, simply addpercent=True
when calling
to_string()
. - NEW:
Channel
object'slimit
parameter can now accept a function to constrain a channel. This can allow for
more complex boundary constraints, such as rounding the value in addition to channels with a hard boundary ranges. - NEW: CAM16, CAM02, HCT, ZCAM, and Hellwig will no longer force colors to black when lightness is zero except
when chroma/saturation/colorfulness is also zero. This allows out of gamut colors with lightness of zero
to properly be seen as out of gamut. - NEW: Add new
Luminant
mixin for color spaces which allows for internally targeting spaces that expose a
lightness component. - NEW: Rename
Regular
space mixin asPrism
for a more appropriate description.Regular
is still available
but deprecated. - NEW: UCS, xyY, and Lab-like spaces are now considered
Prism
andLuminant
spaces. - NEW: Spaces can now declare if they are "subtractive" via a
SUBTRACTIVE
class attribute. - NEW: Every space now exposes a
linear()
,indexes()
, andnames()
method opposed to just a select few. - NEW:
raytrace
gamut mapping will now successfully operate onPrism
color spaces (formerlyRegular
) as well
asRGBish
.Prism
spaces which are alsoLuminant
are not handled. - NEW: Harmonies now better handle irregular
Prism
spaces. - NEW: CMYK now uses CMY as the base conversion space and ensures round trip with wide gamut colors.
- FIX: Analogous and split complementary harmony results ordered in a more logical configuration.
- FIX: Fix an issue with some HDR spaces in ray trace gamut mapping.
- FIX: Fix Duv sign flips and poor precision near inflection points in the Robertson 1968 CCT curve.
- FIX: Fix an issue where a custom range of mired points for the Robertson 1968 CCT curve can fall exactly where
slopes change direction, causing a divide by zero. Catch this case and skip any point that falls in this region.
4.7.2
4.7.2
- ENHANCE: Improve performance of color harmony generation.
- ENHANCE: Improve performance of gamut mapping using the
raytrace
approach when a color must be coerced to an
RGB space. - FIX: When a
Color
instance is passed as an input to theColor
constructor, use a more reliable check to
ensure the color instance is of a compatible color space. - FIX: Fix regression that caused
longer
hue interpolation to no longer work withdiscrete
interpolation.
4.7.1
4.7.1
- FIX: Fix an issue where chromatic adaptation was being initiated when it wasn't needed. While conversion results
were unaffected by this behavior, it did contribute to additional overhead, slowing conversions in some cases.
4.7
4.7
- NEW: Officially support Python 3.14.
- NEW:
average()
now accepts weights for weighted averaging. - ENHANCE: Switch to deploying with PyPI's "Trusted Publisher".
- ENHANCE: Performance improvements for various algebraic calculations.
- FIX: Fix some corner cases with some algebraic calculations.
4.6
4.6
- NEW: Add new
rounding
option to control rounding modes into_string()
,to_dict()
,coords()
,alpha()
,
andget()
. New rounding modes are:sigfig
anddecimal
which are in addition to the defaultdigits
mode. - FIX: Fix typing for inherited colors.
4.5.1
4.5.1
- FIX: Ensure Jzazbz, JzCzhz, and ICtCp actually use
--jzazbz
,--jzczhz
, and--ictcp
by default when
serialized in thecolor()
format.
4.5
4.5.0
- NEW: Support change in CSS HDR spec that now specifies Jzazbz, JzCzhz, and ICtCp serialization as using the
respective named color functions:jzazbz()
,jzczhz()
, andictcp()
. Thecolor()
format also use the custom
hyphenated names--jzazbz
,--jzczhz
, and--ictcp
respectively by default. The non-hyphenated names are still
supported in thecolor()
form for backwards compatibility, but usage is discouraged as at some future time
support for non-hyphenated names will be dropped as CSS has moved away from this as a supported convention. - NEW: Reference ranges for Jzazbz, JzCzhz, and ICtCp, now match the latest CSS HDR spec.
- FIX: Fix order of magnitude calculation.
4.4.1
4.4.1
- FIX: Fix XYB transform.
4.4
4.4
- NEW: Add support for the CAM02 color model and add the CAM02 JMh, CAM02 UCS, CAM02 SCD, and CAM02 LCD color
spaces. - NEW: Add the Hellwig corrections to CAM16 under a new color model variant called Hellwig which adds two new
color spaces: Hellwig JMh and Hellwig H-k JMh. The H-K variant add additional changes that adjusts lightness for the
Helmholtz–Kohlrausch effect. - NEW: Deprecate submodule name
cam16_jmh
andzcam_jmh
in favor of the more genericcam16
andzcam
names.
Legacy submodule names are still accessible but will now raise a deprecation warning. - FIX: Scale achromatic threshold depending on order of magnitude of component scaling. This ensures colors that
are scaled roughly between 0 - 1 are not considered achromatic earlier than a space scaled roughly between 0 - 100. - FIX: Optimized matrix math operations should handle column vectors.
- FIX: Fix some issues with RYB Biased.