1.3.0 • Published 4 years ago

colorette-extended v1.3.0

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

Colorette npm.io

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.

  • ~1.5x faster than 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

Import the styles you need. Here's the list of 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!")))

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 also 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. See this issue if you were looking for TrueColor support.

ColorsBackground ColorsBright ColorsBright Background ColorsModifiers
blackbgBlackblackBrightbgBlackBrightdim
redbgRedredBrightbgRedBrightbold
greenbgGreengreenBrightbgGreenBrighthidden
yellowbgYellowyellowBrightbgYellowBrightitalic
bluebgBlueblueBrightbgBlueBrightunderline
magentabgMagentamagentaBrightbgMagentaBrightstrikethrough
cyanbgCyancyanBrightbgCyanBrightreset
whitebgWhitewhiteBrightbgWhiteBright
gray

API

style(string)

Returns a string wrapped in the corresponding ANSI escape codes.

red("Red Alert") //=> \u001b[31mRed Alert\u001b[39m

options.enabled

Color will be enabled if your terminal supports it, FORCE_COLOR is defined in process.env and if NO_COLOR isn't, but you can always override it if you want.

const { options } = require("colorette")

options.enabled = false

Run the benchmarks

npm i -C bench && node bench

License

MIT