Color Code Generator

generates random colors and outputs an array of them to be used in code as a consistently random generated color array

by Daniel Latimer

HTML

<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js"></script>
<div class="flexParent" id="colors"></div>

CSS

.flexParent {
  display: flex;
  flex-wrap: wrap;
}

.flexChild {
  width: 25px; 
  height: 25px;
}

JavaScript

function padHex(number) {
  if (number.length > 1) {
  return number
  }
  return '0' + number
}

function pastelColors(index1, index2, index3){
  var randomIndexes = [index1, index2, index3]
  
  var [r,g,b] = randomIndexes.map(index => ((index * 127) + 127).toString(16));
  
  return rgbToHex(r, g, b);
}

// r, g, and b are in the range [0, 255]
function rgbToHex(r, g, b) {
  var parts = [r,g,b]
  
  return '#' + parts.map(part => padHex(part.toString(16))).join('')
}

/**
 * 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].
 *
 * @param   Number  h       The hue
 * @param   Number  s       The saturation
 * @param   Number  l       The lightness
 * @return  Array           The RGB representation
 */
function hslToRgb(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);
    b = hue2rgb(p, q, h - 1/3);
  }

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

function randomBounded(min, max, random) {
  var top = max - min;
  return random * top + min
}

function genOffenderColor(randomH, randomS, randomL) {
	var hue = randomH
  var saturation = randomBounded(0.10, 0.70, randomS) // 0.75
  var luminance = randomBounded(0.25, 0.45, randomL) // 0.32
    
  //console.log("random: " + random)
  
  return hslToHex(hue, saturation, luminance)
}

function hslToHex(hue, saturation, luminance) {
	var [r,g,b] = hslToRgb(hue, saturation, luminance)
  return rgbToHex(r,g,b)
}

function...