colorscalc
v1.0.0
Published
Type-safe color conversion utilities for TypeScript/JavaScript.
Maintainers
Readme
colorsCalc
A simple, type-safe npm package for color conversions and calculations in TypeScript/JavaScript.
Features
- Convert between HEX, RGB, HSL, and LCH color spaces
- Type-safe color objects with runtime validation
- Utility functions for color manipulation
Installation
npm install colorscalcUsage Example
import {
hexToRgb,
rgbToHex,
hexToHsl,
hslToHex,
hexToLch,
lchToHex,
} from "colorscalc";
const rgb = hexToRgb("#ff0000"); // { r, g, b }
const hex = rgbToHex(rgb); // "#ff0000"
const hsl = hexToHsl("#ff0000"); // { h, s, l }
const hex2 = hslToHex(hsl); // "#ff0000"
const lch = hexToLch("#ff0000"); // { l, c, h }
const hex3 = lchToHex(lch); // "#ff0000"API
Color Conversion Functions
hexToRgb(hex: HEX): RGB— Convert HEX to RGBrgbToHex(rgb: RGB): HEX— Convert RGB to HEXhexToHsl(hex: HEX): HSL— Convert HEX to HSLhslToHex(hsl: HSL): HEX— Convert HSL to HEXhexToLch(hex: HEX): LCH— Convert HEX to LCHlchToHex(lch: LCH): HEX— Convert LCH to HEX
Validation & Creation Helpers
createHEX(value: string): HEX— Validate and create a HEX colorcreateRGBValue(value: number): RGBValue— Validate and create an RGB channel valuecreateHue(value: number): Hue— Validate and create a Hue valuecreatePercentage(value: number): Percentage— Validate and create a Percentage valuecreateLCHLightness(value: number): LCHLightness— Validate and create LCH lightnesscreateLCHChroma(value: number): LCHChroma— Validate and create LCH chromacreateHSL(h: number, s: number, l: number): HSL— Create a validated HSL objectcreateRGB(r: number, g: number, b: number): RGB— Create a validated RGB objectcreateLCH(l: number, c: number, h: number): LCH— Create a validated LCH object
Type Guards
isHue(value: number): value is Hue— Check if a number is a valid HueisPercentage(value: number): value is Percentage— Check if a number is a valid PercentageisRGBValue(value: number): value is RGBValue— Check if a number is a valid RGB channelisValidHEX(value: string): value is HEX— Check if a string is a valid HEX color
Types
HEX— Branded string type for hex colors (e.g.,"#ff0000")RGB— Object:{ r, g, b }(0-255)HSL— Object:{ h, s, l }(h: 0-360, s/l: 0-100)LCH— Object:{ l, c, h }(l: 0-100, c: 0+, h: 0-360)
License
MIT
