#style #color #crossterm #terminal #attributes

crossterm_style

A cross-platform library styling the terminal output

11 releases (4 breaking)

✓ Uses Rust 2018 edition

0.5.2 Oct 21, 2019
0.4.1 Aug 2, 2019
0.4.0 Jul 26, 2019
0.2.0 Feb 22, 2019

#3 in #crossterm

Download history 779/week @ 2019-07-08 874/week @ 2019-07-15 881/week @ 2019-07-22 867/week @ 2019-07-29 1066/week @ 2019-08-05 2854/week @ 2019-08-12 3894/week @ 2019-08-19 3104/week @ 2019-08-26 1610/week @ 2019-09-02 1058/week @ 2019-09-09 1071/week @ 2019-09-16 1833/week @ 2019-09-23 2602/week @ 2019-09-30 2655/week @ 2019-10-07 2348/week @ 2019-10-14

8,618 downloads per month
Used in 5 crates (1 directly)

MIT license

54KB
867 lines

Lines of Code Latest Version MIT docs Join us on Discord

Crossterm Style

The crossterm_style crate is deprecated and no longer maintained. The GitHub repository will be archived soon. All the code is being moved to the crossterm crate. You can learn more in the Merge sub-crates to the crossterm crate issue.

This crate allows you to work with the terminal colors and text attributes. It supports all UNIX and Windows terminals down to Windows 7 (not all terminals are tested, see the Tested Terminals for more info).

crossterm_style is a sub-crate of the crossterm crate. You can use it directly, but it's highly recommended to use the crossterm crate with the style feature enabled.

Features

  • Cross-platform
  • Multi-threaded (send, sync)
  • Detailed documentation
  • Few dependencies
  • Styled output
    • Foreground color (16 base colors)
    • Background color (16 base colors)
    • 256 (ANSI) color support (Windows 10 and UNIX only)
    • RGB color support (Windows 10 and UNIX only)
    • Text attributes like bold, italic, underscore, crossed word, etc.

Getting Started

Click to show Cargo.toml.
[dependencies]
# All crossterm features are enabled by default.
crossterm = "0.11"

Attributes

use crossterm::{Colored, Color, Colorize, Styler, Attribute};

// pass any `Attribute` value to the formatting braces.
println!("{} Underlined {} No Underline", Attribute::Underlined, Attribute::NoUnderline);

// you could also call different attribute methods on a `&str` and keep on chaining if needed.
let styled_text = "Bold Underlined".bold().underlined();
println!("{}", styled_text);

// old-way but still usable
let styled_text = style("Bold Underlined").bold().underlined();

Colors

use crossterm::{Colored, Color, Colorize};

println!("{} Red foreground color", Colored::Fg(Color::Red));
println!("{} Blue background color", Colored::Bg(Color::Blue));

// you can also call different coloring methods on a `&str`.
let styled_text = "Bold Underlined".red().on_blue();
println!("{}", styled_text);

// old-way but still usable
let styled_text = style("Bold Underlined").with(Color::Red).on(Color::Blue);

RGB Colors and ANSI Values

use crossterm::{Colored, Color, Colorize};

// custom rgb value (Windows 10 and UNIX systems)
println!("{} some colored text", Colored::Fg(Color::Rgb {
    r: 10,
    g: 10,
    b: 10
}));

// custom ansi color value (Windows 10 and UNIX systems)
println!("{} some colored text", Colored::Fg(Color::AnsiValue(10)));

Other Resources

Authors

  • Timon Post - Project Owner & creator

License

This project is licensed under the MIT License - see the LICENSE file for details

Dependencies

~70KB