Comprehensive conversion functionality between 17 different color models. Each conversion function returns rounded values by default, with raw variants available for precision.
All conversion functions follow a consistent pattern: convert[fromModel][toModel](...args).
/**
* Generic conversion function interface
* @param args - Color values as individual arguments or array
* @returns Converted color values as array
*/
interface ConversionFunction<TInput, TOutput> {
(...args: TInput extends any[] ? TInput : [TInput]): TOutput;
(input: TInput): TOutput;
raw: {
(...args: TInput extends any[] ? TInput : [TInput]): TOutput;
(input: TInput): TOutput;
};
conversion?: string[];
}Usage Examples:
import convert from 'color-convert';
// Spread arguments
convert.rgb.hsl(140, 200, 100); // [96, 48, 59]
// Array argument
convert.rgb.hsl([140, 200, 100]); // [96, 48, 59]
// Raw conversion for precision
convert.rgb.hsl.raw(140, 200, 100); // [96.30136986301369, 47.61904761904762, 58.823529411764706]
// Single value models (hex, keyword, ansi)
convert.hex.rgb('FF0000'); // [255, 0, 0]
convert.keyword.rgb('red'); // [255, 0, 0]Convert from RGB (Red, Green, Blue) color model to other color spaces.
/**
* RGB to HSL conversion
* @param r - Red component (0-255)
* @param g - Green component (0-255)
* @param b - Blue component (0-255)
* @returns HSL array [h: 0-360, s: 0-100, l: 0-100]
*/
rgb: {
hsl(...rgb: RGB): HSL;
hsl(rgb: RGB): HSL;
hsv(...rgb: RGB): HSV;
hsv(rgb: RGB): HSV;
hwb(...rgb: RGB): HWB;
hwb(rgb: RGB): HWB;
cmyk(...rgb: RGB): CMYK;
cmyk(rgb: RGB): CMYK;
xyz(...rgb: RGB): XYZ;
xyz(rgb: RGB): XYZ;
lab(...rgb: RGB): LAB;
lab(rgb: RGB): LAB;
lch(...rgb: RGB): LCH;
lch(rgb: RGB): LCH;
hex(...rgb: RGB): HEX;
hex(rgb: RGB): HEX;
keyword(...rgb: RGB): Keyword;
keyword(rgb: RGB): Keyword;
ansi16(...rgb: RGB): ANSI16;
ansi16(rgb: RGB): ANSI16;
ansi256(...rgb: RGB): ANSI256;
ansi256(rgb: RGB): ANSI256;
hcg(...rgb: RGB): HCG;
hcg(rgb: RGB): HCG;
apple(...rgb: RGB): Apple;
apple(rgb: RGB): Apple;
gray(...rgb: RGB): Gray;
gray(rgb: RGB): Gray;
}Convert from HSL (Hue, Saturation, Lightness) color model to other color spaces.
/**
* HSL conversion functions
* @param h - Hue component (0-360)
* @param s - Saturation component (0-100)
* @param l - Lightness component (0-100)
*/
hsl: {
rgb(...hsl: HSL): RGB;
rgb(hsl: HSL): RGB;
hsv(...hsl: HSL): HSV;
hsv(hsl: HSL): HSV;
hwb(...hsl: HSL): HWB;
hwb(hsl: HSL): HWB;
cmyk(...hsl: HSL): CMYK;
cmyk(hsl: HSL): CMYK;
xyz(...hsl: HSL): XYZ;
xyz(hsl: HSL): XYZ;
lab(...hsl: HSL): LAB;
lab(hsl: HSL): LAB;
lch(...hsl: HSL): LCH;
lch(hsl: HSL): LCH;
hex(...hsl: HSL): HEX;
hex(hsl: HSL): HEX;
keyword(...hsl: HSL): Keyword;
keyword(hsl: HSL): Keyword;
ansi16(...hsl: HSL): ANSI16;
ansi16(hsl: HSL): ANSI16;
ansi256(...hsl: HSL): ANSI256;
ansi256(hsl: HSL): ANSI256;
hcg(...hsl: HSL): HCG;
hcg(hsl: HSL): HCG;
apple(...hsl: HSL): Apple;
apple(hsl: HSL): Apple;
gray(...hsl: HSL): Gray;
gray(hsl: HSL): Gray;
}Convert from HSV (Hue, Saturation, Value) color model to other color spaces.
/**
* HSV conversion functions
* @param h - Hue component (0-360)
* @param s - Saturation component (0-100)
* @param v - Value component (0-100)
*/
hsv: {
rgb(...hsv: HSV): RGB;
rgb(hsv: HSV): RGB;
hsl(...hsv: HSV): HSL;
hsl(hsv: HSV): HSL;
hwb(...hsv: HSV): HWB;
hwb(hsv: HSV): HWB;
cmyk(...hsv: HSV): CMYK;
cmyk(hsv: HSV): CMYK;
xyz(...hsv: HSV): XYZ;
xyz(hsv: HSV): XYZ;
lab(...hsv: HSV): LAB;
lab(hsv: HSV): LAB;
lch(...hsv: HSV): LCH;
lch(hsv: HSV): LCH;
hex(...hsv: HSV): HEX;
hex(hsv: HSV): HEX;
keyword(...hsv: HSV): Keyword;
keyword(hsv: HSV): Keyword;
ansi16(...hsv: HSV): ANSI16;
ansi16(hsv: HSV): ANSI16;
ansi256(...hsv: HSV): ANSI256;
ansi256(hsv: HSV): ANSI256;
hcg(...hsv: HSV): HCG;
hcg(hsv: HSV): HCG;
apple(...hsv: HSV): Apple;
apple(hsv: HSV): Apple;
gray(...hsv: HSV): Gray;
gray(hsv: HSV): Gray;
}Convert from HWB (Hue, Whiteness, Blackness) color model to other color spaces.
/**
* HWB conversion functions
* @param h - Hue component (0-360)
* @param w - Whiteness component (0-100)
* @param b - Blackness component (0-100)
*/
hwb: {
rgb(...hwb: HWB): RGB;
rgb(hwb: HWB): RGB;
hsl(...hwb: HWB): HSL;
hsl(hwb: HWB): HSL;
hsv(...hwb: HWB): HSV;
hsv(hwb: HWB): HSV;
cmyk(...hwb: HWB): CMYK;
cmyk(hwb: HWB): CMYK;
xyz(...hwb: HWB): XYZ;
xyz(hwb: HWB): XYZ;
lab(...hwb: HWB): LAB;
lab(hwb: HWB): LAB;
lch(...hwb: HWB): LCH;
lch(hwb: HWB): LCH;
hex(...hwb: HWB): HEX;
hex(hwb: HWB): HEX;
keyword(...hwb: HWB): Keyword;
keyword(hwb: HWB): Keyword;
ansi16(...hwb: HWB): ANSI16;
ansi16(hwb: HWB): ANSI16;
ansi256(...hwb: HWB): ANSI256;
ansi256(hwb: HWB): ANSI256;
hcg(...hwb: HWB): HCG;
hcg(hwb: HWB): HCG;
apple(...hwb: HWB): Apple;
apple(hwb: HWB): Apple;
gray(...hwb: HWB): Gray;
gray(hwb: HWB): Gray;
}Convert from CMYK (Cyan, Magenta, Yellow, Key) color model to other color spaces.
/**
* CMYK conversion functions
* @param c - Cyan component (0-100)
* @param m - Magenta component (0-100)
* @param y - Yellow component (0-100)
* @param k - Key (black) component (0-100)
*/
cmyk: {
rgb(...cmyk: CMYK): RGB;
rgb(cmyk: CMYK): RGB;
hsl(...cmyk: CMYK): HSL;
hsl(cmyk: CMYK): HSL;
hsv(...cmyk: CMYK): HSV;
hsv(cmyk: CMYK): HSV;
hwb(...cmyk: CMYK): HWB;
hwb(cmyk: CMYK): HWB;
xyz(...cmyk: CMYK): XYZ;
xyz(cmyk: CMYK): XYZ;
lab(...cmyk: CMYK): LAB;
lab(cmyk: CMYK): LAB;
lch(...cmyk: CMYK): LCH;
lch(cmyk: CMYK): LCH;
hex(...cmyk: CMYK): HEX;
hex(cmyk: CMYK): HEX;
keyword(...cmyk: CMYK): Keyword;
keyword(cmyk: CMYK): Keyword;
ansi16(...cmyk: CMYK): ANSI16;
ansi16(cmyk: CMYK): ANSI16;
ansi256(...cmyk: CMYK): ANSI256;
ansi256(cmyk: CMYK): ANSI256;
hcg(...cmyk: CMYK): HCG;
hcg(cmyk: CMYK): HCG;
apple(...cmyk: CMYK): Apple;
apple(cmyk: CMYK): Apple;
gray(...cmyk: CMYK): Gray;
gray(cmyk: CMYK): Gray;
}Convert from XYZ (CIE XYZ) color model to other color spaces.
/**
* XYZ conversion functions
* @param x - X component
* @param y - Y component
* @param z - Z component
*/
xyz: {
rgb(...xyz: XYZ): RGB;
rgb(xyz: XYZ): RGB;
hsl(...xyz: XYZ): HSL;
hsl(xyz: XYZ): HSL;
hsv(...xyz: XYZ): HSV;
hsv(xyz: XYZ): HSV;
hwb(...xyz: XYZ): HWB;
hwb(xyz: XYZ): HWB;
cmyk(...xyz: XYZ): CMYK;
cmyk(xyz: XYZ): CMYK;
lab(...xyz: XYZ): LAB;
lab(xyz: XYZ): LAB;
lch(...xyz: XYZ): LCH;
lch(xyz: XYZ): LCH;
hex(...xyz: XYZ): HEX;
hex(xyz: XYZ): HEX;
keyword(...xyz: XYZ): Keyword;
keyword(xyz: XYZ): Keyword;
ansi16(...xyz: XYZ): ANSI16;
ansi16(xyz: XYZ): ANSI16;
ansi256(...xyz: XYZ): ANSI256;
ansi256(xyz: XYZ): ANSI256;
hcg(...xyz: XYZ): HCG;
hcg(xyz: XYZ): HCG;
apple(...xyz: XYZ): Apple;
apple(xyz: XYZ): Apple;
gray(...xyz: XYZ): Gray;
gray(xyz: XYZ): Gray;
}Convert from LAB (CIE LAB) color model to other color spaces.
/**
* LAB conversion functions
* @param l - Lightness component (0-100)
* @param a - A component (-86 to 98)
* @param b - B component (-108 to 94)
*/
lab: {
rgb(...lab: LAB): RGB;
rgb(lab: LAB): RGB;
hsl(...lab: LAB): HSL;
hsl(lab: LAB): HSL;
hsv(...lab: LAB): HSV;
hsv(lab: LAB): HSV;
hwb(...lab: LAB): HWB;
hwb(lab: LAB): HWB;
cmyk(...lab: LAB): CMYK;
cmyk(lab: LAB): CMYK;
xyz(...lab: LAB): XYZ;
xyz(lab: LAB): XYZ;
lch(...lab: LAB): LCH;
lch(lab: LAB): LCH;
hex(...lab: LAB): HEX;
hex(lab: LAB): HEX;
keyword(...lab: LAB): Keyword;
keyword(lab: LAB): Keyword;
ansi16(...lab: LAB): ANSI16;
ansi16(lab: LAB): ANSI16;
ansi256(...lab: LAB): ANSI256;
ansi256(lab: LAB): ANSI256;
hcg(...lab: LAB): HCG;
hcg(lab: LAB): HCG;
apple(...lab: LAB): Apple;
apple(lab: LAB): Apple;
gray(...lab: LAB): Gray;
gray(lab: LAB): Gray;
}Convert from LCH (CIE LCH) color model to other color spaces.
/**
* LCH conversion functions
* @param l - Lightness component (0-100)
* @param c - Chroma component (0-133)
* @param h - Hue component (0-360)
*/
lch: {
rgb(...lch: LCH): RGB;
rgb(lch: LCH): RGB;
hsl(...lch: LCH): HSL;
hsl(lch: LCH): HSL;
hsv(...lch: LCH): HSV;
hsv(lch: LCH): HSV;
hwb(...lch: LCH): HWB;
hwb(lch: LCH): HWB;
cmyk(...lch: LCH): CMYK;
cmyk(lch: LCH): CMYK;
xyz(...lch: LCH): XYZ;
xyz(lch: LCH): XYZ;
lab(...lch: LCH): LAB;
lab(lch: LCH): LAB;
hex(...lch: LCH): HEX;
hex(lch: LCH): HEX;
keyword(...lch: LCH): Keyword;
keyword(lch: LCH): Keyword;
ansi16(...lch: LCH): ANSI16;
ansi16(lch: LCH): ANSI16;
ansi256(...lch: LCH): ANSI256;
ansi256(lch: LCH): ANSI256;
hcg(...lch: LCH): HCG;
hcg(lch: LCH): HCG;
apple(...lch: LCH): Apple;
apple(lch: LCH): Apple;
gray(...lch: LCH): Gray;
gray(lch: LCH): Gray;
}Convert from OKLAB (OK LAB) color model to other color spaces.
/**
* OKLAB conversion functions
* @param l - Lightness component (0-100)
* @param a - A component (-23 to 28)
* @param b - B component (-31 to 20)
*/
oklab: {
rgb(...oklab: OKLAB): RGB;
rgb(oklab: OKLAB): RGB;
hsl(...oklab: OKLAB): HSL;
hsl(oklab: OKLAB): HSL;
hsv(...oklab: OKLAB): HSV;
hsv(oklab: OKLAB): HSV;
hwb(...oklab: OKLAB): HWB;
hwb(oklab: OKLAB): HWB;
cmyk(...oklab: OKLAB): CMYK;
cmyk(oklab: OKLAB): CMYK;
xyz(...oklab: OKLAB): XYZ;
xyz(oklab: OKLAB): XYZ;
lab(...oklab: OKLAB): LAB;
lab(oklab: OKLAB): LAB;
lch(...oklab: OKLAB): LCH;
lch(oklab: OKLAB): LCH;
oklch(...oklab: OKLAB): OKLCH;
oklch(oklab: OKLAB): OKLCH;
hex(...oklab: OKLAB): HEX;
hex(oklab: OKLAB): HEX;
keyword(...oklab: OKLAB): Keyword;
keyword(oklab: OKLAB): Keyword;
ansi16(...oklab: OKLAB): ANSI16;
ansi16(oklab: OKLAB): ANSI16;
ansi256(...oklab: OKLAB): ANSI256;
ansi256(oklab: OKLAB): ANSI256;
hcg(...oklab: OKLAB): HCG;
hcg(oklab: OKLAB): HCG;
apple(...oklab: OKLAB): Apple;
apple(oklab: OKLAB): Apple;
gray(...oklab: OKLAB): Gray;
gray(oklab: OKLAB): Gray;
}Convert from OKLCH (OK LCH) color model to other color spaces.
/**
* OKLCH conversion functions
* @param l - Lightness component (0-100)
* @param c - Chroma component (0-32)
* @param h - Hue component (0-360)
*/
oklch: {
rgb(...oklch: OKLCH): RGB;
rgb(oklch: OKLCH): RGB;
hsl(...oklch: OKLCH): HSL;
hsl(oklch: OKLCH): HSL;
hsv(...oklch: OKLCH): HSV;
hsv(oklch: OKLCH): HSV;
hwb(...oklch: OKLCH): HWB;
hwb(oklch: OKLCH): HWB;
cmyk(...oklch: OKLCH): CMYK;
cmyk(oklch: OKLCH): CMYK;
xyz(...oklch: OKLCH): XYZ;
xyz(oklch: OKLCH): XYZ;
lab(...oklch: OKLCH): LAB;
lab(oklch: OKLCH): LAB;
lch(...oklch: OKLCH): LCH;
lch(oklch: OKLCH): LCH;
oklab(...oklch: OKLCH): OKLAB;
oklab(oklch: OKLCH): OKLAB;
hex(...oklch: OKLCH): HEX;
hex(oklch: OKLCH): HEX;
keyword(...oklch: OKLCH): Keyword;
keyword(oklch: OKLCH): Keyword;
ansi16(...oklch: OKLCH): ANSI16;
ansi16(oklch: OKLCH): ANSI16;
ansi256(...oklch: OKLCH): ANSI256;
ansi256(oklch: OKLCH): ANSI256;
hcg(...oklch: OKLCH): HCG;
hcg(oklch: OKLCH): HCG;
apple(...oklch: OKLCH): Apple;
apple(oklch: OKLCH): Apple;
gray(...oklch: OKLCH): Gray;
gray(oklch: OKLCH): Gray;
}Convert from HEX (hexadecimal) color strings to other color spaces.
/**
* HEX conversion functions
* @param hex - Hexadecimal color string (e.g., 'FF0000', '#FF0000')
*/
hex: {
rgb(hex: HEX): RGB;
hsl(hex: HEX): HSL;
hsv(hex: HEX): HSV;
hwb(hex: HEX): HWB;
cmyk(hex: HEX): CMYK;
xyz(hex: HEX): XYZ;
lab(hex: HEX): LAB;
lch(hex: HEX): LCH;
keyword(hex: HEX): Keyword;
ansi16(hex: HEX): ANSI16;
ansi256(hex: HEX): ANSI256;
hcg(hex: HEX): HCG;
apple(hex: HEX): Apple;
gray(hex: HEX): Gray;
}Convert from CSS color keywords to other color spaces.
/**
* Keyword conversion functions
* @param keyword - CSS color keyword (e.g., 'red', 'blue', 'white')
*/
keyword: {
rgb(keyword: Keyword): RGB;
hsl(keyword: Keyword): HSL;
hsv(keyword: Keyword): HSV;
hwb(keyword: Keyword): HWB;
cmyk(keyword: Keyword): CMYK;
xyz(keyword: Keyword): XYZ;
lab(keyword: Keyword): LAB;
lch(keyword: Keyword): LCH;
hex(keyword: Keyword): HEX;
ansi16(keyword: Keyword): ANSI16;
ansi256(keyword: Keyword): ANSI256;
hcg(keyword: Keyword): HCG;
apple(keyword: Keyword): Apple;
gray(keyword: Keyword): Gray;
}Convert from 16-color ANSI codes to other color spaces.
/**
* ANSI16 conversion functions
* @param ansi16 - 16-color ANSI code (0-15)
*/
ansi16: {
rgb(ansi16: ANSI16): RGB;
hsl(ansi16: ANSI16): HSL;
hsv(ansi16: ANSI16): HSV;
hwb(ansi16: ANSI16): HWB;
cmyk(ansi16: ANSI16): CMYK;
xyz(ansi16: ANSI16): XYZ;
lab(ansi16: ANSI16): LAB;
lch(ansi16: ANSI16): LCH;
hex(ansi16: ANSI16): HEX;
keyword(ansi16: ANSI16): Keyword;
ansi256(ansi16: ANSI16): ANSI256;
hcg(ansi16: ANSI16): HCG;
apple(ansi16: ANSI16): Apple;
gray(ansi16: ANSI16): Gray;
}Convert from 256-color ANSI codes to other color spaces.
/**
* ANSI256 conversion functions
* @param ansi256 - 256-color ANSI code (0-255)
*/
ansi256: {
rgb(ansi256: ANSI256): RGB;
hsl(ansi256: ANSI256): HSL;
hsv(ansi256: ANSI256): HSV;
hwb(ansi256: ANSI256): HWB;
cmyk(ansi256: ANSI256): CMYK;
xyz(ansi256: ANSI256): XYZ;
lab(ansi256: ANSI256): LAB;
lch(ansi256: ANSI256): LCH;
hex(ansi256: ANSI256): HEX;
keyword(ansi256: ANSI256): Keyword;
ansi16(ansi256: ANSI256): ANSI16;
hcg(ansi256: ANSI256): HCG;
apple(ansi256: ANSI256): Apple;
gray(ansi256: ANSI256): Gray;
}Convert from HCG (Hue, Chroma, Grayscale) color model to other color spaces.
/**
* HCG conversion functions
* @param h - Hue component (0-360)
* @param c - Chroma component (0-100)
* @param g - Grayscale component (0-100)
*/
hcg: {
rgb(...hcg: HCG): RGB;
rgb(hcg: HCG): RGB;
hsl(...hcg: HCG): HSL;
hsl(hcg: HCG): HSL;
hsv(...hcg: HCG): HSV;
hsv(hcg: HCG): HSV;
hwb(...hcg: HCG): HWB;
hwb(hcg: HCG): HWB;
cmyk(...hcg: HCG): CMYK;
cmyk(hcg: HCG): CMYK;
xyz(...hcg: HCG): XYZ;
xyz(hcg: HCG): XYZ;
lab(...hcg: HCG): LAB;
lab(hcg: HCG): LAB;
lch(...hcg: HCG): LCH;
lch(hcg: HCG): LCH;
hex(...hcg: HCG): HEX;
hex(hcg: HCG): HEX;
keyword(...hcg: HCG): Keyword;
keyword(hcg: HCG): Keyword;
ansi16(...hcg: HCG): ANSI16;
ansi16(hcg: HCG): ANSI16;
ansi256(...hcg: HCG): ANSI256;
ansi256(hcg: HCG): ANSI256;
apple(...hcg: HCG): Apple;
apple(hcg: HCG): Apple;
gray(...hcg: HCG): Gray;
gray(hcg: HCG): Gray;
}Convert from Apple RGB color model to other color spaces.
/**
* Apple RGB conversion functions
* @param r16 - Red component (0-65535)
* @param g16 - Green component (0-65535)
* @param b16 - Blue component (0-65535)
*/
apple: {
rgb(...apple: Apple): RGB;
rgb(apple: Apple): RGB;
hsl(...apple: Apple): HSL;
hsl(apple: Apple): HSL;
hsv(...apple: Apple): HSV;
hsv(apple: Apple): HSV;
hwb(...apple: Apple): HWB;
hwb(apple: Apple): HWB;
cmyk(...apple: Apple): CMYK;
cmyk(apple: Apple): CMYK;
xyz(...apple: Apple): XYZ;
xyz(apple: Apple): XYZ;
lab(...apple: Apple): LAB;
lab(apple: Apple): LAB;
lch(...apple: Apple): LCH;
lch(apple: Apple): LCH;
hex(...apple: Apple): HEX;
hex(apple: Apple): HEX;
keyword(...apple: Apple): Keyword;
keyword(apple: Apple): Keyword;
ansi16(...apple: Apple): ANSI16;
ansi16(apple: Apple): ANSI16;
ansi256(...apple: Apple): ANSI256;
ansi256(apple: Apple): ANSI256;
hcg(...apple: Apple): HCG;
hcg(apple: Apple): HCG;
gray(...apple: Apple): Gray;
gray(apple: Apple): Gray;
}Convert from grayscale color model to other color spaces.
/**
* Grayscale conversion functions
* @param gray - Grayscale value (0-100)
*/
gray: {
rgb(...gray: Gray): RGB;
rgb(gray: Gray): RGB;
hsl(...gray: Gray): HSL;
hsl(gray: Gray): HSL;
hsv(...gray: Gray): HSV;
hsv(gray: Gray): HSV;
hwb(...gray: Gray): HWB;
hwb(gray: Gray): HWB;
cmyk(...gray: Gray): CMYK;
cmyk(gray: Gray): CMYK;
xyz(...gray: Gray): XYZ;
xyz(gray: Gray): XYZ;
lab(...gray: Gray): LAB;
lab(gray: Gray): LAB;
lch(...gray: Gray): LCH;
lch(gray: Gray): LCH;
hex(...gray: Gray): HEX;
hex(gray: Gray): HEX;
keyword(...gray: Gray): Keyword;
keyword(gray: Gray): Keyword;
ansi16(...gray: Gray): ANSI16;
ansi16(gray: Gray): ANSI16;
ansi256(...gray: Gray): ANSI256;
ansi256(gray: Gray): ANSI256;
hcg(...gray: Gray): HCG;
hcg(gray: Gray): HCG;
apple(...gray: Gray): Apple;
apple(gray: Gray): Apple;
}All conversion functions support flexible input formats and handle null/undefined values gracefully.
/**
* Input handling behavior for all conversion functions
* - Accepts both spread arguments and array inputs
* - Returns null/undefined if input is null/undefined
* - Single-value models (hex, keyword, ansi) only accept direct values
*/
interface InputHandling {
spreadArgs: (...args: any[]) => any;
arrayArg: (args: any[]) => any;
nullHandling: (input: null) => null;
undefinedHandling: (input: undefined) => undefined;
}Usage Examples:
import convert from 'color-convert';
// Both formats work for multi-channel models
convert.rgb.hsl(255, 0, 0); // [0, 100, 50]
convert.rgb.hsl([255, 0, 0]); // [0, 100, 50]
// Single-channel models only accept direct values
convert.hex.rgb('FF0000'); // [255, 0, 0] ✓
convert.hex.rgb(['FF0000']); // Invalid ✗
// Null/undefined handling
convert.rgb.hsl(null); // null
convert.rgb.hsl(undefined); // undefined