Color your terminal using pure idiomatic JavaScript.
Colorette is a Node.js library for embellishing your CLI tools with colors and styles using ANSI escape codes.
- Up to ~10x faster than the alternatives (run the benchmarks).
- No wonky prototype-based method chains.
- Automatic color support detection.
- ~80 LOC and no dependencies.
NO_COLOR
friendly.
Quickstart
npm i colorette
Load the styles you need. Here's the list of the styles you can use.
const red blue bold =
Wrap your strings in one or more styles to produce the finish you're looking for.
console
Or mix it with template literals to interpolate variables, expressions and create multi-line strings easily.
console
Using console.log
's string substitution can be useful too!
console
You can even nest styles without breaking existing escape codes.
console
Feeling adventurous? Try the pipeline operator.
console
Supported styles
Colorette supports the standard and bright color variations out-of-the-box. For true color support see this issue.
Colors | Background Colors | Bright Colors | Bright Background Colors | Modifiers |
---|---|---|---|---|
black | bgBlack | blackBright | bgBlackBright | dim |
red | bgRed | redBright | bgRedBright | bold |
green | bgGreen | greenBright | bgGreenBright | hidden |
yellow | bgYellow | yellowBright | bgYellowBright | italic |
blue | bgBlue | blueBright | bgBlueBright | underline |
magenta | bgMagenta | magentaBright | bgMagentaBright | |
cyan | bgCyan | cyanBright | bgCyanBright | reset |
white | bgWhite | whiteBright | bgWhiteBright | |
gray |
API
style(string)
Returns a string wrapped in the corresponding ANSI escape code.
//=> \u001b[31mRed Alert\u001b[39m
options.enabled
Colorette is enabled if your terminal supports color, FORCE_COLOR=1
or if NO_COLOR
isn't in the environment, but you can always override it when you need to.
const options = optionsenabled = false
Run the benchmarks
npm i -C bench && node bench
# Using Styles chalk × 14,468 ops/sec colorette × 901,148 ops/sec # Combining Styles chalk × 44,067 ops/sec colorette × 2,566,778 ops/sec # Nesting Styles chalk × 40,165 ops/sec colorette × 506,494 ops/sec