What is yoctocolors?
The yoctocolors npm package is a lightweight library for styling terminal output with colors. It allows developers to easily add color to their console logs, making it easier to distinguish different types of messages.
What are yoctocolors's main functionalities?
Basic Coloring
This feature allows you to colorize text in the terminal. You can use different colors like red, green, and blue to make your console output more readable.
const yoctocolors = require('yoctocolors');
console.log(yoctocolors.red('This is a red text'));
console.log(yoctocolors.green('This is a green text'));
console.log(yoctocolors.blue('This is a blue text'));
Background Coloring
This feature allows you to change the background color of the text in the terminal. It supports various background colors like red, green, and blue.
const yoctocolors = require('yoctocolors');
console.log(yoctocolors.bgRed('This text has a red background'));
console.log(yoctocolors.bgGreen('This text has a green background'));
console.log(yoctocolors.bgBlue('This text has a blue background'));
Text Styling
This feature allows you to style the text with different attributes like bold, italic, and underline to emphasize certain parts of your console output.
const yoctocolors = require('yoctocolors');
console.log(yoctocolors.bold('This is bold text'));
console.log(yoctocolors.italic('This is italic text'));
console.log(yoctocolors.underline('This is underlined text'));
Other packages similar to yoctocolors
chalk
Chalk is a popular library for styling terminal output with colors. It offers a wide range of colors and styles, and it is known for its simplicity and ease of use. Compared to yoctocolors, Chalk has a larger community and more extensive documentation.
colors
Colors is another library for adding color and style to terminal output. It provides a variety of color and style options and is known for its straightforward API. While it offers similar functionalities to yoctocolors, it is slightly larger in size.
ansi-colors
Ansi-colors is a library for styling terminal output with ANSI escape codes. It is lightweight and fast, making it a good alternative to yoctocolors. It offers similar features but focuses more on performance and minimalism.
yoctocolors 🌈
The smallest and fastest command-line coloring package on the internet
Check out Chalk if you want something more mature and comprehensive.
Highlights
- Tiny
- Fast
- Handles nested colors
- Tree-shakeable
- No dependencies
- Actively maintained
Install
ESM:
npm install yoctocolors
Or CommonJS:
npm install yoctocolors-cjs
Usage
import colors from 'yoctocolors';
console.log(colors.red('Yo!'));
console.log(colors.blue(`Welcome to the ${colors.green('yoctocolors')} package!`));
You can also import colors as named imports:
import {red, blue, green} from 'yoctocolors';
console.log(red('Yo!'));
console.log(blue(`Welcome to the ${green('yoctocolors')} package!`));
This package supports basic color detection. Colors can be forcefully enabled by setting the FORCE_COLOR
environment variable to 1
and can be forcefully disabled by setting NO_COLOR
or NODE_DISABLE_COLORS
to any value. More info.
Styles
Modifiers
reset
- Reset the current style.bold
- Make the text bold.dim
- Make the text have lower opacity.italic
- Make the text italic. (Not widely supported)underline
- Put a horizontal line above the text. (Not widely supported)overline
- Put a horizontal line below the text. (Not widely supported)inverse
- Invert background and foreground colors.hidden
- Print the text but make it invisible.strikethrough
- Put a horizontal line through the center of the text. (Not widely supported)
Colors
black
red
green
yellow
blue
magenta
cyan
white
gray
redBright
greenBright
yellowBright
blueBright
magentaBright
cyanBright
whiteBright
Background colors
bgBlack
bgRed
bgGreen
bgYellow
bgBlue
bgMagenta
bgCyan
bgWhite
bgGray
bgRedBright
bgGreenBright
bgYellowBright
bgBlueBright
bgMagentaBright
bgCyanBright
bgWhiteBright
Prior art
Yes
Benchmark
$ ./benchmark.js
┌─────────┬────────────────┬─────────────┐
│ (index) │ library │ ops/sec │
├─────────┼────────────────┼─────────────┤
│ 0 │ 'yoctocolors' │ '8,000,000' │
│ 1 │ 'colorette' │ '8,000,000' │
│ 2 │ 'picocolors' │ '8,000,000' │
│ 3 │ 'nanocolors' │ '5,988,024' │
│ 4 │ 'chalk' │ '4,807,692' │
│ 5 │ 'kleur/colors' │ '4,807,692' │
│ 6 │ 'kleur' │ '4,784,689' │
│ 7 │ 'ansi-colors' │ '2,178,649' │
│ 8 │ 'cli-color' │ '585,138' │
└─────────┴────────────────┴─────────────┘
See benchmark.js.
FAQ
What is yocto?
It was the smallest official unit prefix in the metric system until 2022. Much smaller than nano.
Related
- yoctodelay - Delay a promise a given amount of time
- chalk - Terminal string styling