hue to darker hue gradient creator

by wheresrhys

HTML

<p>#4567fa</p>
<p>#000fff</p>
<p>#fff000</p>
<p>#abcdef</p>
<p>#123456</p>
<p>#7890ab</p>
<p>#1aa39b</p>

JavaScript

var colourConversion = {
    _toHex: function(num) {
        var str = Math.round(num, 0).toString(16);
        return (str.length === 1) ? "0" + str : str;
    },
    hex2rgb: function hex2rgb(hex) {
        var rgb = [];
        if (hex.length === 3) {
            hex = hex.replace(/\w/g, function($1) {
                return $1 + $1;
            });
        }
        hex = parseInt(hex, 16);
        rgb[0] = hex >> 16;
        rgb[1] = hex >> 8 & 0xFF;
        rgb[2] = hex & 0xFF;
        return rgb;
    },
    rgb2hex: function(r, g, b) {
        var hex = this._toHex(r) + this._toHex(g) + this._toHex(b);
        return hex;
    },
    rgb2hsl: function(r, g, b) {
        r /= 255, g /= 255, b /= 255;
        var max = Math.max(r, g, b),
            min = Math.min(r, g, b);
        var h, s, l = (max + min) / 2;

        if (max == min) {
            h = s = 0; // achromatic
        } else {
            var d = max - min;
            s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
            switch (max) {
            case r:
                h = (g - b) / d + (g < b ? 6 : 0);
                break;
            case g:
                h = (b - r) / d + 2;
                break;
            case b:
                h = (r - g) / d + 4;
                break;
            }
            h /= 6;
        }

        return [h, s, l];
    },
    hsl2rgb: function(h, s, l) {
        var r, g, b;

        if (s == 0) {
            r = g = b = l; // achromatic
        } else {
            function hue2rgb(p, q, t) {
                if (t < 0) t += 1;
                if (t > 1) t -= 1;
                if (t < 1 / 6) return p + (q - p) * 6 * t;
                if (t < 1 / 2) return q;
                if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
                return p;
            }

            var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
            var p = 2 * l - q;
            r = hue2rgb(p, q, h + 1 / 3);
            g = hue2rgb(p, q, h);
           ...