colors-option

Let users toggle colors

Usage no npm install needed!

<script type="module">
  import colorsOption from 'https://cdn.skypack.dev/colors-option';
</script>

README

Codecov Build Node Twitter Medium

Let users toggle colors.

This is a thin wrapper around the popular chalk colors library that adds support for:

Example

import colorsOption from 'colors-option'

const exampleLibrary = function ({ colors, ...otherLibraryOptions }) {
  const chalk = colorsOption({ colors })
  console.log(chalk.red('example'))
}

Install

npm install colors-option

This package is an ES module and must be loaded using an import or import() statement, not require().

API

colorsOption(options?)

options: object
Return value: Chalk instance

options

colors

Type: boolean
Default: undefined

Whether colors should be enabled/disabled, regardless of terminal support. Colors support is automatically detected, so this is only meant to override that default behavior.

The recommended approach is to:

  • Add a colors boolean programmatic option and/or CLI flag
  • Keep its default value undefined
  • Forward it to colors-option

Instead of using chalk/supports-color, this relies on Node.js built-in colors detection getColorDepth() which:

  • Supports the NO_COLOR and NODE_DISABLE_COLORS environment variables.
  • Does not guess colors detection based on the presence of a --colors CLI flag. This gives finer control and flexibility over how to expose this as a CLI flag.

Please note that chalk has a similar level option. However, that option is an integer from 0 to 3 which makes it hard to toggle colors while still keeping 256 colors or Truecolor.

stream

Type: Stream
Default: process.stdout

Stream used to detect colors support. This should be the file or terminal where the colors are output.

See also

  • terminal-theme: 🎨 Use a color theme for your code's terminal output.

Support

For any question, don't hesitate to submit an issue on GitHub.

Everyone is welcome regardless of personal background. We enforce a Code of conduct in order to promote a positive and inclusive environment.

Contributing

This project was made with ❤️. The simplest way to give back is by starring and sharing it online.

If the documentation is unclear or has a typo, please click on the page's Edit button (pencil icon) and suggest a correction.

If you would like to help us fix a bug or add a new feature, please check our guidelines. Pull requests are welcome!