UNPKG

@kcuf/mere-color

Version:

Mere color utils for generating, manipulation, a11y purposes.

44 lines (43 loc) 930 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = rgbToHsl; function rgbToHsl(rgb) { var red = rgb.r / 255; var green = rgb.g / 255; var blue = rgb.b / 255; var max = Math.max(red, green, blue); var min = Math.min(red, green, blue); var lightness = (max + min) / 2; if (max === min) { // achromatic return { h: 0, s: 0, l: lightness * 100, a: rgb.a }; } var hue; var delta = max - min; var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min); switch (max) { case red: hue = (green - blue) / delta + (green < blue ? 6 : 0); break; case green: hue = (blue - red) / delta + 2; break; default: // blue case hue = (red - green) / delta + 4; break; } return { h: hue * 60, s: saturation * 100, l: lightness * 100, a: rgb.a }; }