Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including color-interpolate with all npm packages installed. Try it out:

var colorInterpolate = require("color-interpolate")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

color-interpolate v1.0.5

Pick color from a given color palette by index

color-interpolate stable

For a given palette, return color by any float index. Useful for interpolating colormaps, color palettes or gradients.


npm install color-interpolate

const interpolate = require('color-interpolate');

let colormap = interpolate(['black', 'gray', 'white']);
let black = colormap(0); // 'rgb(0, 0, 0)'
let white = colormap(1); // 'rgb(255, 255, 255)'
let gray = colormap(.5); // 'rgb(128, 128, 128)'


let palette = require('color-interpolate')(colors)

Create interpolator from a list of colors. Colors can be in any format: CSS color string, array with RGB channel values, object with r, g, b or h, s, l channel values or even a number, see color-parse for reference.

let color = palette(index, fn?)

Get interpolated color from palette by index value within 0..1 range. Pass optional fn interpolation function, by default lerp is used, but smoothstep can be used as an alternative.


const palettes = require('nice-color-palettes')
const palette = require('color-interpolate')(palettes[32])

let activeColor = palette(.2) // 'rgb(51, 23 47)'
let background = palette(1) // 'rgb(255, 255, 255)'
let foreground = palette(0) // 'rgb(0, 0, 0)'


Thanks to @mattdesl for interpolation functions and @mikkoh for API insight in interpolation-arrays.


colormap — collection of beautiful colormaps, a good source for palettes.
nice-color-palettes — collection of beautiful color palettes from colourlovers.
color-alpha — change alpha of a color string.
color-spectrum — convert spectrum, like FFT result, to color.
color-space — collection of color space transforms, useful for custom interpolation modes.

© Dmitry Yv. MIT License

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free