222 lines
4.5 KiB
Markdown
222 lines
4.5 KiB
Markdown
# colors.js
|
|
[![Build Status](https://travis-ci.org/Marak/colors.js.svg?branch=master)](https://travis-ci.org/Marak/colors.js)
|
|
[![version](https://img.shields.io/npm/v/colors.svg)](https://www.npmjs.org/package/colors)
|
|
[![dependencies](https://david-dm.org/Marak/colors.js.svg)](https://david-dm.org/Marak/colors.js)
|
|
[![devDependencies](https://david-dm.org/Marak/colors.js/dev-status.svg)](https://david-dm.org/Marak/colors.js#info=devDependencies)
|
|
|
|
Please check out the [roadmap](ROADMAP.md) for upcoming features and releases. Please open Issues to provide feedback, and check the `develop` branch for the latest bleeding-edge updates.
|
|
|
|
## get color and style in your node.js console
|
|
|
|
![Demo](https://raw.githubusercontent.com/Marak/colors.js/master/screenshots/colors.png)
|
|
|
|
## Installation
|
|
|
|
npm install colors
|
|
|
|
## colors and styles!
|
|
|
|
### text colors
|
|
|
|
- black
|
|
- red
|
|
- green
|
|
- yellow
|
|
- blue
|
|
- magenta
|
|
- cyan
|
|
- white
|
|
- gray
|
|
- grey
|
|
|
|
### bright text colors
|
|
|
|
- brightRed
|
|
- brightGreen
|
|
- brightYellow
|
|
- brightBlue
|
|
- brightMagenta
|
|
- brightCyan
|
|
- brightWhite
|
|
|
|
### background colors
|
|
|
|
- bgBlack
|
|
- bgRed
|
|
- bgGreen
|
|
- bgYellow
|
|
- bgBlue
|
|
- bgMagenta
|
|
- bgCyan
|
|
- bgWhite
|
|
- bgGray
|
|
- bgGrey
|
|
|
|
### bright background colors
|
|
|
|
- bgBrightRed
|
|
- bgBrightGreen
|
|
- bgBrightYellow
|
|
- bgBrightBlue
|
|
- bgBrightMagenta
|
|
- bgBrightCyan
|
|
- bgBrightWhite
|
|
|
|
### styles
|
|
|
|
- reset
|
|
- bold
|
|
- dim
|
|
- italic
|
|
- underline
|
|
- inverse
|
|
- hidden
|
|
- strikethrough
|
|
|
|
### extras
|
|
|
|
- rainbow
|
|
- zebra
|
|
- america
|
|
- trap
|
|
- random
|
|
|
|
|
|
## Usage
|
|
|
|
By popular demand, `colors` now ships with two types of usages!
|
|
|
|
The super nifty way
|
|
|
|
```js
|
|
var colors = require('colors');
|
|
|
|
console.log('hello'.green); // outputs green text
|
|
console.log('i like cake and pies'.underline.red) // outputs red underlined text
|
|
console.log('inverse the color'.inverse); // inverses the color
|
|
console.log('OMG Rainbows!'.rainbow); // rainbow
|
|
console.log('Run the trap'.trap); // Drops the bass
|
|
|
|
```
|
|
|
|
or a slightly less nifty way which doesn't extend `String.prototype`
|
|
|
|
```js
|
|
var colors = require('colors/safe');
|
|
|
|
console.log(colors.green('hello')); // outputs green text
|
|
console.log(colors.red.underline('i like cake and pies')) // outputs red underlined text
|
|
console.log(colors.inverse('inverse the color')); // inverses the color
|
|
console.log(colors.rainbow('OMG Rainbows!')); // rainbow
|
|
console.log(colors.trap('Run the trap')); // Drops the bass
|
|
|
|
```
|
|
|
|
I prefer the first way. Some people seem to be afraid of extending `String.prototype` and prefer the second way.
|
|
|
|
If you are writing good code you will never have an issue with the first approach. If you really don't want to touch `String.prototype`, the second usage will not touch `String` native object.
|
|
|
|
## Enabling/Disabling Colors
|
|
|
|
The package will auto-detect whether your terminal can use colors and enable/disable accordingly. When colors are disabled, the color functions do nothing. You can override this with a command-line flag:
|
|
|
|
```bash
|
|
node myapp.js --no-color
|
|
node myapp.js --color=false
|
|
|
|
node myapp.js --color
|
|
node myapp.js --color=true
|
|
node myapp.js --color=always
|
|
|
|
FORCE_COLOR=1 node myapp.js
|
|
```
|
|
|
|
Or in code:
|
|
|
|
```javascript
|
|
var colors = require('colors');
|
|
colors.enable();
|
|
colors.disable();
|
|
```
|
|
|
|
## Console.log [string substitution](http://nodejs.org/docs/latest/api/console.html#console_console_log_data)
|
|
|
|
```js
|
|
var name = 'Marak';
|
|
console.log(colors.green('Hello %s'), name);
|
|
// outputs -> 'Hello Marak'
|
|
```
|
|
|
|
## Custom themes
|
|
|
|
### Using standard API
|
|
|
|
```js
|
|
|
|
var colors = require('colors');
|
|
|
|
colors.setTheme({
|
|
silly: 'rainbow',
|
|
input: 'grey',
|
|
verbose: 'cyan',
|
|
prompt: 'grey',
|
|
info: 'green',
|
|
data: 'grey',
|
|
help: 'cyan',
|
|
warn: 'yellow',
|
|
debug: 'blue',
|
|
error: 'red'
|
|
});
|
|
|
|
// outputs red text
|
|
console.log("this is an error".error);
|
|
|
|
// outputs yellow text
|
|
console.log("this is a warning".warn);
|
|
```
|
|
|
|
### Using string safe API
|
|
|
|
```js
|
|
var colors = require('colors/safe');
|
|
|
|
// set single property
|
|
var error = colors.red;
|
|
error('this is red');
|
|
|
|
// set theme
|
|
colors.setTheme({
|
|
silly: 'rainbow',
|
|
input: 'grey',
|
|
verbose: 'cyan',
|
|
prompt: 'grey',
|
|
info: 'green',
|
|
data: 'grey',
|
|
help: 'cyan',
|
|
warn: 'yellow',
|
|
debug: 'blue',
|
|
error: 'red'
|
|
});
|
|
|
|
// outputs red text
|
|
console.log(colors.error("this is an error"));
|
|
|
|
// outputs yellow text
|
|
console.log(colors.warn("this is a warning"));
|
|
|
|
```
|
|
|
|
### Combining Colors
|
|
|
|
```javascript
|
|
var colors = require('colors');
|
|
|
|
colors.setTheme({
|
|
custom: ['red', 'underline']
|
|
});
|
|
|
|
console.log('test'.custom);
|
|
```
|
|
|
|
*Protip: There is a secret undocumented style in `colors`. If you find the style you can summon him.*
|