UNPKG

pigmentjs

Version:

A zero-dependency colour organisation, creation and manipulation library built for web developers.

146 lines 4.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rgb2array = exports.hsl2array = exports.relativeLuminance = exports.hsl2rgb = exports.hsl2string = exports.rgb2hsl = exports.rgb2string = exports.rgb2hex = exports.hex2rgb = void 0; var hex2rgb = function (hex) { return { r: parseInt(hex.substring(1, 3), 16), g: parseInt(hex.substring(3, 5), 16), b: parseInt(hex.substring(5, 7), 16), }; }; exports.hex2rgb = hex2rgb; var rgb2hex = function (rgb) { var rs = Number(rgb.r).toString(16); var gs = Number(rgb.g).toString(16); var bs = Number(rgb.b).toString(16); if (rs.length === 1) { rs = "0".concat(rs); } if (gs.length === 1) { gs = "0".concat(gs); } if (bs.length === 1) { bs = "0".concat(bs); } return "#".concat(rs).concat(gs).concat(bs).toUpperCase(); }; exports.rgb2hex = rgb2hex; var rgb2string = function (rgb) { return "".concat(rgb.r, ", ").concat(rgb.g, ", ").concat(rgb.b); }; exports.rgb2string = rgb2string; var rgb2hsl = function (rgb) { var hue; var sat; var light; var r = rgb.r / 255; var g = rgb.g / 255; var b = rgb.b / 255; var min = Math.min(r, g, b); var max = Math.max(r, g, b); light = (min + max) / 2; if (light < 1) { sat = ((max - min) / (1 - Math.abs(2 * light - 1))) * 100; } else { sat = 0; } switch (max) { case r: hue = ((g - b) / (max - min)) * 60; break; case g: hue = (2.0 + (b - r) / (max - min)) * 60; break; case b: hue = (4.0 + (r - g) / (max - min)) * 60; break; default: throw Error("Error processing rgb2hsl"); } if (hue < 0) { hue += 360; } hue = Math.round(hue * 10) / 10; sat = Math.round(sat * 10) / 10; light = Math.round(light * 100 * 10) / 10; return { h: hue || 0, s: sat || 0, l: light, }; }; exports.rgb2hsl = rgb2hsl; var hsl2rgb = function (hsl) { var hue = hsl.h; var sat = hsl.s / 100; var light = hsl.l / 100; var chroma = (1 - Math.abs(2 * light - 1)) * sat; var x = chroma * (1 - Math.abs(((hue / 60) % 2) - 1)); var m = light - chroma / 2; var r = 0; var g = 0; var b = 0; if (0 <= hue && hue < 60) { r = chroma; g = x; b = 0; } else if (60 <= hue && hue < 120) { r = x; g = chroma; b = 0; } else if (120 <= hue && hue < 180) { r = 0; g = chroma; b = x; } else if (180 <= hue && hue < 240) { r = 0; g = x; b = chroma; } else if (240 <= hue && hue < 300) { r = x; g = 0; b = chroma; } else if (300 <= hue && hue <= 360) { r = chroma; g = 0; b = x; } return { r: Math.abs(Math.round((r + m) * 255)), g: Math.abs(Math.round((g + m) * 255)), b: Math.abs(Math.round((b + m) * 255)), }; }; exports.hsl2rgb = hsl2rgb; var hsl2string = function (hsl) { return "".concat(hsl.h, ", ").concat(hsl.s, ", ").concat(hsl.l); }; exports.hsl2string = hsl2string; var relativeLuminance = function (rgb) { var lowCoefficient = 1 / 12.92; var rsRGB = rgb.r / 255; var gsRGB = rgb.g / 255; var bsRGB = rgb.b / 255; var r = rsRGB <= 0.03928 ? rsRGB * lowCoefficient : Math.pow((rsRGB + 0.055) / 1.055, 2.4); var g = gsRGB <= 0.03928 ? gsRGB * lowCoefficient : Math.pow((gsRGB + 0.055) / 1.055, 2.4); var b = bsRGB <= 0.03928 ? bsRGB * lowCoefficient : Math.pow((bsRGB + 0.055) / 1.055, 2.4); return r * 0.2126 + g * 0.7152 + b * 0.0722; }; exports.relativeLuminance = relativeLuminance; var hsl2array = function (hsl) { return [hsl.h, hsl.s, hsl.l]; }; exports.hsl2array = hsl2array; var rgb2array = function (rgb) { return [rgb.r, rgb.g, rgb.b]; }; exports.rgb2array = rgb2array; //# sourceMappingURL=transformations.js.map