# chalk > Terminal string styling done right [![Build Status](https://secure.travis-ci.org/sindresorhus/chalk.png?branch=master)](http://travis-ci.org/sindresorhus/chalk) [colors.js](https://github.com/Marak/colors.js) is currently the most popular string styling module, but it has serious deficiencies like extending String.prototype which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68). Although there are other ones, they either do too much or not enough. **Chalk is a clean and focused alternative.** ![screenshot](screenshot.png) ## Why - **Doesn't extend String.prototype** - Expressive API - Clean and focused - Auto-detects color support - Actively maintained - [Used by 150+ modules](https://npmjs.org/browse/depended/chalk) ## Install Install with [npm](https://npmjs.org/package/chalk): `npm install --save chalk` ## Example Chalk comes with an easy to use composable API where you just chain and nest the styles you want. ```js var chalk = require('chalk'); // style a string console.log( chalk.blue('Hello world!') ); // combine styled and normal strings console.log( chalk.blue('Hello'), 'World' + chalk.red('!') ); // compose multiple styles using the chainable API console.log( chalk.blue.bgRed.bold('Hello world!') ); // nest styles console.log( chalk.red('Hello', chalk.underline.bgBlue('world') + '!') ); // pass in multiple arguments console.log( chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz') ); ``` You can easily define your own themes. ```js var chalk = require('chalk'); var error = chalk.bold.red; console.log(error('Error!')); ``` ## API ### chalk.`