7 releases

0.2.5 Sep 21, 2024
0.2.4 Sep 21, 2024
0.1.0 Sep 18, 2024

#426 in Development tools

Download history 568/week @ 2024-09-16 27/week @ 2024-09-23 52/week @ 2024-09-30

52 downloads per month

MIT license

25KB
331 lines

๐ŸŒˆ term_ansi

Crates.io Documentation License: MIT

Colorize your terminal output with ease! ๐ŸŽจโœจ

term_ansi is a lightweight Rust crate that provides a simple and intuitive way to add colors and formatting to your terminal output using ANSI escape codes. With support for various predefined colors, custom RGB values, and text styles, you can make your CLI applications more visually appealing and user-friendly.

๐Ÿ“š Table of Contents

โœจ Features

  • ๐ŸŽจ Easy-to-use macros for applying colors and styles
  • ๐ŸŒˆ Support for 8 predefined foreground and background colors
  • ๐Ÿ”ข Custom RGB, HSL, and HSV color support for text and background
  • ๐Ÿงต Text styles: Bold, Italic, Underline
  • ๐Ÿช† Nested color and style application
  • ๐Ÿงช Thread-safe color context management

๐Ÿ“ฆ Installation

Add term_ansi to your Cargo.toml:

[dependencies]
term_ansi = "0.2.5"

๐Ÿš€ Usage

First, import the crate in your Rust file:

use term_ansi::*;

Basic Colors

Apply colors to your text using the provided macros:

println!("{}", red!("This is red text"));
println!("{}", green!("This is green text"));
println!("{}", blue!("This is blue text"));

Background Colors

Apply background colors to your text:

println!("{}", bg_yellow!("This has a yellow background"));
println!("{}", bg_cyan!("This has a cyan background"));

Text Styles

Apply text styles:

println!("{}", bold!("This text is bold"));
println!("{}", italic!("This text is italic"));
println!("{}", underline!("This text is underlined"));

Custom Colors

Use custom RGB, HSL, or HSV colors:

println!("{}", rgb!(255, 128, 0, "This is orange text"));
println!("{}", hsl!(120.0, 1.0, 0.5, "This is green text"));
println!("{}", bg_hsv!(240.0, 1.0, 1.0, "This has a blue background"));

Nested Formatting

Combine multiple styles and colors:

println!("{}", red!("{}", bg_white!("{}" bold!("Important: {}"), "Read this!")));

๐Ÿ“š Available Macros

Text Colors

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

Background Colors

  • bg_red!, bg_green!, bg_blue!, bg_white!, bg_black!, bg_yellow!, bg_magenta!, bg_cyan!

Text Styles

  • bold!, italic!, underline!

Custom Colors

  • rgb!, hsl!, hsv!: Custom foreground colors
  • bg_rgb!, bg_hsl!, bg_hsv!: Custom background colors

๐Ÿ’ก Examples

Error Message with Style

println!("{}", red!("{}", bold!("Error: {}"), "File not found"));

Colorful Status Message

println!("{} {} {}", green!("โœ“"), blue!("Building project:"), yellow!("in progress"));

Custom Color Gradient

for i in 0..=255 {
    print!("{}", rgb!(i, 0, 255 - i, "โ–ˆ"));
}
println!();

Complex Nested Formatting

println!("{}",
    bg_blue!("{}",
        white!("{}",
            bold!("Status: {} | {}",
                green!("OK"),
                red!("{}", underline!("Failed: {}"), 3)
            )
        )
    )
);

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Happy colorful coding! ๐Ÿฆ€๐ŸŒˆ

No runtime deps