.. | ||
colorette.d.ts | ||
index.js | ||
LICENSE.md | ||
package.json | ||
README.md |
Colorette
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 } = require("colorette")
Wrap your strings in one or more styles to produce the finish you're looking for.
console.log(bold(blue("Engage!")))
Or mix it with template literals to interpolate variables, expressions and create multi-line strings easily.
console.log(`
Beets are ${red("red")},
Plums are ${blue("blue")},
${bold("Colorette!")}.
`)
Using console.log
's string substitution can be useful too!
console.log(bold("Total: $%f"), 1.99)
You can even nest styles without breaking existing escape codes.
console.log(red(`Red Shirt ${blue("Blue Shirt")} Red Shirt`))
Feeling adventurous? Try the pipeline operator.
console.log("Make it so!" |> bold |> blue)
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.
red("Red Alert") //=> \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 } = require("colorette")
options.enabled = 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