Crate owo_colors

source ·
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));

Re-exports

  • pub use supports_colors::Stream;

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 mimics 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.
  • A display wrapper which applies a transformation based on if the given stream supports colored terminal output

Enums

Traits

Functions

  • Set an override value for whether or not colors are supported.
  • Helper to create Styles more ergonomically
  • Remove any override value for whether or not colors are supported. This means if_supports_color will resume checking if the given terminal output (Stream) supports colors.
  • Set an override value for whether or not colors are supported using set_override while executing the closure provided.

Type Aliases