These gifs were created using Charm VHS.
NOTE: there is some unresolved weirdness about how these examples render using VHS that are not quite the same as how TUI renders in most terminals.
Barchart (barchart.rs
cargo run --example=barchart --features=crossterm
Block (block.rs)
cargo run --example=block --features=crossterm
Calendar (calendar.rs)
cargo run --example=calendar --features=crossterm widget-calendar
Canvas (canvas.rs)
cargo run --example=canvas --features=crossterm
Note: VHS renders braille dots incorrectly - this is fixed in an unrelease version. See charmbracelet/vhs#322
Chart (chart.rs)
cargo run --example=chart --features=crossterm
Note: VHS renders braille dots incorrectly - this is fixed in an unrelease version. See charmbracelet/vhs#322
Custom Widget (custom_widget.rs)
cargo run --example=custom_widget --features=crossterm
This is not a particularly exciting example visually, but it demonstrates how to implement your own widget.
Gauge (gauge.rs)
TODO: work out why the gauge background is rendering poorly via VHS.
cargo run --example=gauge --features=crossterm
Hello World (hello_world.rs)
cargo run --example=hello_world --features=crossterm
This is a pretty boring example, but it contains some good comments of documentation on some of the standard approaches to writing tui apps.
Inline (inline.rs)
cargo run --example=inline --features=crossterm
Layout (layout.rs)
cargo run --example=layout --features=crossterm
List (list.rs)
cargo run --example=list --features=crossterm
Panic (panic.rs)
cargo run --example=panic --features=crossterm
Paragraph (paragraph.rs)
cargo run --example=paragraph --features=crossterm
Popup (popup.rs)
cargo run --example=popup --features=crossterm
TODO: Work out why the background after the popup is rendered wrong.
Scrollbar (scrollbar.rs)
cargo run --example=scrollbar --features=crossterm
Sparkline (sparkline.rs)
cargo run --example=sparkline --features=crossterm
Table (table.rs)
cargo run --example=table --features=crossterm
Tabs (tabs.rs)
cargo run --example=tabs --features=crossterm
User Input (user_input.rs)
cargo run --example=user_input --features=crossterm