One of the most advanced ansi string rainbow stylizer tool


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
20Jun 20, 2016Apr 24, 2014Minified + gzip package size for ansi-rainbow in KB



Rainbowify string with rainicorn


npm install ansi-rainbow

Basic example

var rainbow = require('ansi-rainbow')

console.log(rainbow.r("I am in the pony world"))
console.log(rainbow.r("I", "am", "in", "the", "pony", "world"))

//what about background rainbows?

console.log("I am a background in the pony world"))

That outputs:

pony pony


Rainbow is skipping black and white colors (did you ever seen these on a rainbow?). But, we could imagine that in a world where Pony's are flying, black could be part of a rainbow so:

rainbow.add('black white') //adds black and white

Let's write all features together to print a rainbow flag \o/:

    .add('black', 'white')
    .reset() //we do not want black and white anymore - note it does not reset options only colors
    .skip(rainbow._backgrounds) //skips backgrounds
    .add('bgBlue bgMagenta bgCyan') //this will keep order when rainbowified
    .options({color_space: true, gap: 3}) //this will force color spaces and change color every 3 characters

    console.log('         '))
    console.log('         '))

That outputs:

pony pony


  • r(string) rainbowify
  • bg(string) background-rainbowify
  • add(colors) do not skip colors
  • skip(colors) skip colors
  • reset() reset colors (skips ['black', 'white', 'bgBlack', 'bgWhite'])
  • options({}) set options
    • (bool) .color_space or .colorSpace - whether to color spaces
    • (string) .space_color or .spaceColor - space color string
    • (int) .gap - the gap size between a color change


What about everything that is not a string?

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from