cli-color - Yet another colors and formatting for the console solution
Colors, formatting and other goodies for the console. This package won't mess with built-ins and provides neat way to predefine formatting patterns, see below.
Installation
$ npm install cli-color
Usage
Usage:
var clc = require('cli-color');
Output colored text:
console.log(clc.red('Text in red'));
Styles can be mixed:
console.log(clc.red.bgWhite.underline('Underlined red text on white background.'));
Styled text can be mixed with unstyled:
console.log(clc.red('red') + ' plain ' + clc.blue('blue'));
Best way is to predefine needed stylings and then use it:
var error = clc.red.bold;
var warn = clc.yellow;
var notice = clc.blue;
console.log(error('Error!'));
console.log(warn('Warning'));
console.log(notice('Notice'));
Supported are all ANSI colors and styles:
Styles
Styles will display correctly if font used in your console supports them.
- bold
- italic
- underline
- blink
- inverse
- strike
Colors
Foreground | Background | |
---|---|---|
black | bgBlack | ![]() |
red | bgRed | ![]() |
green | bgGreen | ![]() |
yellow | bgYellow | ![]() |
blue | bgBlue | ![]() |
magenta | bgMagenta | ![]() |
cyan | bgCyan | ![]() |
white | bgWhite | ![]() |
Bright variants
Foreground | Background | |
---|---|---|
blackBright | bgBlackBright | ![]() |
redBright | bgRedBright | ![]() |
greenBright | bgGreenBright | ![]() |
yellowBright | bgYellowBright | ![]() |
blueBright | bgBlueBright | ![]() |
magentaBright | bgMagentaBright | ![]() |
cyanBright | bgCyanBright | ![]() |
whiteBright | bgWhiteBright | ![]() |
xTerm colors (256 colors table)
Not supported on Windows and some terminals. However if used in not supported environment, the closest color from basic (16 colors) palette is chosen.
Usage:
var msg = clc.xterm(202).bgXterm(236);
console.log(msg('Orange text on dark gray background'));
Color table:
0 | ![]() |
1 | ![]() |
2 | ![]() |
3 | ![]() |
4 | ![]() |
5 | ![]() |
6 | ![]() |
7 | ![]() |
8 | ![]() |
9 | ![]() |
10 | ![]() |
11 | ![]() |
12 | ![]() |
13 | ![]() |
14 | ![]() |
15 | ![]() |
16 | ![]() |
17 | ![]() |
18 | ![]() |
19 | ![]() |
20 | ![]() |
21 | ![]() |
||||
22 | ![]() |
23 | ![]() |
24 | ![]() |
25 | ![]() |
26 | ![]() |
27 | ![]() |
||||
28 | ![]() |
29 | ![]() |
30 | ![]() |
31 | ![]() |
32 | ![]() |
33 | ![]() |
||||
34 | ![]() |
35 | ![]() |
36 | ![]() |
37 | ![]() |
38 | ![]() |
39 | ![]() |
||||
40 | ![]() |
41 | ![]() |
42 | ![]() |
43 | ![]() |
44 | ![]() |
45 | ![]() |
||||
46 | ![]() |
47 | ![]() |
48 | ![]() |
49 | ![]() |
50 | ![]() |
51 | ![]() |
||||
52 | ![]() |
53 | ![]() |
54 | ![]() |
55 | ![]() |
56 | ![]() |
57 | ![]() |
||||
58 | ![]() |
59 | ![]() |
60 | ![]() |
61 | ![]() |
62 | ![]() |
63 | ![]() |
||||
64 | ![]() |
65 | ![]() |
66 | ![]() |
67 | ![]() |
68 | ![]() |
69 | ![]() |
||||
70 | ![]() |
71 | ![]() |
72 | ![]() |
73 | ![]() |
74 | ![]() |
75 | ![]() |
||||
76 | ![]() |
77 | ![]() |
78 | ![]() |
79 | ![]() |
80 | ![]() |
81 | ![]() |
||||
82 | ![]() |
83 | ![]() |
84 | ![]() |
85 | ![]() |
86 | ![]() |
87 | ![]() |
||||
88 | ![]() |
89 | ![]() |
90 | ![]() |
91 | ![]() |
92 | ![]() |
93 | ![]() |
||||
94 | ![]() |
95 | ![]() |
96 | ![]() |
97 | ![]() |
98 | ![]() |
99 | ![]() |
||||
100 | ![]() |
101 | ![]() |
102 | ![]() |
103 | ![]() |
104 | ![]() |
105 | ![]() |
||||
106 | ![]() |
107 | ![]() |
108 | ![]() |
109 | ![]() |
110 | ![]() |
111 | ![]() |
||||
112 | ![]() |
113 | ![]() |
114 | ![]() |
115 | ![]() |
116 | ![]() |
117 | ![]() |
||||
118 | ![]() |
119 | ![]() |
120 | ![]() |
121 | ![]() |
122 | ![]() |
123 | ![]() |
||||
124 | ![]() |
125 | ![]() |
126 | ![]() |
127 | ![]() |
128 | ![]() |
129 | ![]() |
||||
130 | ![]() |
131 | ![]() |
132 | ![]() |
133 | ![]() |
134 | ![]() |
135 | ![]() |
||||
136 | ![]() |
137 | ![]() |
138 | ![]() |
139 | ![]() |
140 | ![]() |
141 | ![]() |
||||
142 | ![]() |
143 | ![]() |
144 | ![]() |
145 | ![]() |
146 | ![]() |
147 | ![]() |
||||
148 | ![]() |
149 | ![]() |
150 | ![]() |
151 | ![]() |
152 | ![]() |
153 | ![]() |
||||
154 | ![]() |
155 | ![]() |
156 | ![]() |
157 | ![]() |
158 | ![]() |
159 | ![]() |
||||
160 | ![]() |
161 | ![]() |
162 | ![]() |
163 | ![]() |
164 | ![]() |
165 | ![]() |
||||
166 | ![]() |
167 | ![]() |
168 | ![]() |
169 | ![]() |
170 | ![]() |
171 | ![]() |
||||
172 | ![]() |
173 | ![]() |
174 | ![]() |
175 | ![]() |
176 | ![]() |
177 | ![]() |
||||
178 | ![]() |
179 | ![]() |
180 | ![]() |
181 | ![]() |
182 | ![]() |
183 | ![]() |
||||
184 | ![]() |
185 | ![]() |
186 | ![]() |
187 | ![]() |
188 | ![]() |
189 | ![]() |
||||
190 | ![]() |
191 | ![]() |
192 | ![]() |
193 | ![]() |
194 | ![]() |
195 | ![]() |
||||
196 | ![]() |
197 | ![]() |
198 | ![]() |
199 | ![]() |
200 | ![]() |
201 | ![]() |
||||
202 | ![]() |
203 | ![]() |
204 | ![]() |
205 | ![]() |
206 | ![]() |
207 | ![]() |
||||
208 | ![]() |
209 | ![]() |
210 | ![]() |
211 | ![]() |
212 | ![]() |
213 | ![]() |
||||
214 | ![]() |
215 | ![]() |
216 | ![]() |
217 | ![]() |
218 | ![]() |
219 | ![]() |
||||
220 | ![]() |
221 | ![]() |
222 | ![]() |
223 | ![]() |
224 | ![]() |
225 | ![]() |
||||
226 | ![]() |
227 | ![]() |
228 | ![]() |
229 | ![]() |
230 | ![]() |
231 | ![]() |
||||
232 | ![]() |
233 | ![]() |
234 | ![]() |
235 | ![]() |
236 | ![]() |
237 | ![]() |
||||
238 | ![]() |
239 | ![]() |
240 | ![]() |
241 | ![]() |
242 | ![]() |
243 | ![]() |
||||
244 | ![]() |
245 | ![]() |
246 | ![]() |
247 | ![]() |
248 | ![]() |
249 | ![]() |
||||
250 | ![]() |
251 | ![]() |
252 | ![]() |
253 | ![]() |
254 | ![]() |
255 | ![]() |
Terminal reset
Terminal can be cleared with clc.reset
console.log(clc.reset);
Move around functions
clc.move(x, y)
Move cursor x columns and y rows away. Values can be positive or negative, e.g.:
process.stdout.write(clc.move(-2, -2)); // Move cursors two columns and two rows back
clc.moveTo(x, y)
Absolute move. Sets cursor position at x column and y row
process.stdout.write(clc.moveTo(0, 0)); // Move cursor to first row and first column in terminal window
clc.bol([n[, erase]])
Move cursor to the begining of the line, with n we may specify how many lines away we want to move, value can be positive or negative. Additionally we may decide to clear lines content with erase
process.stdout.write(clc.bol(-2)); // Move cursor two lines back and place it at begin of the line
clc.up(n)
Move cursor up n rows
clc.down(n)
Move cursor down n rows
clc.right(n)
Move cursor right n columns
clc.left(n)
Move cursor left n columns
Terminal characteristics
clc.width
Returns terminal width
clc.height
Returns terminal height
Additional functionalities (provided as separate modules)
trim(formatedText)
Trims ANSI formatted string to plain text
var ansiTrim = require('cli-color/lib/trim');
var plain = ansiTrim(formatted);
throbber(interval[, format])
Displays throbber on given interval. Interval should be clock.interval object Optionally throbber output can be formatted with given format
var interval = require('clock/lib/interval')
, ansiThrobber = require('cli-color/lib/throbber');
var i = interval(200, true);
// Display throbber while interval is ticking
ansiThrobber(i);
// at any time you can stop/start interval
// When interval is stopped throbber doesn't show
i.stop();
Tests 
$ npm test