Expand description
§sty 🌈
§$\mathbb{\color{red}{Style \ } \color{lightblue}{terminal}\ \color{black}{outputs \ }\color{gray}{\ in\ a} \color{magenta}{\ minimal}\color{gray}{,} \color{lightyellow}{\ macro\ based}\color{gray}{,}\ and \color{lightgreen}{\ dead\ simple} \color{gray}{\ way.}}$
| Code | Backgroud | Bright | Bright background | |
|---|---|---|---|---|
| $\mathbb{\color{black}{â– }}$ | black | bg_black | ||
| $\mathbb{\color{gray}{â– }}$ | gray | bg_gray | ||
| $\mathbb{\color{white}{â– }}$ | white | bg_white | white_bright | bg_white_bright |
| $\mathbb{\color{red}{â– }}$ | red | bg_red | red_bright | bg_red_bright |
| $\mathbb{\color{green}{â– }}$ | green | bg_green | green_bright | bg_green_bright |
| $\mathbb{\color{yellow}{â– }}$ | yellow | bg_yellow | yello_bright | bg_yellow_bright |
| $\mathbb{\color{blue}{â– }}$ | blue | bg_blue | blue_bright | bg_blue_bright |
| $\mathbb{\color{magenta}{â– }}$ | magenta | bg_magenta | magenta_bright | bg_magenta_bright |
| $\mathbb{\color{cyan}{â– }}$ | cyan | bg_cyan | cyan_bright | bg_cyan_bright |
bolditalicunderlinestrikethroughoverlinediminversehiddenreset
§Highlights
- Macro-based: Increases compile-time efficiency and boosts safety.
- Innovative Styling: Compose styles in an array-like format such as
[red, bold, underline]. - Extensive Type Support: All types implementing
std::fmt::Displaytrait are supported, offering wide-ranging adaptability. - Full Color and Style support: Modifiers / Foreground colors / Background colors / Bright foreground colors / Bright background colors.
- Zero dependencies: Cleaner code-base with no third-party interference.
- Supports
ttydetection: Avoids styling when the tty lacks color support, Useset_color_enabledfor manual enable control.
§Documentation
§Installation
This crate works with Cargo. Add the following to your Cargo.toml dependencies section:
[dependencies]
sty = "0.3"§Basic usage
use sty::{
sty,
style::{red, underline},
};
// or
// use sty::{ sty, red, underline };
println!("{}", sty!("Hello world!", [red]));
// Use `sty!` macro for combination of multiple styles
println!("{}", sty!("Hello world!", [red, underline]));
// Use `sty!` macro for multiple input types
println!("{}", sty!(123, [red, underline]));
// Use style function is simple for `&str` input
println!("{}", red("Hello world!"));
println!("{}", underline(&red("Hello world!")));[!TIP] In style combinations, the styles that are specified later take precedence, For example:
use sty::{ sty, style::* };
sty!("str", [red, green, blue]); // blue
sty!("str", [red, underline, reset]); // reset[!TIP] If
ttyenvironment does not support color, default output will be printed without any styling, Useset_color_enabledfor manual enable control, For example:
use sty::{ set_color_enabled, is_color_enabled, sty, style::* };
let enabled = is_color_enabled();
set_color_enabled(false);
sty!("123", [red]); // no color
set_color_enabled(true);
sty!("123", [red]); // red
set_color_enabled(enabled);§sty! Macro
The sty! macro is a powerful utility conveniently used to apply a collection of style manipulations to your input. This macro allows you to seamlessly incorporate text properties with an intuitive syntax.
use sty::{ sty, style::{red, underline} };
println!("{}", sty!("Hello world!", [red, underline]));In this example, red and underline are both style transformations, and the sty! macro returns a newly styled text instance with all these styling elements applied. Multiple styles can be applied simultaneously, and the output will be a combination of all.
§Supported input types
For any type that has implemented the std::fmt::Display trait, like:
&strStringnumbers(usize,i8,i16,i32,i64,i128,u8,u16,u32,u64,u128,f32,f64)bool- …
§Style function
Each style function can be combine with sty! macro or used separately, for example:
use sty::{
sty,
style::{red, underline},
};
// or
// use sty::{ sty, red, underline };
sty!("Hello world!", [red, underline]);
// or
red("Hello world!");[!TIP] The standalone style function only supports
&strinput type.
All style functions are as follows:
-
Modifiers
resetbolddimitalicunderlineoverlineinversehiddenstrikethrough
-
Foreground colors
blackredgreenyellowbluemagentacyanwhitegray
-
Background colors
bg_blackbg_redbg_greenbg_yellowbg_bluebg_magentabg_cyanbg_whitebg_gray
-
Bright foreground colors
red_brightgreen_brightyellow_brightblue_brightmagenta_brightcyan_brightwhite_bright
-
Bright background colors
bg_red_brightbg_green_brightbg_yellow_brightbg_blue_brightbg_magenta_brightbg_cyan_brightbg_white_bright
§Contribution
Re-exports§
pub use style::*;