#text-style #background-color #text-formatting #bold #underline #terminal #italic

colorex

A simple and flexible Rust library for styling terminal output with color and text formatting. Supports RGB/HEX colors, text styles (bold, italic, underline, etc.), and background colors with a chainable API.

2 releases

0.1.1 Feb 7, 2025
0.1.0 Feb 2, 2025

#707 in Text processing

Download history 102/week @ 2025-01-28 167/week @ 2025-02-04 12/week @ 2025-02-11

281 downloads per month

MPL-2.0 license

9KB
94 lines

colorex

colorex is a simple and flexible Rust library that provides an easy way to style your terminal output with color and text formatting. With support for both RGB and HEX color codes, as well as text styles like bold, italic, underline, strikethrough, and more, it makes your terminal applications visually more appealing and readable.

Features

  • RGB Color Support: Define colors using RGB values (e.g., color_rgb(255, 0, 0)).
  • HEX Color Support: Use HEX color codes (e.g., color_hex("#FF0000")).
  • Text Styles: Bold, italic, underline, strikethrough, dim, and inverted text.
  • Background Colors: Set the background color using RGB or HEX.
  • Chainable API: Apply multiple styles in a single statement using method chaining.

Installation

To use colorex, add it to your Cargo.toml file:

[dependencies]
colorex = "0.1.1"

Usage

Here's how you can use colorex to add color and styles to your terminal output:

use colorex::Colorize;

fn main() {
    // Basic color usage
    println!("{}", "Hello, World!".color("0,255,0"));  // Green text
    println!("{}", "Error!".color("#FF0000"));         // Red text

    // Text styles
    println!("{}", "Bold Text".bold());                // Bold text
    println!("{}", "Italic Text".italic());            // Italic text
    println!("{}", "Underlined Text".underline());     // Underlined text
    println!("{}", "Strikethrough Text".strikethrough()); // Strikethrough text
    println!("{}", "Dim Text".dim());                  // Dim text
    println!("{}", "Inverted Text".invert());          // Inverted (background) text

    // Background color
    println!("{}", "Background Color".bg_color("0,0,255")); // Blue background

    // Combining multiple styles
    println!("{}", "ALL".color("0,255,0").bold().italic().underline().strikethrough().dim().invert().bg_color("0,0,255")); // All styles
}

Supported Styles

  • Color: RGB and HEX color formats.
  • Text Styles:
    • bold()
    • italic()
    • underline()
    • strikethrough()
    • dim()
    • invert()
  • Background Colors: bg_color() with RGB or HEX values.

Example Output

The following example would result in a green-colored "Hello, World!" and a red "Error!" message in the terminal.

println!("{}", "Hello, World!".color("0,255,0"));  // Green text
println!("{}", "Error!".color("#FF0000"));         // Red text

Supported Color Formats

  • RGB: "r,g,b" (e.g., "255,0,0" for red).
  • HEX: "#RRGGBB" (e.g., "#FF0000" for red).

License

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

No runtime deps