README.md 2.7 KB

Colorette

Easily set the color and style of text in the terminal.

  • No wonky prototype method-chain API.
  • Automatic color support detection.
  • Up to 2x faster than alternatives.
  • NO_COLOR friendly. 👌

Here's the first example to get you started.

import { blue, bold, underline } from "colorette"

console.log(
  blue("I'm blue"),
  bold(blue("da ba dee")),
  underline(bold(blue("da ba daa")))
)

Here's an example using template literals.

console.log(`
  There's a ${underline(blue("house"))},
  With a ${bold(blue("window"))},
  And a ${blue("corvette")}
  And everything is blue
`)

Of course, you can nest styles without breaking existing color sequences.

console.log(bold(`I'm ${blue(`da ba ${underline("dee")} da ba`)} daa`))

Feeling adventurous? Try the pipeline operator.

console.log("Da ba dee da ba daa" |> blue |> bold)

Installation

npm install colorette

API

<style>(string)

import { blue } from "colorette"

blue("I'm blue") //=> \x1b[34mI'm blue\x1b[39m

See [supported styles]().

options.enabled

Colorette automatically detects if your terminal can display color, but you can toggle color as needed.

import { options } from "colorette"

options.enabled = false

You can also force the use of color globally by setting FORCE_COLOR= or NO_COLOR= from the CLI.

$ FORCE_COLOR= node example.js >log
$ NO_COLOR= node example.js

Supported styles

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 strikethrough
cyan bgCyan cyanBright bgCyanBright reset
white bgWhite whiteBright bgWhiteBright
gray

Benchmarks

npm --prefix bench start

License

MIT