Inksac

rust-fmt rust-clippy rust-audit

Inksac is a Rust library that amplifies terminal outputs by offering a seamless integration with ANSI color support. It is devised to be uncomplicated, flexible, and delightful to utilize, adding a splash of color to your terminal applications.

Features

  1. Check ANSI Color Support: Before painting your terminal with vibrant colors, ascertain if the current terminal supports ANSI colors using Inksac's built-in function.

  2. Customizable Styles: Inksac allows the creation of distinct text styles with customizable foreground and background colors, giving a personal touch to your terminal display.

  3. Vivid Text Outputs: Enrich your terminal applications with colorful text outputs using the ColoredString structure.

  4. True Color Support: Experience the diversity of colors with Inksac supporting true color by RGB and HEX values.

  5. Text Format Options: Beautify your text with bold, dim, italic, underline formats. Stay tuned for more format options in future releases.

Usage

Here is a basic example demonstrating how to utilize the Inksac crate:

```rust use inksac::iscoloravailable; use inksac::types::{Color, ColoredString, Style};

fn main() { // Check if the terminal supports ANSI colors match iscoloravailable() { Ok(_) => println!("Terminal supports ANSI colors"), Err(err) => println!("{}", err), }

// Create a style using the new builder pattern
let title_style = Style::builder()
    .foreground(Some(Color::Green))
    .background(Some(Color::Red))
    .bold()
    .build();

// Create a ColoredString with the predefined style
let title_text = ColoredString::new("Hello World", title_style);

// Print the ColoredString
println!("{}", title_text);

} ```

Installation

To add Inksac as a dependency to your project, run the following command:

sh cargo add inksac

Disclaimer

Please note that the actual color representation may vary based on the terminal's capabilities and might not function as anticipated on all platforms.


Happy Coding!