@csstools/color-helpers
Advanced tools
Comparing version 3.0.2 to 4.0.0
# Changes to Color Helpers | ||
### 4.0.0 | ||
_December 15, 2023_ | ||
- Remove barrel files | ||
- Fix type definitions | ||
- Use higher precision color conversion matrices. | ||
### 3.0.2 | ||
@@ -15,27 +23,2 @@ | ||
### 3.0.0 | ||
_July 3, 2023_ | ||
- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) | ||
### 2.1.0 | ||
_May 19, 2023_ | ||
- Fix gamut mapping | ||
- Fix `XYZ_D50_to_ProPhoto` | ||
- Export `sRGB_to_HWB` | ||
### 2.0.0 | ||
_March 25, 2023_ | ||
- Removed certain implementation specific helpers. Keeping this package more focussed on general purpose color transformations. | ||
- Added `xyz` specific helpers. These make it easy to transform to and from `xyz-d50` and any other color space. | ||
### 1.0.0 | ||
_February 2, 2023_ | ||
- Initial version | ||
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers/CHANGELOG.md) |
@@ -1,6 +0,398 @@ | ||
export * as calculations from './calculations'; | ||
export * as conversions from './conversions'; | ||
export * as utils from './utils'; | ||
export * as xyz from './conversions/xyz'; | ||
export type { Color } from './types/color'; | ||
export { namedColors } from './named-colors'; | ||
/** | ||
* @param {Color} color [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function a98_RGB_to_XYZ_D50(x: Color): Color; | ||
export declare function clip(color: Color): Color; | ||
export declare type Color = [number, number, number]; | ||
/** | ||
* Convert an array of linear-light display-p3 RGB in the range 0.0-1.0 | ||
* to gamma corrected form | ||
* | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
*/ | ||
export declare function gam_P3(RGB: Color): Color; | ||
/** | ||
* Convert an array of linear-light sRGB values in the range 0.0-1.0 to gamma corrected form | ||
* Extended transfer function: | ||
* For negative values, linear portion extends on reflection | ||
* of axis, then uses reflected pow below that | ||
* | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
* @see https://en.wikipedia.org/wiki/SRGB | ||
*/ | ||
export declare function gam_sRGB(RGB: Color): Color; | ||
/** | ||
* @param {Color} color [h, s, l] | ||
* - Hue as degrees 0..360; | ||
* - Saturation as number 0..100; | ||
* - Lightness as number 0..100; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function HSL_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @param {Color} color [h, w, b] | ||
* - Hue as degrees 0..360; | ||
* - Whiteness as number 0..100; | ||
* - Blackness as number 0..100; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function HWB_to_XYZ_D50(x: Color): Color; | ||
export declare function inGamut(x: Color): boolean; | ||
/** | ||
* @param {Color} color [l, a, b] | ||
* - Lightness as number 0..100; | ||
* - a as number -160..160; | ||
* - b as number -160..160; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function Lab_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @param {Color} color [l, c, h] | ||
* - Lightness as number 0..100; | ||
* - Chroma as number 0..230; | ||
* - Hue as degrees 0..360; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function LCH_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* Convert an array of display-p3 RGB values in the range 0.0 - 1.0 | ||
* to linear light (un-companded) form. | ||
* | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
*/ | ||
export declare function lin_P3(RGB: Color): Color; | ||
/** | ||
* Convert an array of linear-light display-p3 values to CIE XYZ | ||
* using D65 (no chromatic adaptation) | ||
* | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
* @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html | ||
*/ | ||
export declare function lin_P3_to_XYZ(rgb: Color): Color; | ||
/** | ||
* Convert an array of of sRGB values where in-gamut values are in the range | ||
* [0 - 1] to linear light (un-companded) form. | ||
* Extended transfer function: | ||
* For negative values, linear portion is extended on reflection of axis, | ||
* then reflected power function is used. | ||
* | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
* @see https://en.wikipedia.org/wiki/SRGB | ||
*/ | ||
export declare function lin_sRGB(RGB: Color): Color; | ||
/** | ||
* Convert an array of linear-light sRGB values to CIE XYZ | ||
* using sRGB's own white, D65 (no chromatic adaptation) | ||
* | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
*/ | ||
export declare function lin_sRGB_to_XYZ(rgb: Color): Color; | ||
/** | ||
* @param {Color} color [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function lin_sRGB_to_XYZ_D50(x: Color): Color; | ||
export declare function mapGamut(startOKLCH: Color, toDestination: (x: Color) => Color, fromDestination: (x: Color) => Color): Color; | ||
export declare const namedColors: Record<string, Color>; | ||
/** | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
* @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js | ||
*/ | ||
export declare function OKLab_to_OKLCH(OKLab: Color): Color; | ||
/** | ||
* Given OKLab, convert to XYZ relative to D65 | ||
* | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
* @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js | ||
*/ | ||
export declare function OKLab_to_XYZ(OKLab: Color): Color; | ||
/** | ||
* @param {Color} color [l, a, b] | ||
* - Lightness as number 0..1; | ||
* - a as number 0..0.5; | ||
* - b as number 0..0.5; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function OKLab_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
* @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js | ||
*/ | ||
export declare function OKLCH_to_OKLab(OKLCH: Color): Color; | ||
/** | ||
* @param {Color} color [l, c, h] | ||
* - Lightness as number 0..1; | ||
* - Chroma as number 0..0.5; | ||
* - Hue as degrees 0..360; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function OKLCH_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @param {Color} color [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function P3_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @param {Color} color [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function ProPhoto_RGB_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @param {Color} color [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function rec_2020_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @param {Color} color [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function sRGB_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} a98 sRGB [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
*/ | ||
export declare function XYZ_D50_to_a98_RGB(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} HSL [r, g, b] | ||
* - Hue as degrees 0..360; | ||
* - Saturation as number 0..100; | ||
* - Lightness as number 0..100; | ||
*/ | ||
export declare function XYZ_D50_to_HSL(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} HWB [r, g, b] | ||
* - Hue as degrees 0..360; | ||
* - Whiteness as number 0..100; | ||
* - Blackness as number 0..100; | ||
*/ | ||
export declare function XYZ_D50_to_HWB(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} Lab [r, g, b] | ||
* - Lightness as number 0..100; | ||
* - a as number -160..160; | ||
* - b as number -160..160; | ||
*/ | ||
export declare function XYZ_D50_to_Lab(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} LCH [r, g, b] | ||
* - Lightness as number 0..100; | ||
* - Chroma as number 0..230; | ||
* - Hue as degrees 0..360; | ||
*/ | ||
export declare function XYZ_D50_to_LCH(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} linear sRGB [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
*/ | ||
export declare function XYZ_D50_to_lin_sRGB(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} OKLab [r, g, b] | ||
* - Lightness as number 0..1; | ||
* - a as number 0..0.5; | ||
* - b as number 0..0.5; | ||
*/ | ||
export declare function XYZ_D50_to_OKLab(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} OKLCH [r, g, b] | ||
* - Lightness as number 0..1; | ||
* - Chroma as number 0..0.5; | ||
* - Hue as degrees 0..360; | ||
*/ | ||
export declare function XYZ_D50_to_OKLCH(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} P3 [r, g, b] | ||
* - R as number 0..1; | ||
* - G as number 0..1; | ||
* - B as number 0..1; | ||
*/ | ||
export declare function XYZ_D50_to_P3(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} ProPhoto [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
*/ | ||
export declare function XYZ_D50_to_ProPhoto(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} rec 2020 [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
*/ | ||
export declare function XYZ_D50_to_rec_2020(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} sRGB [r, g, b] | ||
* - Red as number 0..1; | ||
* - Green as number 0..1; | ||
* - Blue as number 0..1; | ||
*/ | ||
export declare function XYZ_D50_to_sRGB(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function XYZ_D50_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} D65 XYZ [x, y, z] | ||
*/ | ||
export declare function XYZ_D50_to_XYZ_D65(x: Color): Color; | ||
/** | ||
* @param {Color} color [x, y, z] | ||
* - X as number 0..1; | ||
* - Y as number 0..1; | ||
* - Z as number 0..1; | ||
* @return {Color} D50 XYZ [x, y, z] | ||
*/ | ||
export declare function XYZ_D65_to_XYZ_D50(x: Color): Color; | ||
/** | ||
* Convert XYZ to linear-light P3 | ||
* | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
*/ | ||
export declare function XYZ_to_lin_P3(XYZ: Color): Color; | ||
/** | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
*/ | ||
export declare function XYZ_to_lin_sRGB(XYZ: Color): Color; | ||
/** | ||
* @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document | ||
* @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). | ||
* | ||
* XYZ <-> LMS matrices recalculated for consistent reference white | ||
* @see https://github.com/w3c/csswg-drafts/issues/6642#issuecomment-943521484 | ||
*/ | ||
export declare function XYZ_to_OKLab(XYZ: Color): Color; | ||
export { } |
{ | ||
"name": "@csstools/color-helpers", | ||
"description": "Color helpers to ease transformation between formats, gamut, etc", | ||
"version": "3.0.2", | ||
"version": "4.0.0", | ||
"contributors": [ | ||
@@ -30,10 +30,14 @@ { | ||
}, | ||
"type": "module", | ||
"main": "dist/index.cjs", | ||
"module": "dist/index.mjs", | ||
"types": "dist/index.d.ts", | ||
"exports": { | ||
".": { | ||
"import": "./dist/index.mjs", | ||
"require": "./dist/index.cjs", | ||
"default": "./dist/index.mjs" | ||
"import": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/index.mjs" | ||
}, | ||
"require": { | ||
"default": "./dist/index.cjs" | ||
} | ||
} | ||
@@ -47,10 +51,2 @@ }, | ||
], | ||
"scripts": { | ||
"build": "rollup -c ../../rollup/default.mjs", | ||
"check-sources-integrity": "node ./scripts/check-changes.mjs", | ||
"check-sources-integrity:rewrite": "REWRITE_HASHES=true node ./scripts/check-changes.mjs", | ||
"lint": "node ../../.github/bin/format-package-json.mjs", | ||
"prepublishOnly": "npm run build && npm run test", | ||
"test": "node ./test/_import.mjs && node ./test/_require.cjs" | ||
}, | ||
"homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers#readme", | ||
@@ -66,11 +62,3 @@ "repository": { | ||
"css" | ||
], | ||
"volta": { | ||
"extends": "../../package.json" | ||
}, | ||
"eslintConfig": { | ||
"rules": { | ||
"@typescript-eslint/no-loss-of-precision": "off" | ||
} | ||
} | ||
] | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Yes
70585
7
864
1