colorfy
v2.4.0
Published
Colorfy colorize your console with pretty ansi color codes. It has static color methods and supports a chained colorization of your tty console output.
Downloads
1,198
Readme
Colorfy
Colorfy your console output with pretty ANSI colors.
Supports:
- Zero dependencies
- 256 ANSI color codes
- Pluralization
- Text indention
- Static color methods
Installation
npm i colorfy --save
Usage
import {colorfy} from 'colorfy'
const cf = colorfy()
console.log(cf.red('Hello').green('colorful').blue('World!').colorfy())
// or let colorfy print it out
cf.red('Hello').green('colorful').blue('World!').print()
// static methods
import {colorize} from 'colorfy'
const green = colorize.green('Green text')
const red = colorize.red('Red text')
Methods
The initial colorfy()
call in the example above returns a colorfy instance. All colorize methods are chainable.
Pass colorfy()
as last method to a chain to get a pretty colorful string.
Since version v2.0.0
, colofy returns all color methods as static methods too.
red(text, [styles])
Draws red textyellow(text, [styles])
Draws yellow textgreen(text, [styles])
Draws green textblue(text, [styles])
Draws blue textfire(text, [styles])
Draws fire red textorange(text, [styles])
Draws orange textazure(text, [styles])
Draws azure blue textlime(text, [styles])
Draws lime textpink(text, [styles])
Draws pink textplum(text, [styles])
Draws plum textturq(text, [styles])
Draws turquoise textored(text, [styles])
Draws orangered textdred(text, [styles])
Draws dark red textdgreen(text, [styles])
Draws dark green textdblue(text, [styles])
Draws dark blue textgrey(text, [styles])
Draws grey textdgrey(text, [styles])
Draws dark grey textddgrey(text, [styles])
Draws dark dark grey textlgrey(text, [styles])
Draws light grey textllgrey(text, [styles])
Draws light light grey textlbrown(text, [styles])
Draws light brown textblack(text, [styles])
Draws black textwhite(text, [styles])
Draws white texttxt(text, [styles])
Draws text in default color. Without any stylingansi(color, text, [styles])
Draws text in any ansi color. Must be a number between 0 and 255auto(text, [styles])
Calculates a cross number between 0 and 99 of the input and uses a color based on this cross number. This feature could be useful for logging of hash values.
Run node examples/colorfy.js
to see colorfy in action. It gives you a list of all ansi color codes.
The styles
argument is optional and defines the text style.
bold
Draws bold textitalic
Draws italic textunderline
Draws underlined textblink
Draws a flashing texttrim
Trims your text on both sides (See trim section below)rtrim
Trims your text on its right side (See trim section below)ltrim
Trims your text on its left (See trim section below)
bgred
Draws red backgroundbgyellow
Draws yellow backgroundbggreen
Draws green backgroundbgblue
Draws blue backgroundbgfire
Draws fire red backgroundbgorange
Draws orange backgroundbgazure
Draws azure blue backgroundbglime
Draws lime backgroundbgpink
Draws pink backgroundbgplum
Draws plum backgroundbgturq
Draws turquoise backgroundbgored
Draws orangered backgroundbgdred
Draws dark red backgroundbgdgreen
Draws dark green backgroundbgdblue
Draws dark blue backgroundbggrey
Draws grey backgroundbgdgrey
Draws dark grey backgroundbgddgrey
Draws dark dark grey backgroundbglgrey
Draws light grey backgroundbgllgrey
Draws light light grey backgroundbglbrown
Draws light brown background
Seperate stylings by a space cf.red('foo', 'bold underline')
Background colors
Background colors can be set as a style. See list above with all supported background styles
cf.black('Black text on yellow background', 'bgyellow');
Joining
Since v2.0.0
, auto joining was disabled by default. To enable joining of text blocks by a space, set the autoJoin
flag to true.
All texts getting joined by a space character if joining is enabled. The trim parameter can be used to avoid joining for a certain text block.
const cf = colorfy({ autoJoin: true })
cf.grey('(').green('20ms').grey(')').colorfy();
returns ( 20ms )
const cf = colorfy({ autoJoin: true })
cf.grey('(').green('20ms', 'trim').grey(')').colorfy();
returns (20ms)
(No space around the number)
Output
The colorfy()
method returns a colorfied string of the colorfy chain. Colorization can be skiped by passing false
as first argument to colorfy()
cf.red('All colors are beautiful').colorfy(); //Returns a colofied string
cf.red('All colors are beautiful').colorfy(false); //Returns a plain string
print([bool colorize])
The print method prints a colorfy chain to stdout. The comands below are the same
console.log(cf.red('All colors are beautiful').colorfy());
cf.red('All colors are beautiful').print();
write([bool colorize])
The write method writes a colorfy chain to stdout. It doesn't insert a trailing newline
cf.red('All colors ').write();
cf.green('are beautiful').write();
indent(num size)
Colorfy supports text indention. Indentions itself are always uncolorized. The indent method sets the indention for the next lines. It expects the indention size as its onliest argument. The size argument increase the current indention size.
indent(number)
const cf = colorfy()
cf.txt(' '.repeat(10)).white('WARNING!', 'bgred').nl()
cf.txt(' '.repeat(10)).white('The server is down!', 'bgred')
The code with usage of indent()
is quite smarter.
const cf = colorfy()
cf.indent(10)
cf.white('WARNING!', 'bgred').nl()
cf.white('The server is down!', 'bgred')
Please note, a call of indent()
inserts a line break.
reset()
Reset the indention and inserts a line break.
json(obj data, [num depth])
Colorizes a data construct. Dept is the maximum nesting depth, default value = 5.
const cf = colorfy()
cf.txt('JSON: ').json({
one: 'One'
two: 2,
three [
'Banana',
'Coconut'
]
}).print()
Pluralization
Texts can be pluralized. Add an [singular, plural, number]
array as a text block and colorfy returns the singular version if number === 1
otherwise the plural.
const cf = colorfy()
const passedTests = 35;
const failedTests = 1;
cf.green(passedTests).txt(['test passed', 'tests passed', passedTests]).print());
cf.red(failedTests).txt(['test failed', 'tests failed', failedTests]).print());
This example would render a red block
Config
Preset configurations can be changed by using the config()
method.
const cf = colorfy()
cf.config({
trim: true
})
cf.txt('(').green('13ms').txt(')') // Returns (13ms)
Preset configurations:
| Property | Description |
| ----------- | ----------------------------------------------------------------- |
| trim
| Enable word trimming ( Disabled by default ) |
| indention
| Set the default indention for the indent()
method. Default: 0
|
| autoJoin
| Joins text blocks by a space. Default: false
|
Author
(c) 2016 by Andi Heinkelein
Licensed under MIT license.