Ratatui Macros
ratatui-macros is a Rust crate that provides easy-to-use macros for simplifying boilerplate
associated with creating UI using ratatui.
Features
- Constraint-based Layouts: Easily define layout constraints such as fixed, percentage, minimum, and maximum sizes, as well as ratios.
- Directional Layouts: Specify layouts as either horizontal or vertical with simple macro commands.
- Color palette: Define color palette based on TailwindCSS's expertly-crafted default color palette.
Getting Started
To use ratatui-macros in your Rust project, add it as a dependency in your Cargo.toml:
cargo add ratatui-macros
Then, import the macros in your Rust file:
use ;
Color
The palette! macro allows you to define color palettes with ease. It is based on TailwindCSS's
default color palette.
use Color;
use palette;
palette!;
assert_eq!;
The palette!(pub SLATE) macro expands to the following:
use Color;
pub const SLATE_50: Color = Rgb;
pub const SLATE_100: Color = Rgb;
pub const SLATE_200: Color = Rgb;
pub const SLATE_300: Color = Rgb;
pub const SLATE_400: Color = Rgb;
pub const SLATE_500: Color = Rgb;
pub const SLATE_600: Color = Rgb;
pub const SLATE_700: Color = Rgb;
pub const SLATE_800: Color = Rgb;
pub const SLATE_900: Color = Rgb;
Layout
If you are new to Ratatui, check out https://ratatui.rs/concepts/layout/ before proceeding.
Use the constraints! macro to define layout constraints:
use *;
use constraints;
assert_eq!
use *;
use constraints;
assert_eq!
Use the constraint! macro to define individual constraints:
use *;
use constraint;
assert_eq!
Create vertical and horizontal layouts using the vertical! and horizontal! macros:
use *;
use ;
let area = Rect ;
let = vertical!
.split
.to_vec
.try_into
.unwrap;
assert_eq!;
assert_eq!;
let = horizontal!
.split
.to_vec
.try_into
.unwrap;
assert_eq!;
assert_eq!;
Contributing
Contributions to ratatui-macros are welcome! Whether it's submitting a bug report, a feature
request, or a pull request, all forms of contributions are valued and appreciated.