ramps = scheme => {
const array = d3["scheme" + scheme][0]
? d3["scheme" + scheme]
: d3["scheme" + scheme].slice().pop();
let mono = culori.interpolateSplineMonotone();
const labmono = culori.interpolate(array, 'lab', { l: mono, a: mono, b: mono });
const rgbmono = culori.interpolate(array, 'rgb', { r: mono, g: mono, b: mono });
const lrgbmono = culori.interpolate(array, 'lrgb', { r: mono, g: mono, b: mono });
return html`
<div class='grid'>
<span>None</span> ${ramp(t => array[Math.round((array.length - 1) * t)]) }
<span>RGB linear</span>${ramp(t => culori.formatHex(culori.interpolate(array, 'rgb')(t)))}
<span>LRGB linear</span>${ramp(t => culori.formatHex(culori.interpolate(array, 'lrgb')(t)))}
<span>LRGB linear*</span>${ramp(t => chroma.scale(array).mode('lrgb')(t).hex())}
<span>Lab linear</span>${ramp(d3.piecewise(d3.interpolateLab, array)) }
<span>Lab CatmullRom</span>${ramp(interpolateLabCatmullRom(array))}
<span>Lab Monotone</span>${ramp(t => culori.formatHex(labmono(t)))}
<span>RGB Monotone</span>${ramp(t => culori.formatHex(rgbmono(t)))}
<span>LRGB Monotone</span>${ramp(t => culori.formatHex(lrgbmono(t)))}
</div>
`;
}