A High-Performance JavaScript Library for Color Management.
Features
π Color Manipulations
Β Β Β Β Β Β Easily manipulate colors with functions to lighten, darken, saturate, desaturate, invert, and blend colors.
π Color Harmony
Β Β Β Β Β Β Generate harmonious colors using monochromatic, complementary, triadic, tetradic, and more color schemes.
π Color Validation
Β Β Β Β Β Β Validate color formats to ensure correct color values before applying transformations.
π¨ Color Conversions
Β Β Β Β Β Β Convert colors between all popular color formats such as RGB, HEX, HSL, LAB, LCH, and more.
π Accessibility
Β Β Β Β Β Β Calculate contrast ratios, luminance, and other color metrics for accessibility.
π Color Parsing
Β Β Β Β Β Β Parse individual components of colors, decompose and recompose colors.
π High Performance
Β Β Β Β Β Β Optimized for performance with a small footprint.
β
No Dependencies
Β Β Β Β Β Β Designed to be lean and efficient without any external dependencies.
π¦ Small Size
Β Β Β Β Β Β ~10 KB gzipped.
Installation
To install the Colore library, use the follow command:
npm install colore-js
Alternatively, if you use Yarn:
yarn add colore-js
Getting Started
import { hexToRgb, lightenColor, saturateColor, setCssVariableValue } from 'colore-js';
const lightenedRgb = lightenColor('rgb(255, 0, 0)', 20);
console.log(lightenedRgb);
const saturatedRgb = saturateColor('rgb(255, 0, 0)', 50);
console.log(saturatedRgb);
const rgbString = hexToRgb('#ff5733');
console.log(rgbString);
const element = document.querySelector('.my-element');
setCssVariableValue(element, '--my-variable', 'blue');
API Reference
Analysis
getContrastRatio
import { getContrastRatio } from 'colore-js';
const result = getContrastRatio('#ffffff', '#000000');
console.log(result);
getLuminance
import { getLuminance } from 'colore-js';
const luminance = getLuminance('#ffffff');
console.log(luminance);
Conversions
cmykToRgb
import { cmykToRgb } from 'colore-js';
const rgbString = cmykToRgb(0, 100, 100, 0);
console.log(rgbString);
hexAlphaToHsla
import { hexAlphaToHsla } from 'colore-js';
const hslaColor = hexAlphaToHsla('#ff5733cc');
console.log(hslaColor);
hexAlphaToHsva
import { hexAlphaToHsva } from 'colore-js';
const hsvaString = hexAlphaToHsva('#ff5733cc');
console.log(hsvaString);
hexAlphaToRgba
import { hexAlphaToRgba } from 'colore-js';
const rgbaString = hexAlphaToRgba('#FF5733CC');
console.log(rgbaString);
hexToHexAlpha
import { hexToHexAlpha } from 'colore-js';
const hexWithAlpha = hexToHexAlpha('#ff0000', 0.5);
console.log(hexWithAlpha);
See all Conversions.
CSS Variables
getCssVariableValue
import { getCssVariableValue } from 'colore-js';
const element = document.querySelector('.my-element');
const variableValue = getCssVariableValue(element, '--my-variable');
console.log(variableValue);
setCssVariableValue
import { setCssVariableValue } from 'colore-js';
const element = document.querySelector('.my-element');
setCssVariableValue(element, '--my-variable', 'blue');
Generators
generateInterpolatedColors
import { generateInterpolatedColors } from 'colore-js';
const color1 = '#ff0000';
const color2 = '#00ff00';
const steps = 5;
const interpolatedColorsStrings = generateInterpolatedColors(color1, color2, steps);
console.log(interpolatedColorsStrings);
generateRandomColor
import { generateRandomColor, ColorFormats } from 'colore-js';
const randomHexColor = generateRandomColor(ColorFormats.HEX);
console.log(randomHexColor);
Harmony
analogousColors
import { analogousColors } from 'colore-js';
const analogous = analogousColors('#ff0000');
console.log(analogous);
complementaryColor
import { complementaryColor } from 'colore-js';
const complementary = complementaryColor('#ff0000');
console.log(complementary);
monochromaticColors
import { monochromaticColors } from 'colore-js';
const monochromatic = monochromaticColors('#ff0000');
console.log(monochromatic);
tetradicColors
import { tetradicColors } from 'colore-js';
const tetradic = tetradicColors('#ff0000');
console.log(tetradic);
triadicColors
import { triadicColors } from 'colore-js';
const triadic = triadicColors('#ff0000');
console.log(triadic);
Manipulations
blendColors
import { blendColors, BlendingModes } from 'colore-js';
const blended = blendColors('#ff0000', '#0000ff', BlendingModes.MULTIPLY);
console.log(blended);
darkenColor
import { darkenColor } from 'colore-js';
const darkened = darkenColor('#ff0000', 20);
console.log(darkened);
desaturateColor
import { desaturateColor } from 'colore-js';
const desaturated = desaturateColor('#ff0000', 50);
console.log(desaturated);
invertColor
import { invertColor } from 'colore-js';
const invertedColor = invertColor("#ff5733");
console.log(invertedColor);
lightenColor
import { lightenColor } from 'colore-js';
const lightened = lightenColor('#ff0000', 20);
console.log(lightened);
See all Manipulations.
Parser
decomposeColor
import { decomposeColor } from 'colore-js';
const decomposedHex = decomposeColor('#ff0000');
console.log(decomposedHex);
detectColorFormat
import { detectColorFormat } from 'colore-js';
const formatHex = detectColorFormat('#ff0000');
console.log(formatHex);
parseColorToRgba
import { parseColorToRgba } from 'colore-js';
const rgbaHex = parseColorToRgba('#ff0000');
console.log(rgbaHex);
parseHex
import { parseHex } from 'colore-js';
const rgb = parseHex('#ff0000');
console.log(rgb);
parseHexAlpha
import { parseHexAlpha } from 'colore-js';
const rgba = parseHexAlpha('#ff000080');
console.log(rgba);
See all Parsers.
Validations
isValidHex
import { isValidHex } from 'colore-js';
console.log(isValidHex('#ff0000'));
isValidHexAlpha
import { isValidHexAlpha } from 'colore-js';
console.log(isValidHexAlpha('#ff0000ff'));
isValidHsl
import { isValidHsl } from 'colore-js';
console.log(isValidHsl('hsl(120, 100%, 50%)'));
isValidHsla
import { isValidHsla } from 'colore-js';
console.log(isValidHsla('hsla(120, 100%, 50%, 0.5)'));
isValidLab
import { isValidLab } from 'colore-js';
console.log(isValidLab('lab(50% 0% 0%)'));
See all Validations.
See Documentation for complete API reference.
Supported Color Formats
- Hex strings
- Hex Alpha strings
- HSL strings and objects
- HSV strings and objects
- LAB strings and objects
- LCH strings and objects
- Named Colors strings and objects
- RGB strings and objects
- RGBA strings and objects
- XYZ strings and objects
Contributing
We welcome contributions from the community to make Colore better. If you find any issues or have suggestions for improvements, feel free to contribute or open an issue on our GitHub Repository.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Something Missing?
If you find any issues or have suggestions for improvements, feel free to contribute or open an issue on our GitHub Repository. We welcome contributions from the community to make Colore better.