regenbogen

functional approach to color gradients

Usage no npm install needed!

<script type="module">
  import regenbogen from 'https://cdn.skypack.dev/regenbogen';
</script>

README

Regenbogen

A functional gradient.

Create a function that will return a color when passed a number. Colors can be passed as css color names, css color strings, arrays and objects. The returned function is perfectly suited to be used in Array.prototype.map.

If you don't pass an array of color stops, regenbogen will calculate the stops on its first use. If you dont use it in Array.prototype.map, it won't be able to calculate it, though, and use the defaults between 0 and 1 instead.

var gradient = regenbogen(['black', 'white'],[0, 1]);
gradient(0); // rgba(0, 0, 0, 1)
gradient(1); // rgba(255, 255, 255, 1)
gradient(null); // rgba(0, 0, 0, 0);
gradient(undefined); // rgba(0, 0, 0, 0);

var gradient = regenbogen(['red', 'green', 'blue']);
gradient(0.5); // rgba(0, 255, 0, 1)

Perfectly suited for use in Array.prototype.map: [0, 5, 1].map(regenbogen(['black', 'white'])); // ['rgba(0, 0, 0, 1)' // , 'rgba(127, 127, 127, 1)' // , 'rgba(255, 255, 255, 1)]