Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marak/colors.js
get colors in your node.js console
https://github.com/marak/colors.js
Last synced: 2 days ago
JSON representation
get colors in your node.js console
- Host: GitHub
- URL: https://github.com/marak/colors.js
- Owner: Marak
- License: other
- Created: 2010-06-11T06:48:43.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2023-06-14T06:56:47.000Z (over 1 year ago)
- Last Synced: 2024-04-14T05:44:41.065Z (7 months ago)
- Language: JavaScript
- Homepage: https://github.com/Marak/colors.js
- Size: 371 KB
- Stars: 5,153
- Watchers: 54
- Forks: 447
- Open Issues: 88
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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=falsenode myapp.js --color
node myapp.js --color=true
node myapp.js --color=alwaysFORCE_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.*