@timhall/ansi-colors
Easily add ANSI colors to your text and symbols in the terminal. A faster drop-in replacement for chalk, kleur and turbocolor (without the dependencies and rendering bugs).
Please consider following this project's original author, Brian Woodward, and consider starring the project to show your and support.
Install
Install with npm:
$ npm install --save ansi-colors

Why use this?
@timhall/ansi-colors is the smallest Node.js library for terminal styling. A performant alternative to chalk, with no dependencies and designed to be tree-shakable.
- Small and Tree-shakable
- Blazing fast
- No dependencies
- Safe - Does not modify the
String.prototype. - Supports nested colors.
- Toggle color support on or off.
Usage
const c = require('ansi-colors');
console.log(c.red('This is a red string!'));
console.log(c.green('This is a red string!'));
console.log(c.cyan('This is a cyan string!'));
console.log(c.yellow('This is a yellow string!'));

Nested colors
console.log(c.yellow(`foo ${c.red(c.bold('red'))} bar ${c.cyan('cyan')} baz`));

Toggle color support
Easily enable/disable colors.
const c = require('ansi-colors');
// disable colors manually
c.enabled = false;
// or use a library to automatically detect support
c.enabled = require('color-support').hasBasic;
console.log(c.red('I will only be colored red if the terminal supports colors'));
Strip ANSI codes
Use the .stripColor method to strip ANSI codes from a string.
console.log(c.stripColor(c.blue(c.bold('foo bar baz'))));
//=> 'foo bar baz'
Available styles
Note that bright and bright-background colors are not always supported.
| Colors | Background Colors | Bright Colors | Bright Background Colors |
|---|---|---|---|
| black | bgBlack | blackBright | bgBlackBright |
| red | bgRed | redBright | bgRedBright |
| green | bgGreen | greenBright | bgGreenBright |
| yellow | bgYellow | yellowBright | bgYellowBright |
| blue | bgBlue | blueBright | bgBlueBright |
| magenta | bgMagenta | magentaBright | bgMagentaBright |
| cyan | bgCyan | cyanBright | bgCyanBright |
| white | bgWhite | whiteBright | bgWhiteBright |
| gray | |||
| grey |
(gray is the U.S. spelling, grey is more commonly used in the Canada and U.K.)
Style modifiers
dim
bold
hidden
italic
underline
inverse
strikethroughreset
Performance
Libraries tested
- @timhall/ansi-colors v5.0.0
- chalk v3.0.0
Mac
MacBook Pro, Intel Core i5, 1.4 GHz, 16 GB.
Load time
Time it takes to load the first time require() is called:
- ansi-colors -
0.965ms - chalk -
6.116ms
Benchmarks
# All Colors
ansi-colors x 529,231 ops/sec ±0.25% (92 runs sampled)
chalk x 557,332 ops/sec ±0.17% (98 runs sampled)
# Nested colors
ansi-colors x 102,504 ops/sec ±0.42% (90 runs sampled)
chalk x 107,208 ops/sec ±0.23% (97 runs sampled)
About
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Running Tests
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ yarn && yarn test
Related projects
You might also be interested in these projects:
- ansi-wrap: Create ansi colors by passing the open and close codes. | homepage
- strip-color: Strip ANSI color codes from a string. No dependencies. | homepage