stylic

Crates.iostylic
lib.rsstylic
version0.2.3
sourcesrc
created_at2024-09-01 13:21:50.910771
updated_at2024-09-06 17:40:35.185279
descriptionA simple, fast library for styling text with ANSI escape codes
homepage
repositoryhttps://github.com/SamuelMcGowan/stylic
max_upload_size
id1359623
size59,436
Sam McGowan (SamuelMcGowan)

documentation

README

Crates.io Version Crates.io License

A simple, fast library for styling text with ANSI escape codes.

Features

  • Simple, intuitive API
  • Fast, no allocations
  • #![no_std] support
  • No dependencies
  • Supports hyperlinks
  • Supports globally enabling and disabling styling

Usage

Use the style function to create a Styled value which can be styled using methods from the Stylize trait and can be displayed.

use stylic::{style, Stylize};

println!("{}", style("Hello, World!").green().italic());

The Stylize trait provides methods for setting the foreground color, background color, underline color, and attributes of the text (such as bold, italic, etc).

Available attributes are:

  • bold
  • dim
  • italic
  • underline
  • blink
  • reverse
  • hidden
  • strikethrough

Available colors include basic ANSI colors, the extended 256-color palette, and RGB colors.

The ANSI colors are:

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white

Plus bright variants.

There are methods on the Style struct for setting the foreground color, background color and underline color to basic ansi colors:

use stylic::{BasicColor, Color, Stylize, style};

println!("{}", style("Hello, World!").black().on_blue());

There are also fg, bg and underline_colored methods that take a Color or any other value implementing Into<Color>, allowing the use of colors from the extended 256-color palette and RGB colors:

use stylic::{BasicColor, Color, Stylize, style};

// Setting the foreground color to red.
println!("{}", style("Hello, World!").fg(Color::Basic(BasicColor::Red)));
println!("{}", style("Hello, World!").fg(BasicColor::Red));

// Setting the background color to a color from the 256-color palette.
println!("{}", style("Hello, World!").bg(Color::Extended(58)));
println!("{}", style("Hello, World!").bg(58));

// Setting the underline color to a RGB color.
println!("{}", style("Hello, World!").underline_colored(Color::Rgb(255, 0, 255)));
println!("{}", style("Hello, World!").underline_colored((255, 0, 255)));

Styles can also be created and stored for later use:

use stylic::{style, Style, Stylize};

let my_style = Style::new().bold().bright_blue();
println!("{}", style("Hello, World!").apply(my_style));

Enabling and disabling styling

Use the set_style_enabled function from the enable module to globally enable or disable styling. See the module documentation for more information.

Commit count: 0

cargo fmt