#terminal #color

supports-color

Detects whether a terminal supports color, and gives details about that support

12 stable releases

2.1.0 Sep 20, 2023
2.0.0 Dec 16, 2022
1.3.1 Nov 5, 2022
1.3.0 Oct 4, 2021
1.1.1 Sep 22, 2021

#30 in Command-line interface

Download history 99826/week @ 2023-08-12 126414/week @ 2023-08-19 118133/week @ 2023-08-26 75577/week @ 2023-09-02 84243/week @ 2023-09-09 85388/week @ 2023-09-16 96978/week @ 2023-09-23 93218/week @ 2023-09-30 100272/week @ 2023-10-07 108811/week @ 2023-10-14 100410/week @ 2023-10-21 104187/week @ 2023-10-28 110891/week @ 2023-11-04 105013/week @ 2023-11-11 96327/week @ 2023-11-18 80736/week @ 2023-11-25

408,257 downloads per month
Used in 198 crates (30 directly)

Apache-2.0

11KB
186 lines

Detects whether a terminal supports color, and gives details about that support. It takes into account the NO_COLOR environment variable.

This crate is a Rust port of @sindresorhus' NPM package by the same name.

Example

use supports_color::Stream;

if let Some(support) = supports_color::on(Stream::Stdout) {
    if support.has_16m {
        println!("16 million (RGB) colors are supported");
    } else if support.has_256 {
        println!("256 colors are supported.");
    } else if support.has_basic {
        println!("Only basic ANSI colors are supported.");
    }
} else {
    println!("No color support.");
}

lib.rs:

Detects whether a terminal supports color, and gives details about that support. It takes into account the NO_COLOR environment variable.

This crate is a Rust port of @sindresorhus' NPM package by the same name.

Example

use supports_color::Stream;

if let Some(support) = supports_color::on(Stream::Stdout) {
    if support.has_16m {
        println!("16 million (RGB) colors are supported");
    } else if support.has_256 {
        println!("256-bit colors are supported.");
    } else if support.has_basic {
        println!("Only basic ANSI colors are supported.");
    }
} else {
    println!("No color support.");
}

Dependencies

~0–12MB
~89K SLoC