Colors, formatting and other goodies for the console. This package won't mess with built-ins and provides neat way to predefine formatting patterns, see below.
$ npm install cli-color
Usage:
var clc = require('cli-color');
Output colored text:
console.log(clc.red('Text in red'));
Styles can be mixed:
console.log(clc.red.bgWhite.underline('Underlined red text on white background.'));
Styled text can be mixed with unstyled:
console.log(clc.red('red') + ' plain ' + clc.blue('blue'));
Styled text can be nested:
console.log(clc.red('red ' + clc.blue('blue') + ' red'));
Best way is to predefine needed stylings and then use it:
var error = clc.red.bold;
var warn = clc.yellow;
var notice = clc.blue;
console.log(error('Error!'));
console.log(warn('Warning'));
console.log(notice('Notice'));
Supported are all ANSI colors and styles:
Styles will display correctly if font used in your console supports them.
- bold
- italic
- underline
- blink
- inverse
- strike
Foreground | Background | |
---|---|---|
black | bgBlack | |
red | bgRed | |
green | bgGreen | |
yellow | bgYellow | |
blue | bgBlue | |
magenta | bgMagenta | |
cyan | bgCyan | |
white | bgWhite |
Not supported on Windows and some terminals. However if used in not supported environment, the closest color from basic (16 colors) palette is chosen.
Usage:
var msg = clc.xterm(202).bgXterm(236);
console.log(msg('Orange text on dark gray background'));
Color table:
Terminal can be cleared with clc.reset
process.stdout.write(clc.reset);
Entire screen
process.stdout.write(clc.erase.screen);
Left portion of a screen
process.stdout.write(clc.erase.screenLeft);
Right portion of a screen
process.stdout.write(clc.erase.screenRight);
Current line
process.stdout.write(clc.erase.line);
Right portion of current line
process.stdout.write(clc.erase.lineRight);
Left portion of current line
process.stdout.write(clc.erase.lineLeft);
Move cursor x columns and y rows away. Values can be positive or negative, e.g.:
process.stdout.write(clc.move(-2, -2)); // Move cursors two columns and two rows back
Absolute move. Sets cursor position at x column and y row
process.stdout.write(clc.move.to(0, 0)); // Move cursor to first row and first column in terminal window
Move cursor up n rows
process.stdout.write(clc.move.up(2));
Move cursor down n rows
process.stdout.write(clc.move.down(2));
Move cursor right n columns
process.stdout.write(clc.move.right(2));
Move cursor left n columns
process.stdout.write(clc.move.left(2));
Move cursor n
lines forward if n
is positive, otherwise n
lines backward.
process.stdout.write(clc.move.lines(2));
Returns terminal width
Returns terminal height
Strips ANSI formatted string to plain text
var ansiStrip = require('cli-color/strip');
var plain = ansiStrip(formatted);
Create a text-graphical art. Within styleConf
, string replacements needs to be defined, which are then used to convert text
to styled graphical text.
var text = '.........\n' +
'. Hello .\n' +
'.........\n';
var style = { ".": clc.yellowBright("X") };
process.stdout.write(clc.art(text, style));
Writes throbber string to write function at given interval. Optionally throbber output can be formatted with given format function
var setupThrobber = require('cli-color/throbber');
var throbber = setupThrobber(function (str) {
process.stdout.write(str);
}, 200);
throbber.start();
// at any time you can stop/start throbber
throbber.stop();
$ npm test
- @rentalhost (David Rodrigues)
- Help with support for nested styles. Introduction of
clc.art
module, and significant improvements to tests coverage.
- Help with support for nested styles. Introduction of