Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including ansi-styles with all npm packages installed. Try it out:

var ansiStyles = require("ansi-styles")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

ansi-styles v4.2.1

ANSI escape codes for styling strings in the terminal

ansi-styles Build Status

ANSI escape codes for styling strings in the terminal

You probably want the higher-level chalk module for styling your strings.


$ npm install ansi-styles


const style = require('ansi-styles');

console.log(`${}Hello world!${}`);

// Color conversion between 16/256/truecolor
// NOTE: If conversion goes to 16 colors or 256 colors, the original color
//       may be degraded to fit that color palette. This means terminals
//       that do not support 16 million colors will best-match the
//       original color.
console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close);
console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close);
console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close);


Each style has an open and close property.



  • reset
  • bold
  • dim
  • italic (Not widely supported)
  • underline
  • inverse
  • hidden
  • strikethrough (Not widely supported)


  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • blackBright (alias: gray, grey)
  • redBright
  • greenBright
  • yellowBright
  • blueBright
  • magentaBright
  • cyanBright
  • whiteBright

Background colors

  • bgBlack
  • bgRed
  • bgGreen
  • bgYellow
  • bgBlue
  • bgMagenta
  • bgCyan
  • bgWhite
  • bgBlackBright (alias: bgGray, bgGrey)
  • bgRedBright
  • bgGreenBright
  • bgYellowBright
  • bgBlueBright
  • bgMagentaBright
  • bgCyanBright
  • bgWhiteBright

Advanced usage

By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.

  • style.modifier
  • style.color
  • style.bgColor

Raw escape codes (i.e. without the CSI escape prefix \u001B[ and render mode postfix m) are available under, which returns a Map with the open codes as keys and close codes as values.

//=> 39

256 / 16 million (TrueColor) support

ansi-styles uses the color-convert package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors.

The following color spaces from color-convert are supported:

  • rgb
  • hex
  • keyword
  • hsl
  • hsv
  • hwb
  • ansi
  • ansi256

To use these, call the associated conversion function with the intended output, for example:

style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code
style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code

style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code

style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code
style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code


  • ansi-escapes - ANSI escape codes for manipulating the terminal


Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free