Exciting news!Announcing our $4.6M Series Seed. Learn more
Socket
LoveBlogFAQ
Install
Log in

supports-color

Package Overview
Dependencies
0
Maintainers
2
Versions
46
Issues
File Explorer

Advanced tools

supports-color

Detect whether a terminal supports color

    9.2.2latest

Version published
Maintainers
2
Yearly downloads
7,733,714,612
increased by92.34%

Weekly downloads

Changelog

Source

  • Improve browser detection (#134) bb40ba8

https://github.com/chalk/supports-color/compare/v9.2.1...v9.2.2

Readme

Source

supports-color

Detect whether a terminal supports color

Install

$ npm install supports-color

Usage

import supportsColor from 'supports-color'; if (supportsColor.stdout) { console.log('Terminal stdout supports color'); } if (supportsColor.stdout.has256) { console.log('Terminal stdout supports 256 colors'); } if (supportsColor.stderr.has16m) { console.log('Terminal stderr supports 16 million colors (truecolor)'); }

API

Returns an object with a stdout and stderr property for testing either streams. Each property is an Object, or false if color is not supported.

The stdout/stderr objects specifies a level of support for color through a .level property and a corresponding flag:

  • .level = 1 and .hasBasic = true: Basic color support (16 colors)
  • .level = 2 and .has256 = true: 256 color support
  • .level = 3 and .has16m = true: Truecolor support (16 million colors)

Custom instance

The package also exposes the named export createSupportColor function that takes an arbitrary write stream (for example, process.stdout) and an optional options object to (re-)evaluate color support for an arbitrary stream.

import {createSupportsColor} from 'supports-color'; const stdoutSupportsColor = createSupportsColor(process.stdout); if (stdoutSupportsColor) { console.log('Terminal stdout supports color'); } // `stdoutSupportsColor` is the same as `supportsColor.stdout`

The options object supports a single boolean property sniffFlags. By default it is true, which instructs the detection to sniff process.argv for the multitude of --color flags (see Info below). If false, then process.argv is not considered when determining color support.

Info

It obeys the --color and --no-color CLI flags.

For situations where using --color is not possible, use the environment variable FORCE_COLOR=1 (level 1), FORCE_COLOR=2 (level 2), or FORCE_COLOR=3 (level 3) to forcefully enable color, or FORCE_COLOR=0 to forcefully disable. The use of FORCE_COLOR overrides all other color support checks.

Explicit 256/Truecolor mode can be enabled using the --color=256 and --color=16m flags, respectively.

  • supports-color-cli - CLI for this module
  • chalk - Terminal string styling done right
  • is-unicode-supported - Detect whether the terminal supports Unicode
  • is-interactive - Check if stdout or stderr is interactive

Maintainers


Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.

Keywords

Socket

Product

Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc