function sequence(clrs, interp = d3.interpolateRgb) {
const interps = [];
for (let i = 0; i < clrs.length - 1; i++) {
interps.push(interp(clrs[i], clrs[i + 1]));
}
return (t) => {
const scaledT = d3.scaleLinear().range([0, clrs.length - 1])(t);
const intT = Math.min(clrs.length - 2, Math.floor(scaledT));
return interps[intT](scaledT - intT);
};
}