What is color-space?
The color-space npm package provides a comprehensive set of tools for color space conversion and manipulation. It supports a wide range of color spaces and allows for easy conversion between them.
What are color-space's main functionalities?
RGB to HSL Conversion
This feature allows you to convert colors from the RGB color space to the HSL color space. The code sample demonstrates converting a red color in RGB to its HSL representation.
const colorSpace = require('color-space');
const rgb = [255, 0, 0];
const hsl = colorSpace.rgb.hsl(rgb);
console.log(hsl); // [0, 100, 50]
HSL to RGB Conversion
This feature allows you to convert colors from the HSL color space to the RGB color space. The code sample demonstrates converting a red color in HSL to its RGB representation.
const colorSpace = require('color-space');
const hsl = [0, 100, 50];
const rgb = colorSpace.hsl.rgb(hsl);
console.log(rgb); // [255, 0, 0]
CMYK to RGB Conversion
This feature allows you to convert colors from the CMYK color space to the RGB color space. The code sample demonstrates converting a red color in CMYK to its RGB representation.
const colorSpace = require('color-space');
const cmyk = [0, 1, 1, 0];
const rgb = colorSpace.cmyk.rgb(cmyk);
console.log(rgb); // [255, 0, 0]
XYZ to LAB Conversion
This feature allows you to convert colors from the XYZ color space to the LAB color space. The code sample demonstrates converting a color in XYZ to its LAB representation.
const colorSpace = require('color-space');
const xyz = [41.24, 21.26, 1.93];
const lab = colorSpace.xyz.lab(xyz);
console.log(lab); // [53.23288178584245, 80.10930952982204, 67.22006831026425]
Other packages similar to color-space
color-convert
The color-convert package provides similar functionality for converting between different color spaces. It supports a wide range of color spaces and offers a simple API for conversions. Compared to color-space, color-convert is more focused on providing a straightforward conversion API without additional manipulation features.
chroma-js
Chroma.js is a powerful library for color manipulation and conversion. It supports a wide range of color spaces and provides additional features for color interpolation, blending, and more. Compared to color-space, Chroma.js offers more advanced color manipulation capabilities and a more user-friendly API.
tinycolor2
TinyColor is a small, fast library for color manipulation and conversion. It supports a variety of color spaces and provides a simple API for common color operations. Compared to color-space, TinyColor is more lightweight and focused on providing essential color manipulation features.
Color-space

Open collection of color spaces.
Demo.
Usage
import space from 'color-space';
var result = space.lab.lch([80,50,60]);
Spaces can be imported separately:
import rgb from 'color-space/rgb.js';
import hsl from 'color-space/hsl.js';
rgb.hsl([200, 230, 100]);
API
<fromSpace>.<toSpace>(array);
<space>.name
<space>.channel
<space>.min
<space>.max
Spaces
Purpose
A complete collection of color spaces with minimal consistent and clean API, verified formulas and cases.
While alternatives focus on digital color spaces, this project takes broader perspective, including historical / multidisciplinary spaces.
A side effect is verifying and correcting papers.
Credits
Thanks to all who contribute to color science – researchers, scientists, color theorists, specifiers, implementors, developers, and users.
Similar
culori, colorjs.io, color-api, texel/color,
🕉