Home

Awesome

figures

Unicode symbols with fallbacks for older terminals

and more...

Terminals such as Windows Console Host (and CMD) only support a limited character set.

Install

npm install figures

Usage

import figures, {mainSymbols, fallbackSymbols, replaceSymbols} from 'figures';

console.log(figures.tick);
// On terminals with Unicode symbols:  ✔
// On other terminals:                 √

console.log(mainSymbols.tick);
// On all terminals:  ✔

console.log(fallbackSymbols.tick);
// On all terminals:  √

console.log(replaceSymbols('✔ check'));
// On terminals with Unicode symbols:  ✔ check
// On other terminals:                 √ check

API

figures (default export)

Type: object

Symbols to use on any terminal.

mainSymbols

Symbols to use when the terminal supports Unicode symbols.

fallbackSymbols

Symbols to use when the terminal does not support Unicode symbols.

replaceSymbols(string, options?)

Returns the input with replaced fallback symbols if the terminal has poor Unicode support.

All the below figures are attached to the default export as shown in the example above.

string

Type: string

String where the Unicode symbols will be replaced with fallback symbols depending on the terminal.

options

Type: object

useFallback

Type: boolean
Default: true if the terminal has poor Unicode support

Whether to replace symbols with fallbacks.

This can be set to true to always use fallback symbols, whether the terminal has poor Unicode support or not.

import {replaceSymbols} from 'figures';

console.log(replaceSymbols('✔ check', {useFallback: true}));
// On terminals with Unicode symbols:  √ check
// On other terminals:                 √ check

Figures

Fallback characters are only shown when they differ from the Main ones.

NameMainFallback
tick
infoi
warning
cross×
square
squareSmall
squareSmallFilled
squareDarkShade
squareMediumShade
squareLightShade
squareTop
squareBottom
squareLeft
squareRight
squareCenter
circle( )
circleFilled(*)
circleDotted( )
circleDouble( )
circleCircle(○)
circleCross(×)
circlePipe(│)
circleQuestionMark?⃝ (?)
radioOn(*)
radioOff( )
checkboxOn[×]
checkboxOff[ ]
checkboxCircleOn(×)
checkboxCircleOff( )
questionMarkPrefix?⃝
bullet
dot
ellipsis
pointer>
pointerSmall
triangleUp
triangleUpSmall
triangleUpOutline
triangleDown
triangleDownSmall
triangleLeft
triangleLeftSmall
triangleRight
triangleRightSmall
lozenge
lozengeOutline
home
hamburger
smiley
mustache┌─┐
heart
star
play
musicNote
musicNoteBeamed
nodejs
arrowUp
arrowDown
arrowLeft
arrowRight
arrowLeftRight
arrowUpDown
almostEqual
notEqual
lessOrEqual
greaterOrEqual
identical
infinity
subscriptZero
subscriptOne
subscriptTwo
subscriptThree
subscriptFour
subscriptFive
subscriptSix
subscriptSeven
subscriptEight
subscriptNine
oneHalf½
oneThird
oneQuarter¼
oneFifth
oneSixth
oneSeventh1/7
oneEighth
oneNinth1/9
oneTenth1/10
twoThirds
twoFifths
threeQuarters¾
threeFifths
threeEighths
fourFifths
fiveSixths
fiveEighths
sevenEighths
line
lineBold
lineDouble
lineDashed0
lineDashed1
lineDashed2
lineDashed3
lineDashed4
lineDashed5
lineDashed6
lineDashed7
lineDashed8
lineDashed9
lineDashed10
lineDashed11
lineDashed12
lineDashed13
lineDashed14
lineDashed15
lineVertical
lineVerticalBold
lineVerticalDouble
lineVerticalDashed0
lineVerticalDashed1
lineVerticalDashed2
lineVerticalDashed3
lineVerticalDashed4
lineVerticalDashed5
lineVerticalDashed6
lineVerticalDashed7
lineVerticalDashed8
lineVerticalDashed9
lineVerticalDashed10
lineVerticalDashed11
lineDownLeft
lineDownLeftArc
lineDownBoldLeftBold
lineDownBoldLeft
lineDownLeftBold
lineDownDoubleLeftDouble
lineDownDoubleLeft
lineDownLeftDouble
lineDownRight
lineDownRightArc
lineDownBoldRightBold
lineDownBoldRight
lineDownRightBold
lineDownDoubleRightDouble
lineDownDoubleRight
lineDownRightDouble
lineUpLeft
lineUpLeftArc
lineUpBoldLeftBold
lineUpBoldLeft
lineUpLeftBold
lineUpDoubleLeftDouble
lineUpDoubleLeft
lineUpLeftDouble
lineUpRight
lineUpRightArc
lineUpBoldRightBold
lineUpBoldRight
lineUpRightBold
lineUpDoubleRightDouble
lineUpDoubleRight
lineUpRightDouble
lineUpDownLeft
lineUpBoldDownBoldLeftBold
lineUpBoldDownBoldLeft
lineUpDownLeftBold
lineUpBoldDownLeftBold
lineUpDownBoldLeftBold
lineUpDownBoldLeft
lineUpBoldDownLeft
lineUpDoubleDownDoubleLeftDouble
lineUpDoubleDownDoubleLeft
lineUpDownLeftDouble
lineUpDownRight
lineUpBoldDownBoldRightBold
lineUpBoldDownBoldRight
lineUpDownRightBold
lineUpBoldDownRightBold
lineUpDownBoldRightBold
lineUpDownBoldRight
lineUpBoldDownRight
lineUpDoubleDownDoubleRightDouble
lineUpDoubleDownDoubleRight
lineUpDownRightDouble
lineDownLeftRight
lineDownBoldLeftBoldRightBold
lineDownLeftBoldRightBold
lineDownBoldLeftRight
lineDownBoldLeftBoldRight
lineDownBoldLeftRightBold
lineDownLeftRightBold
lineDownLeftBoldRight
lineDownDoubleLeftDoubleRightDouble
lineDownDoubleLeftRight
lineDownLeftDoubleRightDouble
lineUpLeftRight
lineUpBoldLeftBoldRightBold
lineUpLeftBoldRightBold
lineUpBoldLeftRight
lineUpBoldLeftBoldRight
lineUpBoldLeftRightBold
lineUpLeftRightBold
lineUpLeftBoldRight
lineUpDoubleLeftDoubleRightDouble
lineUpDoubleLeftRight
lineUpLeftDoubleRightDouble
lineUpDownLeftRight
lineUpBoldDownBoldLeftBoldRightBold
lineUpDownBoldLeftBoldRightBold
lineUpBoldDownLeftBoldRightBold
lineUpBoldDownBoldLeftRightBold
lineUpBoldDownBoldLeftBoldRight
lineUpBoldDownLeftRight
lineUpDownBoldLeftRight
lineUpDownLeftBoldRight
lineUpDownLeftRightBold
lineUpBoldDownBoldLeftRight
lineUpDownLeftBoldRightBold
lineUpBoldDownLeftBoldRight
lineUpBoldDownLeftRightBold
lineUpDownBoldLeftBoldRight
lineUpDownBoldLeftRightBold
lineUpDoubleDownDoubleLeftDoubleRightDouble
lineUpDoubleDownDoubleLeftRight
lineUpDownLeftDoubleRightDouble
lineCross
lineBackslash
lineSlash

Other characters

If you cannot find the character you're looking for in the table above, please look at this full list of cross-platform terminal characters.

Unsupported terminals

The following terminals are not officially supported:

They can display most but not all of the symbols listed above.

Related