Expand description
§eddacraft-tui
Shared Ratatui component library for the eddacraft product family.
Provides a consistent set of terminal UI building blocks — themed widgets,
keyboard handling, shell chrome, and a surface abstraction — so that every
eddacraft TUI application shares the same look and feel.
§Quick start
use eddacraft_tui::prelude::*;
let theme = EddaCraftTheme;
// Use any widget with the theme:
// let spinner = Spinner::new(&theme).eddacraft().label("Loading...");
// render_shell(frame, area, ShellBranding::Anvil, "anvil", "Watch", "[q] quit", &theme, env!("CARGO_PKG_VERSION"));§Modules
| Module | Purpose |
|---|---|
widgets | A growing suite of reusable Ratatui widgets (select, text input, progress, data table, tree, modal, toast, overlay, etc.) |
animation | Lightweight shims over the internal animation runtime |
pretext | Two-phase prepare/layout text engine — measure once, lay out cheaply |
theme | Theme trait + EddaCraftTheme implementation |
keyboard | KeyHandler mapping crossterm events to semantic Actions |
surface | Surface trait for multi-screen TUI applications |
shell | Branded header/footer chrome renderer |
compat | Terminal detection and minimum-size validation |
test_utils (feature test-utils) | Snapshot testing helpers for style-aware buffer serialisation |
Modules§
- animation
- Thin shim over the underlying animation runtime so callers depend on eddacraft-tui rather than the third-party crate. This lets us swap the engine without breaking downstream API.
- compat
- Terminal detection and minimum size validation.
- keyboard
- prelude
- pretext
- Pretext layout
- shell
- surface
- test_
utils test-utils - Shared test utilities for TUI snapshot testing.
- theme
- widgets