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.
Example
import ansi from 'ansi-escape-sequences'
- ansi-escape-sequences
- .cursor
- .hide
- .show
- .up([lines]) ⇒
string
- .down([lines]) ⇒
string
- .forward([lines]) ⇒
string
- .back([lines]) ⇒
string
- .nextLine([lines]) ⇒
string
- .previousLine([lines]) ⇒
string
- .horizontalAbsolute(n) ⇒
string
- .position(n, m) ⇒
string
- .erase
- .display(n) ⇒
string
- .inLine(n) ⇒
string
- .display(n) ⇒
- .style :
enum
- .rgb(r, g, b) ⇒
string
- .bgRgb(r, g, b) ⇒
string
- .styles(styles) ⇒
string
- .format(str, [styleArray]) ⇒
string
- .cursor
cursor-related sequences
Kind: static property of ansi-escape-sequences
- .cursor
- .hide
- .show
- .up([lines]) ⇒
string
- .down([lines]) ⇒
string
- .forward([lines]) ⇒
string
- .back([lines]) ⇒
string
- .nextLine([lines]) ⇒
string
- .previousLine([lines]) ⇒
string
- .horizontalAbsolute(n) ⇒
string
- .position(n, m) ⇒
string
Hides the cursor
Kind: static property of cursor
Shows the cursor
Kind: static property of cursor
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 |
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 |
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 |
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 |
Moves cursor to beginning of the line n lines down.
Kind: static method of cursor
Param | Type | Default |
---|---|---|
[lines] | number |
1 |
Moves cursor to beginning of the line n lines up.
Kind: static method of cursor
Param | Type | Default |
---|---|---|
[lines] | number |
1 |
Moves the cursor to column n.
Kind: static method of cursor
Param | Type | Description |
---|---|---|
n | number |
column number |
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 |
erase sequences
Kind: static property of ansi-escape-sequences
- .erase
- .display(n) ⇒
string
- .inLine(n) ⇒
string
- .display(n) ⇒
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
Param | Type |
---|---|
n | number |
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
Param | Type |
---|---|
n | number |
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)
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'
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'
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'
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'
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-24 Lloyd Brookes <opensource@75lb.com>.
Tested by test-runner. Documented by jsdoc-to-markdown.