Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@csstools/color-helpers

Package Overview
Dependencies
Maintainers
3
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@csstools/color-helpers - npm Package Compare versions

Comparing version 3.0.2 to 4.0.0

35

CHANGELOG.md
# 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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc