Northern Pileated Marmoset

    colorette
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.0 • Public • Published

    Colorette CI

    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 strikethrough
    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
    

    License

    MIT

    Install

    npm i colorette@1.1.0

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    9.02 kB

    Total Files

    5

    Last publish

    Collaborators

    • jorgebucaran