kimono 0.0.5

A simple terminal CSS library
Documentation

kimono

A simple terminal css engine inspired by lipgloss for truecolor 24-bit terminals.

cargo add kimono

Example

Unicode text can be styled, padded, and bordered.

use kimono::*;

const STYLE: Style = Style::new()
    .padding_top(1)
    .padding_left(1)
    .padding_right(2)
    .padding_bottom(3)
    .border(1)
    .border_style(BORDER_STYLE_OUTLINE)
    .border_color(0xddae74)
    .border_background(0xbc5633)
    .color(0xebdeb8)
    .background(0x407955);

fn main() {
    print!("{}{}", ClearScreen, CursorMove::XY(10, 3));
    STYLE.render("着物");
    print!("{}", CursorMove::XY(-10, 3));
}

Text can be constrained to height and width.

use kimono::*;

const STYLE: Style = Style::new()
    .padding(1)
    .color(0xfffd7c)
    .width(8)
    .background(0x956471);

fn main() {
    print!("{}{}", ClearScreen, CursorMove::XY(10, 3));
    STYLE.render(text);
    print!("{}", CursorMove::XY(-10, 3));
    println!("{:?}", STYLE.measure("abcdefghijklmno"));
}

Text can be measured.

(8, 5)
use kimono::*;

const STYLE: Style = Style::new()
    .padding(1)
    .color(0xfffd7c)
    .width(8)
    .background(0x956471);

fn main() {
    println!("{:?}", STYLE.measure(abcdefghijklmno));
}

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in kimono by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.