What is colors?
The 'colors' npm package is used to add color and style to text in the Node.js console. It allows developers to easily format their console output by adding colors, background colors, and styles such as bold or underline to their text.
What are colors's main functionalities?
Text colors
This feature allows you to change the color of the text. You can use predefined color names to set the text color.
console.log('hello'.green); // Outputs green text
Background colors
Similar to text colors, this feature allows you to set the background color of the text using predefined color names.
console.log('hello'.bgGreen); // Outputs text with a green background
Text styles
This feature allows you to apply different styles to your text, such as making it bold, underlined, or dim.
console.log('hello'.bold); // Outputs bold text
Chaining multiple styles
You can chain multiple styles together to apply several formats to your text at once.
console.log('hello'.green.underline.bold); // Outputs green, underlined, bold text
Custom themes
You can define custom themes to create a combination of styles that can be reused throughout your application.
colors.setTheme({ custom: ['red', 'underline'] }); console.log('hello'.custom); // Outputs red underlined text
Other packages similar to colors
chalk
Chalk is a popular npm package similar to colors. It provides a chainable API and has a cleaner syntax. Chalk is also known for being more performant and not extending String.prototype, which is considered a good practice.
cli-color
cli-color is another package that offers similar functionality to colors. It provides a rich set of features for coloring and formatting terminal text. Unlike colors, cli-color does not modify the String prototype and is more modular.
ansi-colors
ansi-colors is a lightweight alternative to colors that focuses on speed and avoiding the use of prototypes. It offers a simple API for styling terminal text using ANSI escape codes.
colors.js
Please check out the roadmap for upcoming features and releases. Please open Issues to provide feedback, and check the develop
branch for the latest bleeding-edge updates.
get color and style in your node.js console
Installation
npm install colors
colors and styles!
text colors
- black
- red
- green
- yellow
- blue
- magenta
- cyan
- white
- gray
- grey
bright text colors
- brightRed
- brightGreen
- brightYellow
- brightBlue
- brightMagenta
- brightCyan
- brightWhite
background colors
- bgBlack
- bgRed
- bgGreen
- bgYellow
- bgBlue
- bgMagenta
- bgCyan
- bgWhite
- bgGray
- bgGrey
bright background colors
- bgBrightRed
- bgBrightGreen
- bgBrightYellow
- bgBrightBlue
- bgBrightMagenta
- bgBrightCyan
- bgBrightWhite
styles
- reset
- bold
- dim
- italic
- underline
- inverse
- hidden
- strikethrough
- rainbow
- zebra
- america
- trap
- random
Usage
By popular demand, colors
now ships with two types of usages!
The super nifty way
var colors = require('colors');
console.log('hello'.green);
console.log('i like cake and pies'.underline.red);
console.log('inverse the color'.inverse);
console.log('OMG Rainbows!'.rainbow);
console.log('Run the trap'.trap);
or a slightly less nifty way which doesn't extend String.prototype
var colors = require('colors/safe');
console.log(colors.green('hello'));
console.log(colors.red.underline('i like cake and pies'));
console.log(colors.inverse('inverse the color'));
console.log(colors.rainbow('OMG Rainbows!'));
console.log(colors.trap('Run the trap'));
I prefer the first way. Some people seem to be afraid of extending String.prototype
and prefer the second way.
If you are writing good code you will never have an issue with the first approach. If you really don't want to touch String.prototype
, the second usage will not touch String
native object.
Enabling/Disabling Colors
The package will auto-detect whether your terminal can use colors and enable/disable accordingly. When colors are disabled, the color functions do nothing. You can override this with a command-line flag:
node myapp.js --no-color
node myapp.js --color=false
node myapp.js --color
node myapp.js --color=true
node myapp.js --color=always
FORCE_COLOR=1 node myapp.js
Or in code:
var colors = require('colors');
colors.enable();
colors.disable();
var name = 'Marak';
console.log(colors.green('Hello %s'), name);
Custom themes
Using standard API
var colors = require('colors');
colors.setTheme({
silly: 'rainbow',
input: 'grey',
verbose: 'cyan',
prompt: 'grey',
info: 'green',
data: 'grey',
help: 'cyan',
warn: 'yellow',
debug: 'blue',
error: 'red'
});
console.log("this is an error".error);
console.log("this is a warning".warn);
Using string safe API
var colors = require('colors/safe');
var error = colors.red;
error('this is red');
colors.setTheme({
silly: 'rainbow',
input: 'grey',
verbose: 'cyan',
prompt: 'grey',
info: 'green',
data: 'grey',
help: 'cyan',
warn: 'yellow',
debug: 'blue',
error: 'red'
});
console.log(colors.error("this is an error"));
console.log(colors.warn("this is a warning"));
Combining Colors
var colors = require('colors');
colors.setTheme({
custom: ['red', 'underline']
});
console.log('test'.custom);
Protip: There is a secret undocumented style in colors
. If you find the style you can summon him.