| Crates.io | uxterm |
| lib.rs | uxterm |
| version | 1.1.0 |
| created_at | 2025-08-21 08:20:25.529633+00 |
| updated_at | 2025-10-08 14:22:22.241464+00 |
| description | A user experience-focused terminal UI library built with Crossterm. |
| homepage | https://github.com/pjdur/uxterm |
| repository | https://github.com/pjdur/uxterm |
| max_upload_size | |
| id | 1804439 |
| size | 34,481 |
uxterm is a user experience-focused terminal UI (TUI) library for Rust, built on top of Crossterm. It provides a simple, modular system for building interactive terminal interfaces with checkboxes, sliders, buttons, and labels — all with clean input handling and cross-platform rendering.
Add uxterm to your Cargo.toml:
[dependencies]
uxterm = "1.1.0"
Then build your UI:
use uxterm::*;
fn main() -> std::io::Result<()> {
let mut view = View::new("Ice Cream Selector");
view.add(Label::new("Choose your ice cream flavours:"));
view.add(Checkbox::new("Vanilla"));
view.add(Checkbox::new("Chocolate"));
view.add(Checkbox::new("Strawberry"));
view.add(Checkbox::new("Mint"));
view.add(Checkbox::new("Cookie Dough"));
view.add(Label::new("Press TAB to switch, SPACE to toggle, ESC to finish"));
let result = run(view)?;
println!("\nYour ice cream will include:");
for ingredient in result {
println!("- {}", ingredient);
}
Ok(())
}
tui, terminal, ui, crossterm, ux| Widget | Description |
|---|---|
Label |
Static text |
Checkbox |
Toggleable options |
Slider |
Adjustable numeric input |
Button |
Clickable action (customizable) |
Input |
Text input field |
Pull requests, ideas, and feedback are welcome! Feel free to open an issue or fork the repo to experiment.
Licensed under the MIT License.