Releases: Evercoder/culori
v3.0.1
v3.0.0
Breaking changes
This new release includes revamped color parsing to align with the latest css-color-4
spec. Regular expression matching has been replaced with a parser that follows the css-syntax
spec more closely.
The new parser is more flexible with some aspects and stricter with others:
- Trickier whitespace formulas around numbers, such as
rgb(1-.2.3)
, are now properly handled (#187) - All non-legacy syntaxes allow mixing
<number>
,<percentage>
and'none'
component values - The
color()
syntax no longer supports omitted component values that default to0
; it now requires exactly three component values. (#186)
Interpretation of component values has been aligned to the spec:
- in non-legacy syntaxes, percentages are mapped to a reference range for that component. For example, the range of
lch.c
(Chroma in the CIELCh color space) is[0, 150]
, with100%
corresponding to150
.
Serialization has also been aligned to the spec:
lab
andlch
serialize theL
component as<number>
, not<percentage>
oklab
,oklch
andlrgb
are serialized tooklab()
,oklch()
, andcolor(srgb-linear)
respectively.
Please consult the migration guide for assistance in upgrading from 2.x to 3.0.
API changes
parseRgb
andparseHsl
now perform parsing of the modern syntax forrgb()
andhsl()
respectively;parseRgbLegacy
andparseHslLegacy
have been added to parse the legacy syntaxes forrgb()
/rgba()
/hsl()
/hsla()
parseOklab
andparseOklch
have been added to parseoklab()
andoklch()
.
v2.1.1
v2.1.0
New features
Adds support for the XYB (xyb
) color model, part of the JPEG XL Image Coding System, as an LMS-based colour model inspired by the human visual system, facilitating perceptually uniform quantization. It uses a gamma of 3 for computationally efficient decoding
.
New exports: xyb
(shortcut to converter('xyb')
), modeXyb
, convertXybToRgb
, convertRgbToXyb
.
Note: Please update to version 2.1.1 for an adjusted XYB color space that includes the Chroma from luma adjustment used in JPEG XL.
Above: The sRGB gamut in the XYB color space, for a slice of constant y
.
v2.0.4
v2.0.2
v2.0.1
v2.0.0
⚠️ Breaking changes
➸ Please consult the Migration guide to upgrade from version
1.x
to2.0
.
xyz
mode renamed toxyz50
, along with all functions referencing it (e.g.convertLabToXyz
becomesconvertLabToXyz50
) (#152).mode: 'xyz'
is no longer supported.<number>
for L no longer valid inlab()
andlch()
(#151)
New features
- All color components in all CSS color syntaxes now accept the
none
keyword, in line with the latest changes in the CSS Color 4 spec. (w3c/csswg-drafts#6107) - Allow any number of components in the
color()
CSS syntax, and fill in omitted components with0
.
v1.2.0
New features
New color spaces: Added support for Björn Ottosson's Okhsl and Okhsv color spaces, two new color spaces for color picking. They are available as the okhsl
and okhsv
modes.
Tree shaking: Added exports for low-level parsing/conversion/serialization functions, co you can use Culori without pre-registering any color space. See the Tree shaking guide for details, and the Low-level API section of the API reference for available functions.