@timhall/ansi-colors
v5.0.0
Published
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).
Downloads
28,553
Maintainers
Readme
@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 :heart: 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
~~strikethrough~~
reset
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
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
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