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 with npm:
$ npm install --save ansi-colors@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.
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!'));console.log(c.yellow(`foo ${c.red(c.bold('red'))} bar ${c.cyan('cyan')} baz`));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'));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'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.)
-
dim
-
bold
-
hidden
-
italic
-
underline
-
inverse
-
strikethrough -
reset
Libraries tested
- @timhall/ansi-colors v5.0.0
- chalk v3.0.0
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)
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 testYou 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