Chroma JS
by taylorRichie
HTML
<script src="//d3js.org/d3.v3.min.js"></script>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/1.3.3/chroma.min.js"></script>
<div class="container-fluid" id='main'>
<div class="row">
<div class="col-md-12">
<div id="palette"></div>
</div>
</div>
</div>
CSS
#main{margin-top: 40px;}
JavaScript
var N, displayPalette, pCool;
displayPalette = function(data, f) {
var colors, pal, square, svg, w;
if (f) {
colors = data.map(function(d) {
return f(d).css();
});
} else {
colors = data;
}
w = Math.floor(400 / colors.length);
pal = d3.select('#palette');
svg = pal.append('svg').attr('width', 400).attr('height', w);
square = svg.selectAll('rect').data(colors);
square.enter().append('rect');
return square.attr({
x: function(d, i) {
return i * w;
},
y: 0,
height: w,
width: w,
fill: function(d) {
return d;
}
});
};
pCool = ['#041959', '#005AA5', '#0B7D8C', '#FAF4C3'];
pWarm = ['#33023F', '#580178', '#B6256C', '#FFDC6C', '#FAF4C3'];
N = 10;
displayPalette(chroma.scale(pCool).correctLightness(false).colors(N));
displayPalette(chroma.scale(pCool).correctLightness(true).colors(N));
displayPalette(chroma.bezier(pCool).scale().correctLightness(true).colors(N));
displayPalette(chroma.scale(pWarm).correctLightness(false).colors(N));
displayPalette(chroma.scale(pWarm).correctLightness(true).colors(N));
displayPalette(chroma.bezier(pWarm).scale().correctLightness(true).colors(N));