-
Notifications
You must be signed in to change notification settings - Fork 35
Releases: Evercoder/culori
Releases · Evercoder/culori
v1.0.0
Inaugural major release! 🎉
⚠️ This release contains breaking changes.- Please see the Migration guide for a summary of changes and how to upgrade to 1.0. This release also includes the (experimental) tree-shakeable version under
culori/fn. Read the tree-shaking guide.
Assets 2
v0.20.1
Bug fixes
- Fixes the values returned by interpolators (linear / spline) when
tis outside the[0, 1]interval. This can happen when an easing function returns a value outside[0, 1](#140) - Don't normalize
wandbvalues whenhwb()strings provide values whose sum goes over 100%
Assets 2
v0.20.0
New features
culori.parse()now accepts thecolor()notation; this makes Culori understand things likecolor(display-p3 0.5 0.1 0.2 / 0.75), as well as any string it produces viaculori.formatCss().culori.formatCss()produces a CSS-compatible string representation of the color, where color spaces are generally serialized ascolor(--mode), unless they're predefined (in which case we use their appropriate CSS identifier, e.g.color(display-p3)), or they have their own functional notation (in which case we use that, e.g.lab()).
Assets 2
1 person reacted
v0.19.1
Bug fixes:
jab/jchcolor spaces: adjust the PQ transfer function to produce a value of0instead ofNaNwhen invoked with a negative value.- improvements to
clampChroma(): use the appropriate stop condition for the bisection search based on the range of the Chroma for a particular color space; whenchroma: 0is not displayable return the RGB clamping of the achromatic version, which improves the function's perceptual continuity.
Assets 2
v0.19.0
⚠️ Breaking changes
culori.clampChroma() now accepts a second argument mode to control on which color space the chroma-finding algorithm operates (re: #129). This is a potentially breaking change if you were using culori.clampChroma as a callback to array methods:
['red', 'green'].map(culori.clampChroma);
The function's freshly introduced second parameter (mode) vs. the second argument to array method callbacks (index) means this usage will break in culori@0.19.0. Update it to:
['red', 'green'].map(color => culori.clampChroma(color));
New features
culori.differenceHyab()— A hybrid Euclidean-city-block-distance formula shown to work better for large color differences than CIEDE2000, while still holding up well for smaller color differences. (#126)culori.formatHsl()— Returns thehsl(...)/hsla(...)string for a color, with values rounded to a precision of two digits. (#124)
Bug fixes
culori.clampChroma()always returns a displayable color, rather than a color in the near vicinity of a displayable color (#129);- Return
undefinedonculori.parse(undefined)rather than throwing an error; - Use updated matrices for Oklab;
- Fix transfer functions for negative values in RGB color spaces.
Miscellaneous
- (docs) Clarified that the sRGB gamut spans a Lightness of approximatively
[0, 0.999]inoklab/oklch. (The valuel: 1is not displayable inrgb.) - (repo) renamed the default branch to
main
Assets 2
v0.18.2
v0.18.1
Fixes culori.mapTransferGamma, thanks @akx!
Assets 2
v0.18.0
New features:
- Adds Björn Ottosson's Oklab color space in Cartesian (
oklab) and cylindrical (oklch) forms.
Bug fixes:
- Sets the correct mode for D65 Lab / Lch direct conversion pairs.
Assets 2
v0.17.0
⚠️ Breaking changes
- Make all CIE color difference formulas (
differenceCie76,differenceCie94,differenceCmc,differenceCiede2000) use thelab65(D65) color space instead of thelab(D50) color space.
Assets 2
v0.16.0
New features:
- Added CIELAB with D65 standard illuminant, in Cartesian (
lab65) and cylindrical (lch65) forms; - Added
interpolatorSplineMonotone2(), a monotone interpolating spline with more sophisticated boundary conditions;
Breaking changes:
- Switch the DIN99o color spaces (
dlabanddlch) to uselab65(D65 illuminant) rather thanlab(D50 illuminant), as designed