hsl() color string.String.prototype.match() to get an array of 3 strings with the numeric values.Array.prototype.map() in combination with Number to convert them into an array of numeric values.0 and 100), using Math.max() and Math.min().hsl() string with the updated value.const changeLightness = (delta, hslStr) => {
const [hue, saturation, lightness] = hslStr.match(/\d+/g).map(Number);
const newLightness = Math.max(
0,
Math.min(100, lightness + parseFloat(delta))
);
return `hsl(${hue}, ${saturation}%, ${newLightness}%)`;
};
changeLightness(10, 'hsl(330, 50%, 50%)'); // 'hsl(330, 50%, 60%)' changeLightness(-10, 'hsl(330, 50%, 50%)'); // 'hsl(330, 50%, 40%)'
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️