ansi-escape-sequences
A simple library containing all known terminal ansi escape codes and sequences. Useful for adding colour to your command-line output, or building a dynamic text user interface.
API Reference
Example
import ansi from 'ansi-escape-sequences'
ansi.cursor
cursor-related sequences
Kind: static property of ansi-escape-sequences
cursor.hide
Hides the cursor
Kind: static property of cursor
cursor.show
Shows the cursor
Kind: static property of cursor
cursor.up([lines]) ⇒ string
Moves the cursor lines
cells up. If the cursor is already at the edge of the screen, this has no effect
Kind: static method of cursor
Param | Type | Default |
---|
[lines] | number | 1 |
cursor.down([lines]) ⇒ string
Moves the cursor lines
cells down. If the cursor is already at the edge of the screen, this has no effect
Kind: static method of cursor
Param | Type | Default |
---|
[lines] | number | 1 |
cursor.forward([lines]) ⇒ string
Moves the cursor lines
cells forward. If the cursor is already at the edge of the screen, this has no effect
Kind: static method of cursor
Param | Type | Default |
---|
[lines] | number | 1 |
cursor.back([lines]) ⇒ string
Moves the cursor lines
cells back. If the cursor is already at the edge of the screen, this has no effect
Kind: static method of cursor
Param | Type | Default |
---|
[lines] | number | 1 |
cursor.nextLine([lines]) ⇒ string
Moves cursor to beginning of the line n lines down.
Kind: static method of cursor
Param | Type | Default |
---|
[lines] | number | 1 |
cursor.previousLine([lines]) ⇒ string
Moves cursor to beginning of the line n lines up.
Kind: static method of cursor
Param | Type | Default |
---|
[lines] | number | 1 |
cursor.horizontalAbsolute(n) ⇒ string
Moves the cursor to column n.
Kind: static method of cursor
Param | Type | Description |
---|
n | number | column number |
cursor.position(n, m) ⇒ string
Moves the cursor to row n, column m. The values are 1-based, and default to 1 (top left corner) if omitted.
Kind: static method of cursor
Param | Type | Description |
---|
n | number | row number |
m | number | column number |
ansi.erase
erase sequences
Kind: static property of ansi-escape-sequences
erase.display(n) ⇒ string
Clears part of the screen. If n is 0 (or missing), clear from cursor to end of screen. If n is 1, clear from cursor to beginning of the screen. If n is 2, clear entire screen.
Kind: static method of erase
erase.inLine(n) ⇒ string
Erases part of the line. If n is zero (or missing), clear from cursor to the end of the line. If n is one, clear from cursor to beginning of the line. If n is two, clear entire line. Cursor position does not change.
Kind: static method of erase
ansi.style : enum
Various formatting styles (aka Select Graphic Rendition codes).
Kind: static enum of ansi-escape-sequences
Properties
Name | Type | Default |
---|
reset | string | "\u001b[0m" |
bold | string | "\u001b[1m" |
italic | string | "\u001b[3m" |
underline | string | "\u001b[4m" |
fontDefault | string | "\u001b[10m" |
font2 | string | "\u001b[11m" |
font3 | string | "\u001b[12m" |
font4 | string | "\u001b[13m" |
font5 | string | "\u001b[14m" |
font6 | string | "\u001b[15m" |
imageNegative | string | "\u001b[7m" |
imagePositive | string | "\u001b[27m" |
black | string | "\u001b[30m" |
red | string | "\u001b[31m" |
green | string | "\u001b[32m" |
yellow | string | "\u001b[33m" |
blue | string | "\u001b[34m" |
magenta | string | "\u001b[35m" |
cyan | string | "\u001b[36m" |
white | string | "\u001b[37m" |
grey | string | "\u001b[90m" |
gray | string | "\u001b[90m" |
brightRed | string | "\u001b[91m" |
brightGreen | string | "\u001b[92m" |
brightYellow | string | "\u001b[93m" |
brightBlue | string | "\u001b[94m" |
brightMagenta | string | "\u001b[95m" |
brightCyan | string | "\u001b[96m" |
brightWhite | string | "\u001b[97m" |
"bg-black" | string | "\u001b[40m" |
"bg-red" | string | "\u001b[41m" |
"bg-green" | string | "\u001b[42m" |
"bg-yellow" | string | "\u001b[43m" |
"bg-blue" | string | "\u001b[44m" |
"bg-magenta" | string | "\u001b[45m" |
"bg-cyan" | string | "\u001b[46m" |
"bg-white" | string | "\u001b[47m" |
"bg-grey" | string | "\u001b[100m" |
"bg-gray" | string | "\u001b[100m" |
"bg-brightRed" | string | "\u001b[101m" |
"bg-brightGreen" | string | "\u001b[102m" |
"bg-brightYellow" | string | "\u001b[103m" |
"bg-brightBlue" | string | "\u001b[104m" |
"bg-brightMagenta" | string | "\u001b[105m" |
"bg-brightCyan" | string | "\u001b[106m" |
"bg-brightWhite" | string | "\u001b[107m" |
Example
console.log(ansi.style.red + 'this is red' + ansi.style.reset)
ansi.rgb(r, g, b) ⇒ string
Returns a 24-bit "true colour" foreground colour escape sequence.
Kind: static method of ansi-escape-sequences
Param | Type | Description |
---|
r | number | Red value. |
g | number | Green value. |
b | number | Blue value. |
Example
> ansi.rgb(120, 0, 120)
'\u001b[38;2;120;0;120m'
ansi.bgRgb(r, g, b) ⇒ string
Returns a 24-bit "true colour" background colour escape sequence.
Kind: static method of ansi-escape-sequences
Param | Type | Description |
---|
r | number | Red value. |
g | number | Green value. |
b | number | Blue value. |
Example
> ansi.bgRgb(120, 0, 120)
'\u001b[48;2;120;0;120m'
ansi.styles(styles) ⇒ string
Returns an ansi sequence setting one or more styles.
Kind: static method of ansi-escape-sequences
Param | Type | Description |
---|
styles | string | Array.<string> | One or more style strings. |
Example
> ansi.styles('green')
'\u001b[32m'
> ansi.styles([ 'green', 'underline' ])
'\u001b[32m\u001b[4m'
> ansi.styles([ 'bg-red', 'rgb(200,200,200)' ])
'\u001b[41m\u001b[38;2;200;200;200m'
ansi.format(str, [styleArray]) ⇒ string
A convenience function, applying the styles provided in styleArray
to the input string.
Partial, inline styling can also be applied using the syntax [style-list]{text to format}
anywhere within the input string, where style-list
is a space-separated list of styles from ansi.style. For example [bold white bg-red]{bold white text on a red background}
.
24-bit "true colour" values can be set using rgb(n,n,n)
syntax (no spaces), for example [rgb(255,128,0) underline]{orange underlined}
. Background 24-bit colours can be set using bg-rgb(n,n,n)
syntax.
Kind: static method of ansi-escape-sequences
Param | Type | Description |
---|
str | string | The string to format. Can also include inline-formatting using the syntax [style-list]{text to format} anywhere within the string. |
[styleArray] | string | Array.<string> | One or more style strings to apply to the input string. Valid strings are any property from the ansi.style object (e.g. red or bg-red ), rgb(n,n,n) or bg-rgb(n,n,n) . |
Example
> ansi.format('what?', 'green')
'\u001b[32mwhat?\u001b[0m'
> ansi.format('what?', ['green', 'bold'])
'\u001b[32m\u001b[1mwhat?\u001b[0m'
> ansi.format('something', ['rgb(255,128,0)', 'bold'])
'\u001b[38;2;255;128;0m\u001b[1msomething\u001b[0m'
> ansi.format('Inline styling: [rgb(255,128,0) bold]{something}')
'Inline styling: \u001b[38;2;255;128;0m\u001b[1msomething\u001b[0m'
> ansi.format('Inline styling: [bg-rgb(255,128,0) bold]{something}')
'Inline styling: \u001b[48;2;255;128;0m\u001b[1msomething\u001b[0m'
Load anywhere
This library is compatible with Node.js, the Web and any style of module loader. It can be loaded anywhere, natively without transpilation.
Node.js:
const ansi = require('ansi-escape-sequences')
Within Node.js with ECMAScript Module support enabled:
import ansi from 'ansi-escape-sequences'
Within a modern browser ECMAScript Module:
import ansi from './node_modules/ansi-escape-sequences/dist/index.mjs'
© 2014-25 Lloyd Brookes <opensource@75lb.com>.
Tested by test-runner. Documented by jsdoc-to-markdown.