5 releases
0.2.3 | Sep 6, 2024 |
---|---|
0.2.2 | Sep 6, 2024 |
0.2.1 | Sep 6, 2024 |
0.2.0 | Sep 6, 2024 |
0.1.0 | Sep 1, 2024 |
#508 in Command-line interface
55 downloads per month
42KB
951 lines
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.