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:
[]
= "0.3"
Basic usage
use ;
// or
// use sty::{ sty, red, underline };
println!;
// Use `sty!` macro for combination of multiple styles
println!;
// Use `sty!` macro for multiple input types
println!;
// Use style function is simple for `&str` input
println!;
println!;
[!TIP] In style combinations, the styles that are specified later take precedence, For example:
use ;
sty!; // blue
sty!; // 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 ;
let enabled = is_color_enabled;
set_color_enabled;
sty!; // no color
set_color_enabled;
sty!; // red
set_color_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 ;
println!;
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 ;
// or
// use sty::{ sty, red, underline };
sty!;
// or
red;
[!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