Skip to content

Releases: Evercoder/culori

v4.0.2

27 Jun 16:01
Compare
Choose a tag to compare

Bug fixes

  • Changed XYZ <-> Oklab conversion matrices to match those used in the css-color-4 spec (#237, #249, #255)
  • toGamut() throws a more useful error than simply crashing then mode color space does not have lightness and chroma components (#261)
  • Changed reference component value ranges for lab / lch / lab65 / lch65 to match CSS spec (#260)

v4.0.1

26 Jan 19:31
Compare
Choose a tag to compare

Bug fixes

Fixes a reference initp/definition.js that caused an error when using the tree-shaked version of the library. (#223)

v4.0.0

19 Jan 17:10
Compare
Choose a tag to compare

Breaking changes

This release includes changes to how color strings are parsed, converted, and serialized, for better alignment to CSS specs:

  • Clamp alpha to the [0, 1] interval at parse-time.
  • Clamp L in lab() / lch() to [0, 100], in oklab() / oklch() to [0, 1] at parse-time.
  • Correct numeric ranges in hsl() and hwb() syntaxes from [0, 1] to [0, 100].
  • Serialize missing components as 0 in legacy syntaxes and as none in modern syntaxes.
  • Use 0 for missing components in all color space conversions and gamut mapping functions.

New features

Fixes

  • Make averageAngle() always return in the [0, 360] interval;
  • Fix CIELUV (luv) conversion for l = 0;
  • Allow CommonJS bare import const culori = require('culori') (in addition to the previous culori/require endpoint).

v3.3.0

20 Nov 19:53
Compare
Choose a tag to compare

New features

  • Adds a third parameter to clampChroma() to change the destination RGB gamut (#212, #213)
  • Adds the ability to bypass the JND part of the CSS Color Level 4 gamut mapping algorithm by passing null as the delta color difference function (#212, #213)
  • Adds the easingSmoothstepInverse() function (re: #207)

Bug fixes

v3.2.0

23 Jul 12:15
Compare
Choose a tag to compare

New features

Adds helper functions to interpolate values bilinearly (blerp()) and trilinearly (trilerp()). These are the extensions of linear interpolation (lerp()) to two and three dimensions, respectively. (Re: #207)

v3.1.3

10 Jun 09:56
Compare
Choose a tag to compare

Bug fixes

Replace non-ASCII identifiers with ASCII equivalents for better compatibility with build tools. (#205, thanks @VojtechVidra!)

v3.1.2

02 Jun 19:17
Compare
Choose a tag to compare

Bug fixes

Make Culori work better with various bundlers by explicitly listing side-effect producing source files in package.json (See #195).

v3.1.1

01 Jun 20:56
Compare
Choose a tag to compare

Bug fixes

Fixes an error in the parser that caused it to choke on malformed colors such as oklch(70% 0..1 156) (#204, thanks for reporting @raidenmiro)

v3.1.0

26 Mar 16:49
Compare
Choose a tag to compare

New features

This release introduces new gamut-related functions:

  • inGamut(mode) returns a function with which to check that a color is within the gamut of the mode color space (#161); similar to displayable(), but for any RGB-based color space.
  • clampGamut(mode) returns a function with which to clip a color to the gamut of the mode color space; similar to clampRgb() but for any RGB-based color space.
  • toGamut(mode, ...) returns a function to gamut-map a color to the mode color space (#168); similar to clampChroma but for any RGB-based color space.

Bug fixes

Fixes mapper() function when mode = null (See #194, thanks @bijela-gora!)

v3.0.1

25 Feb 09:51
Compare
Choose a tag to compare

Bug fixes

  • Fixed a typo that allowed <hue> components in the color() syntax
  • Included oklab and oklch as exports in the culori/css bundle.

New features

  • Added unlerp() as the reverse of lerp()