Converter
The most complete and fully typed color conversion library.
Installation
npm install @colorblender/converter
Import
import { hexToRgb ,rgbToHex, ... } from '@colorblender/converter';
Usage
Model conversions
You can convert between any of the supported color models.
colorToRgb(colorValue: {{ColorType}}, rounded?: boolean): RgbColor
rgbToColor(rgb: RgbColor, rounded?: boolean): {{ColorType}}
alphaToHex(alpha: number): string;
hexToAlpha(hexAlpha: string, rounded?: boolean): string;
Example
import { rgbToHsl } from '@colorblender/converter';
rgbToHsl({
r: 255,
g: 255,
b: 255,
});
rgbToHsl(
{
r: 167,
g: 40,
b: 13,
},
true,
);
Conversion
You can convert any compatible model to RGB format and vice versa.
To convert two compatible and different RGB models you will have to go through a sub-conversion. For example to convert a HEX value to HSL you will have to do: HEX -> RGB -> HSL. This allows you to convert any compatible model to any other.
Keep in mind that large conversions may result in a loss of accuracy.
For package size reasons, some conversions in less common models are separated into external packages, but require having this package to work.
Supported color models
- HEX: string
- RGB { r: number, g: number, b: number }
- HSL { h: number, s: number, l: number }
- HSV { h: number, s: number, v: number }
- HWB { h: number, w: number, b: number }
- HCG { h: number, c: number, g: number }
- HSI { h: number, s: number, i: number }
- CMYK { c: number, m: number, y: number, k: number }
- XYZ { x: number, y: number, z: number }
- LAB { l: number, a: number, b: number }
- LCH { l: number, c: number, h: number }
- APPLE { r: number, g: number, b: number }
- GRAY number
- ANSI16 number - package @colorblender/converter-ansi
- ANSI256 number - package @colorblender/converter-ansi
- NAME string - package @colorblender/converter-name
- RAL string - package @colorblender/converter-ral
- HKS string - package @colorblender/converter-hks
Issues
Please file an issue for bugs, missing documentation, or unexpected behavior.
File an issue
License
MIT