flame-gradient

Input a number between 0 and 1, get an rgb value on a smooth gradient from dark to bright

Usage no npm install needed!

<script type="module">
  import flameGradient from 'https://cdn.skypack.dev/flame-gradient';
</script>

README

flame-gradient

This module generates flame gradients like this one:

banner

...going from dark almost-black red to bright almost-white yellow.

Usage

Get one rgb value for a specific decimal value:

const flameGradient = require('flame-gradient')

const rgb = flameGradient(0.6) // returns 'rgb(255, 150, 1)'
const rgba = flameGradient(0.6, 0.5) // returns 'rgba('255, 150, 1, 0.5)'

Generate an entire gradient:

const generate = require('flame-gradient/generate.js')

const arrayOf1000Rgbs = generate(1000)
console.log(arrayOf1000Rgbs)

generate(1000, (rgb) => {
  console.log(rgb) // Logs each of 1000 RGB gradient points
})

View a gradient with a set number of points in a new browser window:

# Defaults to 1000 slices
npm run view

# Set a number of slices
npm run view -- 15

Accessibility

These have been tested to have a good balance of vibrant colour and smooth progression in brightness, such that higher values appear brighter to a consistent amount, including in monohrome and across different types of colour vision deficiency (CVD). This is done by incrementing the R, G and B channels in slightly overlapping sine curves, each slightly stretched based on an approximation of that channel's relative luminosity.

As such they should be usable as colour scales in visualisations.

Examples using CoBlIs:

Monochrome (Achromatopsia):

Monochrome

Protanomaly ("red-weak"):

Protanomaly

Deuteranomaly ("green-weak"):

Deuteranomaly

Tritanomaly ("blue-weak"):

Tritanomaly

Protanopia ("red-blind"):

Protanopia

Deuteranopia ("green-blind")

Deuteranopia

Tritanopia ("blue-blind")

Tritanopia

Blue cone monochromacy

Blue cone monochromacy

Acknowledgements

Sponsored by nearForm

License

MIT