28

~colorette~ color your terminal using pure idiomatic JavaScript

 4 years ago
source link: https://github.com/jorgebucaran/colorette
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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 .

  • No wonky prototype-based method chains.
  • Automatic color support detection.
  • ~80 LOC and no dependencies.
  • NO_COLOR friendly.

Quickstart

npm i colorette

Import theyou need.'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.

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

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
colorette × 759,429 ops/sec
chalk × 524,034 ops/sec
kleur × 490,347 ops/sec
colors × 255,661 ops/sec
ansi-colors × 317,605 ops/sec

License

MIT


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK