Trait owo_colors::OwoColorize

source ·
pub trait OwoColorize: Sized {
Show 57 methods // Provided methods fn fg<C: Color>(&self) -> FgColorDisplay<'_, C, Self> { ... } fn bg<C: Color>(&self) -> BgColorDisplay<'_, C, Self> { ... } fn black(&self) -> FgColorDisplay<'_, Black, Self> { ... } fn on_black(&self) -> BgColorDisplay<'_, Black, Self> { ... } fn red(&self) -> FgColorDisplay<'_, Red, Self> { ... } fn on_red(&self) -> BgColorDisplay<'_, Red, Self> { ... } fn green(&self) -> FgColorDisplay<'_, Green, Self> { ... } fn on_green(&self) -> BgColorDisplay<'_, Green, Self> { ... } fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self> { ... } fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self> { ... } fn blue(&self) -> FgColorDisplay<'_, Blue, Self> { ... } fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self> { ... } fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self> { ... } fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self> { ... } fn purple(&self) -> FgColorDisplay<'_, Magenta, Self> { ... } fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self> { ... } fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self> { ... } fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self> { ... } fn white(&self) -> FgColorDisplay<'_, White, Self> { ... } fn on_white(&self) -> BgColorDisplay<'_, White, Self> { ... } fn default_color(&self) -> FgColorDisplay<'_, Default, Self> { ... } fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self> { ... } fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self> { ... } fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self> { ... } fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self> { ... } fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self> { ... } fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self> { ... } fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self> { ... } fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self> { ... } fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self> { ... } fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self> { ... } fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self> { ... } fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self> { ... } fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self> { ... } fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self> { ... } fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self> { ... } fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self> { ... } fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self> { ... } fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self> { ... } fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self> { ... } fn bold(&self) -> BoldDisplay<'_, Self> { ... } fn dimmed(&self) -> DimDisplay<'_, Self> { ... } fn italic(&self) -> ItalicDisplay<'_, Self> { ... } fn underline(&self) -> UnderlineDisplay<'_, Self> { ... } fn blink(&self) -> BlinkDisplay<'_, Self> { ... } fn blink_fast(&self) -> BlinkFastDisplay<'_, Self> { ... } fn reversed(&self) -> ReversedDisplay<'_, Self> { ... } fn hidden(&self) -> HiddenDisplay<'_, Self> { ... } fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self> { ... } fn color<Color: DynColor>( &self, color: Color, ) -> FgDynColorDisplay<'_, Color, Self> { ... } fn on_color<Color: DynColor>( &self, color: Color, ) -> BgDynColorDisplay<'_, Color, Self> { ... } fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self> { ... } fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self> { ... } fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self> { ... } fn on_truecolor( &self, r: u8, g: u8, b: u8, ) -> BgDynColorDisplay<'_, Rgb, Self> { ... } fn style(&self, style: Style) -> Styled<&Self> { ... } fn if_supports_color<'a, Out, ApplyFn>( &'a self, stream: impl Into<Stream>, apply: ApplyFn, ) -> SupportsColorsDisplay<'a, Self, Out, ApplyFn> where ApplyFn: Fn(&'a Self) -> Out { ... }
}
Expand description

Extension trait for colorizing a type which implements any std formatter (Display, Debug, UpperHex, etc.)

§Example

use owo_colors::OwoColorize;

println!("My number is {:#x}!", 10.green());
println!("My number is not {}!", 4.on_red());

§How to decide which method to use

Do you have a specific color you want to use?

Use the specific color’s method, such as blue or on_green.

Do you want your colors configurable via generics?

Use fg and bg to make it compile-time configurable.

Do you need to pick a color at runtime?

Use the color, on_color, truecolor or on_truecolor.

Do you need some other text modifier?

Do you want it to only display colors if it’s a terminal?

  1. Enable the supports-colors feature
  2. Colorize inside if_supports_color

Do you need to store a set of colors/effects to apply to multiple things?

Use style to apply a Style

Provided Methods§

source

fn fg<C: Color>(&self) -> FgColorDisplay<'_, C, Self>

Set the foreground color generically

use owo_colors::{OwoColorize, colors::*};

println!("{}", "red foreground".fg::<Red>());
Examples found in repository?
examples/custom_colors.rs (line 5)
4
5
6
7
fn main() {
    println!("{}", "custom purple".fg::<CustomColor<141, 59, 212>>());
    println!("{}", "custom green".fg_rgb::<50, 209, 42>());
}
More examples
Hide additional examples
examples/extra_colors.rs (line 4)
3
4
5
6
7
8
9
10
11
12
fn main() {
    println!("{}", "Electric violet".fg::<xterm::ElectricViolet>());
    println!("{}", "Matrix".fg::<xterm::MatrixPink>());
    println!("{}", "Flirt".fg::<xterm::Flirt>());
    println!("{}", "Cyan2".fg::<xterm::Cyan>());
    println!("{}", "Cyan".fg::<xterm::UserCyan>());
    println!("{}", "Lime".fg::<xterm::Lime>());
    println!("{}", "Jade".fg::<xterm::Jade>());
    println!("{}", "Reef".fg::<xterm::Mauve>());
}
examples/colors.rs (line 11)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn bg<C: Color>(&self) -> BgColorDisplay<'_, C, Self>

Set the background color generically.

use owo_colors::{OwoColorize, colors::*};

println!("{}", "black background".bg::<Black>());
source

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black

Examples found in repository?
examples/colors.rs (line 8)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black

source

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red

Examples found in repository?
examples/supports_color.rs (line 7)
3
4
5
6
7
8
9
fn main() {
    println!(
        "{}",
        "This will be red if viewed through a compatible terminal!"
            .if_supports_color(Stdout, |x| x.red())
    );
}
More examples
Hide additional examples
examples/colors.rs (line 37)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red

source

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green

Examples found in repository?
examples/override.rs (line 10)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fn main() {
    println!("Override color=always");
    owo_colors::set_override(true);
    println!("{}", "blue".if_supports_color(Stdout, |text| text.blue()));

    println!("Override color=never");
    owo_colors::set_override(false);
    println!("{}", "green".if_supports_color(Stdout, |text| text.green()));

    println!("Override color=auto");
    owo_colors::unset_override();
    println!(
        "{}",
        "yellow".if_supports_color(Stdout, |text| text.bright_yellow())
    );
}
More examples
Hide additional examples
examples/colors.rs (line 5)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green

source

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow

Examples found in repository?
examples/colors.rs (line 6)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow

source

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue

Examples found in repository?
examples/override.rs (line 6)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fn main() {
    println!("Override color=always");
    owo_colors::set_override(true);
    println!("{}", "blue".if_supports_color(Stdout, |text| text.blue()));

    println!("Override color=never");
    owo_colors::set_override(false);
    println!("{}", "green".if_supports_color(Stdout, |text| text.green()));

    println!("Override color=auto");
    owo_colors::unset_override();
    println!(
        "{}",
        "yellow".if_supports_color(Stdout, |text| text.bright_yellow())
    );
}
More examples
Hide additional examples
examples/colors.rs (line 7)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue

source

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta

source

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta

source

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple

source

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple

source

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan

source

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan

source

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white

source

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white

source

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default

source

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default

source

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black

source

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black

source

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red

source

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red

source

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green

source

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green

source

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow

Examples found in repository?
examples/override.rs (line 16)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fn main() {
    println!("Override color=always");
    owo_colors::set_override(true);
    println!("{}", "blue".if_supports_color(Stdout, |text| text.blue()));

    println!("Override color=never");
    owo_colors::set_override(false);
    println!("{}", "green".if_supports_color(Stdout, |text| text.green()));

    println!("Override color=auto");
    owo_colors::unset_override();
    println!(
        "{}",
        "yellow".if_supports_color(Stdout, |text| text.bright_yellow())
    );
}
source

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow

source

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue

source

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue

source

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta

source

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta

source

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple

source

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple

source

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan

source

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan

source

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white

source

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white

source

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold

Examples found in repository?
examples/banner.rs (line 27)
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
fn main() {
    let colors: [DynColors; 6] = [
        "#B80A41", "#4E4BA8", "#6EB122", "#DAAC06", "#00938A", "#E23838",
    ]
    .map(|color| color.parse().unwrap());

    println!("\n\n\n\n\n{}", OWO.fg_rgb::<0x2E, 0x31, 0x92>().bold());

    for line in COLORS.split_inclusive('\n') {
        for (text, color) in line.split('|').zip(colors.iter().copied()) {
            print!("{}", text.color(color).bold());
        }
    }

    println!("\n\n\n\n\n\n");
}
More examples
Hide additional examples
examples/colors.rs (line 28)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim

source

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized

Examples found in repository?
examples/colors.rs (line 29)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined

Examples found in repository?
examples/colors.rs (line 27)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}

Make the text blink

Examples found in repository?
examples/colors.rs (line 33)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}

Make the text blink (but fast!)

Examples found in repository?
examples/colors.rs (line 34)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors

Examples found in repository?
examples/colors.rs (line 31)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text

Examples found in repository?
examples/colors.rs (line 32)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text

Examples found in repository?
examples/colors.rs (line 30)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
fn main() {
    // normal usage
    println!("{}", "green".green());
    println!("{}", "yellow".yellow());
    println!("{}", "blue".blue());
    println!("{}", "black".black());

    // generic examples
    println!("{}", "red".fg::<Red>());
    println!("{}", "magenta".fg::<Magenta>());
    println!("{}", "white".fg::<White>());
    println!("{}", "cyan".fg::<Cyan>());

    println!("\nBrights\n-------");
    println!("{}", "green".fg::<BrightGreen>());
    println!("{}", "yellow".fg::<BrightYellow>());
    println!("{}", "blue".fg::<BrightBlue>());
    println!("{}", "black".fg::<BrightBlack>());
    println!("{}", "red".fg::<BrightRed>());
    println!("{}", "magenta".fg::<BrightMagenta>());
    println!("{}", "white".fg::<BrightWhite>());
    println!("{}", "cyan".fg::<BrightCyan>());

    println!("\nStyles\n-------");
    println!("{}", "underline".underline());
    println!("{}", "bold".bold());
    println!("{}", "italic".italic());
    println!("{}", "strikethrough".strikethrough());
    println!("{}", "reverse".reversed());
    println!("1{}3", "2".hidden());
    println!("{}", "blink".blink());
    println!("{}", "blink fast".blink_fast());

    // foreground and background
    let red_on_white = "red on white".red().on_white();
    println!("{}", red_on_white);
}
source

fn color<Color: DynColor>( &self, color: Color, ) -> FgDynColorDisplay<'_, Color, Self>

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green,

use owo_colors::{OwoColorize, AnsiColors};

println!("{}", "green".color(AnsiColors::Green));
Examples found in repository?
examples/banner.rs (line 31)
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
fn main() {
    let colors: [DynColors; 6] = [
        "#B80A41", "#4E4BA8", "#6EB122", "#DAAC06", "#00938A", "#E23838",
    ]
    .map(|color| color.parse().unwrap());

    println!("\n\n\n\n\n{}", OWO.fg_rgb::<0x2E, 0x31, 0x92>().bold());

    for line in COLORS.split_inclusive('\n') {
        for (text, color) in line.split('|').zip(colors.iter().copied()) {
            print!("{}", text.color(color).bold());
        }
    }

    println!("\n\n\n\n\n\n");
}
More examples
Hide additional examples
examples/dyn_colors.rs (line 9)
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
fn main() {
    let mut color = AnsiColors::Red;
    println!("{}", "red".color(color));

    color = AnsiColors::Blue;
    println!("{}", "blue".color(color));

    let color = XtermColors::Fuchsia;
    println!("{}", "fuchsia".color(color));

    let color = Rgb(141, 59, 212);
    println!("{}", "custom purple".color(color));

    let color = match random_number() {
        1 => DynColors::Rgb(141, 59, 212),
        2 => DynColors::Ansi(AnsiColors::BrightGreen),
        3 => "#F3F3F3".parse().unwrap(),
        _ => DynColors::Xterm(XtermColors::Aqua),
    };

    println!("{}", "mystery color".color(color));
}
source

fn on_color<Color: DynColor>( &self, color: Color, ) -> BgDynColorDisplay<'_, Color, Self>

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow,

use owo_colors::{OwoColorize, AnsiColors};

println!("{}", "yellow background".on_color(AnsiColors::BrightYellow));
source

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.

Examples found in repository?
examples/custom_colors.rs (line 6)
4
5
6
7
fn main() {
    println!("{}", "custom purple".fg::<CustomColor<141, 59, 212>>());
    println!("{}", "custom green".fg_rgb::<50, 209, 42>());
}
More examples
Hide additional examples
examples/banner.rs (line 27)
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
fn main() {
    let colors: [DynColors; 6] = [
        "#B80A41", "#4E4BA8", "#6EB122", "#DAAC06", "#00938A", "#E23838",
    ]
    .map(|color| color.parse().unwrap());

    println!("\n\n\n\n\n{}", OWO.fg_rgb::<0x2E, 0x31, 0x92>().bold());

    for line in COLORS.split_inclusive('\n') {
        for (text, color) in line.split('|').zip(colors.iter().copied()) {
            print!("{}", text.color(color).bold());
        }
    }

    println!("\n\n\n\n\n\n");
}
source

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.

source

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.

source

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.

source

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style

source

fn if_supports_color<'a, Out, ApplyFn>( &'a self, stream: impl Into<Stream>, apply: ApplyFn, ) -> SupportsColorsDisplay<'a, Self, Out, ApplyFn>
where ApplyFn: Fn(&'a Self) -> Out,

Apply a given transformation function to all formatters if the given stream supports at least basic ANSI colors, allowing you to conditionally apply given styles/colors.

Requires the supports-colors feature.

use owo_colors::{Stream, OwoColorize};

println!(
    "{}",
    "woah! error! if this terminal supports colors, it's blue"
        .if_supports_color(Stream::Stdout, |text| text.bright_blue())
);

This function also accepts supports_color version 2’s Stream, and also the deprecated supports_color version 1’s Stream.

use owo_colors::OwoColorize;
#[cfg(feature = "supports-colors")]
use supports_color::Stream;

println!(
   "{}",
   "woah! error! if this terminal supports colors, it's blue"
      .if_supports_color(Stream::Stdout, |text| text.bright_blue())
);
Examples found in repository?
examples/supports_color.rs (line 7)
3
4
5
6
7
8
9
fn main() {
    println!(
        "{}",
        "This will be red if viewed through a compatible terminal!"
            .if_supports_color(Stdout, |x| x.red())
    );
}
More examples
Hide additional examples
examples/override.rs (line 6)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fn main() {
    println!("Override color=always");
    owo_colors::set_override(true);
    println!("{}", "blue".if_supports_color(Stdout, |text| text.blue()));

    println!("Override color=never");
    owo_colors::set_override(false);
    println!("{}", "green".if_supports_color(Stdout, |text| text.green()));

    println!("Override color=auto");
    owo_colors::unset_override();
    println!(
        "{}",
        "yellow".if_supports_color(Stdout, |text| text.bright_yellow())
    );
}

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<D: Sized> OwoColorize for D