Expand description

This crate provides OwoColorize, an extension trait for colorizing a given type.

Example

use owo_colors::OwoColorize;

fn main() {
    // Foreground colors
    println!("My number is {:#x}!", 10.green());
    // Background colors
    println!("My number is not {}!", 4.on_red());
}

Generically color

use owo_colors::OwoColorize;
use owo_colors::colors::*;

fn main() {
    // Generically color
    println!("My number might be {}!", 4.fg::<Black>().bg::<Yellow>());
}

Stylize

use owo_colors::OwoColorize;

println!("{}", "strikethrough".strikethrough());

Only Style on Supported Terminals

use owo_colors::{OwoColorize, Stream::Stdout};

println!(
    "{}",
    "colored blue if a supported terminal"
        .if_supports_color(Stdout, |text| text.bright_blue())
);

Supports NO_COLOR/FORCE_COLOR environment variables, checks if it’s a tty, checks if it’s running in CI (and thus likely supports color), and checks which terminal is being used. (Note: requires supports-colors feature)

Style Objects

owo-colors also features the ability to create a Style object and use it to apply the same set of colors/effects to any number of things to display.

use owo_colors::{OwoColorize, Style};

let my_style = Style::new()
    .red()
    .on_white()
    .strikethrough();

let text = "red text, white background, struck through";
println!("{}", text.style(my_style));

Modules

Module for drop-in colored support to aid in porting code from colored to owo-colors.
Color types for used for being generic over the color
Different display styles (strikethrough, bold, etc.)

Structs

Transparent wrapper around a type which implements all the formatters the wrapped type does, with the addition of changing the background color. Recommended to be constructed using OwoColorize.
Wrapper around a type which implements all the formatters the wrapped type does, with the addition of changing the background color. Is not recommended unless compile-time coloring is not an option.
A wrapper type which applies both a foreground and background color
Transparent wrapper around a type which implements all the formatters the wrapped type does, with the addition of changing the foreground color. Recommended to be constructed using OwoColorize.
Wrapper around a type which implements all the formatters the wrapped type does, with the addition of changing the foreground color. Is not recommended unless compile-time coloring is not an option.
An error for when the color can not be parsed from a string at runtime
Available RGB colors for use with OwoColorize::color or OwoColorize::on_color
A pre-computed style that can be applied to a struct using OwoColorize::style. Its interface mimicks that of OwoColorize, but instead of chaining methods on your object, you instead chain them on the Style object before applying it.
A wrapper type which applies a Style when displaying the inner type
A collection of Styled items that are displayed in such a way as to minimize the amount of characters that are written when displayed.

Enums

Available standard ANSI colors for use with OwoColorize::color or OwoColorize::on_color
Available CSS colors for use with OwoColorize::color or OwoColorize::on_color
An enum describing runtime-configurable colors which can be displayed using FgDynColorDisplay or BgDynColorDisplay, allowing for multiple types of colors to be used at runtime.
A runtime-configurable text effect for use with Style
Available Xterm colors for use with OwoColorize::color or OwoColorize::on_color

Traits

A trait for describing a type which can be used with FgColorDisplay or BgCBgColorDisplay
A trait describing a runtime-configurable color which can displayed using FgDynColorDisplay or BgDynColorDisplay. If your color will be known at compile time it is recommended you avoid this.
Extension trait for colorizing a type which implements any std formatter (Display, Debug, UpperHex, etc.)

Functions

Helper to create Styles more ergonomically