Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/curlpipe/lliw
Text colours and styles for your terminal with no additional dependencies
https://github.com/curlpipe/lliw
Last synced: about 1 month ago
JSON representation
Text colours and styles for your terminal with no additional dependencies
- Host: GitHub
- URL: https://github.com/curlpipe/lliw
- Owner: curlpipe
- License: mit
- Created: 2021-02-25T18:09:21.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-03-24T00:03:09.000Z (over 2 years ago)
- Last Synced: 2024-10-05T22:06:10.924Z (about 2 months ago)
- Language: Rust
- Size: 29.3 KB
- Stars: 7
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lliw
*Roughly pronounced hlew*, it is "colour" in WelshLliw provides colours for your terminal, with no additional dependencies.
# Aims
- No dependencies
- Works in `#![no_std]` environments
- Provides colours and styles in a non-opinionated way
- Provides multiple ways to use
- Doesn't make your code look like trash
- Doesn't assume how you'll use the crate# Installation
If you have `cargo-edit` installed, it's as easy as:
```sh
cargo add lliw
```if you don't have `cargo-edit` you can add the following to your `Cargo.toml` file
```toml
[dependencies]
lliw = "0"
```# Example usage
```rust
use lliw::{Fg, Bg, Style, Reset};fn main() {
// Prints "Blue" in a blue colour
println!("{}Blue{}", Fg::Blue, Fg::Reset);
// Prints "Bold" in bold
println!("{}Bold{}", Style::Bold, Style::NoBold);
// Prints "Green" with a green background
println!("{}Green{}", Bg::Green, Bg::Reset);
// You can even use it in more complicated ways
println!(
"{}{}Attention!{}{} You have {}{}1{}{} new message",
Style::Underline, Fg::Yellow,
Style::NoUnderline, Fg::Reset,
Bg::White, Fg::Black,
Bg::Reset, Fg::Reset,
);
// You can make them go over the top of each other too
println!(
"{}Hello{} Wor{}ld! My{} Name{} {}Is{} Lliw{}",
Style::Italic, Fg::LightPurple,
Bg::Black, Fg::Reset, Style::NoItalic,
Style::Underline, Bg::Reset, Reset
);// Don't like these long formatting macros? You can use it like this too!
print!("{}", Fg::LightRed);
print!("Hello\nThere!");
print!("{}\n", Reset);// You can also use an RGB value if you want 24-bit colours
println!(
"{}R{}a{}i{}n{}b{}o{}w{}",
Fg::Rgb(255, 0, 0),
Fg::Rgb(255, 128, 0),
Fg::Rgb(255, 255, 0),
Fg::Rgb(0, 255, 0),
Fg::Rgb(0, 255, 255),
Fg::Rgb(128, 0, 255),
Fg::Rgb(255, 0, 128),
Fg::Reset,
);
}
```# Usage
There are 3 enums provided with lliw, `Fg`, `Bg` and `Style`.
There is also 1 struct, `Reset`.- `Fg` - Control the text colour
+ Consists of the types: Rgb, Black, Red, Green, Yellow, Blue, Purple, Cyan, White,
LightBlack, LightRed, LightGreen, LightYellow,
LightBlue, LightPurple, LightCyan, LightWhite and Reset.
+ The colours are reset using the `Reset` variant.
+ You can use the Rgb variant to provide true 24-bit colour values
- `Bg` - Control the text background colour
+ Consists of the types: Rgb, Black, Red, Green, Yellow, Blue, Purple, Cyan, White,
LightBlack, LightRed, LightGreen, LightYellow,
LightBlue, LightPurple, LightCyan, LightWhite and Reset.
+ The colours are reset using the `Reset` variant.
+ You can use the Rgb variant to provide true 24-bit colour values
- `Style` - Control the text styles
+ Consists of the types: Bold, NoBold, Underline, NoUnderline, Strike, NoStrike, Italic, NoItalic, Inverse, NoInverse, Faint and NoFaint.
+ Bold: Make the text bold, can be terminated with `NoBold`
+ Underline: Make the text have an underline, can be terminated with `NoUnderline`
+ Italic: Make the text go italic, can be terminated with `NoItalic`
+ Inverse: Inverse the text colours, can be terminated with `NoInverse`
+ Faint: Make the text fainter, can be terminated with `NoFaint`
+ Strike: Make the text have a strike through it, can be terminated with `NoStrike`
- `Reset` - This is a full reset struct that resets foreground, background and style when used.Be sure to check out the docs over at https://docs.rs/lliw
License: MIT