colour

A cored, fixed, documented and optimized version of the popular colors.js: Get colors in your node.js console like what...

A cored, fixed, documented and optimized version of the popular colors.js. Can be used as a drop-in replacement, also works correctly in the browser, provides a CSS mode and has been compiled through Closure Compiler using advanced optimizations. Additionally, nearly every issue and pull request on the original has been incorporated.

npm install colour

This package extends the global String prototype with additional getters that apply terminal colors to your texts. Available styles are:

  • Emphasis: bold, italic, underline, inverse
  • Colors: yellow, cyan, white, magenta, green, red, grey, blue
  • Sequencers: rainbow, zebra, random
var colour = require('colour');
console.log('hello'.green); // outputs green text 
console.log('i like cake and pies'.underline.red) // outputs red underlined text 
console.log('inverse the color'.inverse); // inverses the color 
console.log('OMG Rainbows!'.rainbow); // rainbow (ignores spaces) 
var /* just name it */ colors = require('colour');
...

Its also possible to define your own themes by creating new getters on the String object. Example:

var colour = require('colour');
colour.setTheme({
  silly: 'rainbow',
  input: 'grey',
  verbose: 'cyan',
  prompt: 'grey',
  info: 'green',
  data: 'grey',
  help: 'cyan',
  warn: ['yellow', 'underline'], // Applies two styles at once 
  debug: 'blue',
  error: 'red bold' // Again, two styles 
});
 
console.log("this is an error".error); // outputs bold red text 
console.log("this is a warning".warn); // outputs underlined yellow text 
 
console.log(colour.green("this is green")); // Alternatively 
var colour = require('colour');
...
colour.mode = 'none'; // No colors at all 
colour.mode = 'console'; // Adds terminal colors (default on node.js) 
colour.mode = 'browser'; // Adds HTML colors (default in browsers) 
colour.mode = 'browser-css'; // Adds special CSS (see examples/example.css) 

If you have a reason to use a fresh String prototype in your application, you may also revert all extensions made.

var colour = require('colour');
...
colour.uninstall(); // Removes all custom properties from the String prototype 
...
colour.install(); // Re-installs them 
...
  • node.js/CommonJS compatible
  • RequireJS/AMD compatible
  • Browser/shim compatible
  • Closure Compiler externs included
  • Zero dependencies

Based on work started by Marak (Marak Squires), cloudhead (Alexis Sellier), mmalecki (Maciej Małecki), nicoreed (Nico Reed), morganrallen (Morgan Allen), JustinCampbell (Justin Campbell) and ded (Dustin Diaz).

The MIT-License (MIT)