ramps = scheme => {
const array = d3["scheme" + scheme][0]
? d3["scheme" + scheme]
: d3["scheme" + scheme].slice().pop();
return html`
<div style="font: 10px sans-serif; color: ${
d3.hsl(array[0]).l > .5 ? "black" : "white"
};">
<div style="position: relative; top:0; left: 0px; height:0; border-top: 1px solid white">${scheme}</div>
${ramp(t => array[Math.round((array.length - 1) * t)])}
${
d3["interpolate" + scheme]
? html`<div style="position: relative; top:0; left: 0px; height:0; border-top: 1px solid white">
${"interpolate" + scheme}</div>${ramp(d3["interpolate" + scheme])}`
: html``
}
<div style="position: relative; top:0; left: 0px; height:0; border-top: 1px solid white">interpolateRgbCatmullRom(${scheme})</div>
${ramp(interpolateRgbCatmullRom(array))}
<div style="position: relative; top:0; left: 0px; height:0; border-top: 1px solid white">interpolateLabCatmullRom(${scheme})</div>
${ramp(interpolateLabCatmullRom(array))}
<div style="position: relative; top:0; left: 0px; height:0; border-top: 1px solid white">interpolateLabCubic(${scheme})</div>
${ramp(interpolateLabCubic(array))}
<div style="position: relative; top:0; left: 0px; height:0; border-top: 1px solid white">interpolateRgbCubic(${scheme})</div>
${ramp(interpolateRgbCubic(array))}
<div style="position: relative; top:0; left: 0px; height:0; border-top: 1px solid white">interpolateRgbMonotone(${scheme})</div>
${ramp(interpolateRgbMonotone(array))}
<div style="position: relative; top:0; left: 0px; height:0; border-top: 1px solid white">d3.interpolateRgbBasis(${scheme})</div>
${ramp(d3.interpolateRgbBasis(array))}
`;
}