API Docs for: 0.0.2
Show:

File: src\color-converter.js

/**
 * Converts an HSL color value to RGB. Conversion formula
 * adapted from http://en.wikipedia.org/wiki/HSL_color_space.
 * Assumes h, s, and l are contained in the set [0, 1] and
 * returns r, g, and b in the set [0, 255].
 *
 * @method hslToRgb
 * @private
 * @param {Number} h - The hue.
 * @param {Number} s - The saturation.
 * @param {Number} l - The lightness.
 * @return {Array} The RGB representation.
 */

export function hslToRgb(h, s, l) {

	var r, g, b, p, q;

	function hue2rgb(p, q, t) {

		var result = p;

		if(t < 0.0) {

			t += 1.0;

		} else if(t > 1.0) {

			t -= 1.0;

		}

		if(t < 1 / 6) {

			result = p + (q - p) * 6.0 * t;

		} else if(t < 0.5) {

			result = q;

		} else if(t < 2 / 3) {

			result = p + (q - p) * (2 / 3 - t) * 6.0;

		}

		return result;

	}

	if(s === 0.0) {

		r = g = b = l; // Achromatic.

	} else {

		q = l < 0.5 ? l * (1.0 + s) : l + s - l * s;
		p = 2.0 * l - q;

		r = hue2rgb(p, q, h + 1 / 3);
		g = hue2rgb(p, q, h);
		b = hue2rgb(p, q, h - 1 / 3);

	}

	return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];

}