What is color-convert?
The color-convert npm package is a library for converting colors between different color models such as RGB, HSL, HSV, HEX, and more. It provides functions for one-to-one, one-to-many, and many-to-one conversions.
What are color-convert's main functionalities?
RGB to HEX conversion
Converts an RGB color value to its HEX representation.
const convert = require('color-convert');
const hexColor = convert.rgb.hex(255, 255, 255);
HEX to HSL conversion
Converts a HEX color value to its HSL representation.
const convert = require('color-convert');
const hslColor = convert.hex.hsl('FFFFFF');
HSL to HSV conversion
Converts an HSL color value to its HSV representation.
const convert = require('color-convert');
const hsvColor = convert.hsl.hsv(360, 100, 100);
Keyword to RGB conversion
Converts a CSS keyword color value to its RGB representation.
const convert = require('color-convert');
const rgbColor = convert.keyword.rgb('blue');
ANSI 16 to HEX conversion
Converts an ANSI 16 color code to its HEX representation.
const convert = require('color-convert');
const hexColor = convert.ansi16.hex(90);
Other packages similar to color-convert
chroma-js
chroma-js is a powerful library for all kinds of color conversions and manipulations. It supports a wide range of color models, similar to color-convert, but also includes functions for color scale generation, interpolation, and more complex color operations.
tinycolor2
tinycolor2 is a small, fast library for color manipulation and conversion in JavaScript. It provides many of the same conversion capabilities as color-convert but also includes additional features for checking color properties, such as brightness and readability.
color
color is a JavaScript library for immutable color conversion and manipulation with support for CSS color strings. It offers a chainable API and is similar to color-convert in terms of conversion features but also includes manipulation functions like lighten, darken, saturate, and desaturate.
color-convert
Color-convert is a color conversion library for JavaScript and node.
It converts all ways between rgb
, hsl
, hsv
, hwb
, cmyk
, ansi
, ansi16
, hex
strings, and CSS keyword
s (will round to closest):
var convert = require('color-convert');
convert.rgb.hsl(140, 200, 100);
convert.keyword.rgb('blue');
var rgbChannels = convert.rgb.channels;
var cmykChannels = convert.cmyk.channels;
var ansiChannels = convert.ansi16.channels;
Install
$ npm install color-convert
API
Simply get the property of the from and to conversion that you're looking for.
All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on .raw
to the function.
All 'from' functions have a hidden property called .channels
that indicates the number of channels the function expects (not including alpha).
var convert = require('color-convert');
convert.hex.lab('DEADBF');
convert.hex.lab.raw('DEADBF');
convert.rgb.cmyk(167, 255, 4);
convert.rgb.cmyk.raw(167, 255, 4);
Arrays
All functions that accept multiple arguments also support passing an array.
Note that this does not apply to functions that convert from a color that only requires one value (e.g. keyword
, ansi256
, hex
, etc.)
var convert = require('color-convert');
convert.rgb.hex(123, 45, 67);
convert.rgb.hex([123, 45, 67]);
Routing
Conversions that don't have an explicitly defined conversion (in conversions.js), but can be converted by means of sub-conversions (e.g. XYZ -> RGB -> CMYK), are automatically routed together. This allows just about any color model supported by color-convert
to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> LAB -> XYZ -> RGB -> Hex).
Keep in mind that extensive conversions may result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see conversions.js.
Contribute
If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request.
License
Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the MIT License.