These gifs were created using Charm VHS.
VHS has a problem rendering some background color transitions, which shows up in several examples below. See charmbracelet/vhs#344 for more info. These problems don't occur in a terminal.
This is the demo example from the main README. It is available for each of the backends. Source: demo.rs.
cargo run --example=demo --features=crossterm
cargo run --example=demo --no-default-features --features=termion
cargo run --example=demo --no-default-features --features=termwiz
This is a pretty boring example, but it contains some good documentation on writing tui apps. Source: hello_world.rs.
cargo run --example=hello_world --features=crossterm
Demonstrates the BarChart
widget. Source: barchart.rs.
cargo run --example=barchart --features=crossterm
Demonstrates the Block
widget. Source: block.rs.
cargo run --example=block --features=crossterm
Demonstrates the Calendar
widget. Source: calendar.rs.
cargo run --example=calendar --features=crossterm widget-calendar
Demonstrates the Canvas
widget
and related shapes in the
canvas
module. Source:
canvas.rs.
cargo run --example=canvas --features=crossterm
Demonstrates the Chart
widget.
Source: chart.rs.
cargo run --example=chart --features=crossterm
Demonstrates the available Color
options. These can be used in any style field. Source: colors.rs.
cargo run --example=colors --features=crossterm
Demonstrates the available RGB
Color
options. These can be used
in any style field. Source: colors_rgb.rs.
cargo run --example=colors_rgb --features=crossterm
Demonstrates how to implement the
Widget
trait. Source:
custom_widget.rs.
cargo run --example=custom_widget --features=crossterm
Demonstrates the Gauge
widget.
Source: gauge.rs.
[!NOTE] The backgrounds render poorly when we generate this example using VHS. This problem doesn't generally happen during normal rendering in a terminal. See vhs#344 for more details.
cargo run --example=gauge --features=crossterm
Demonstrates the
Inline
Viewport mode for ratatui apps. Source: inline.rs.
cargo run --example=inline --features=crossterm
Demonstrates the Layout
and
interaction between each constraint. Source: layout.rs.
cargo run --example=layout --features=crossterm
Demonstrates the List
widget.
Source: list.rs.
cargo run --example=list --features=crossterm
Demonstrates the style
Modifiers
. Source:
modifiers.rs.
cargo run --example=modifiers --features=crossterm
Demonstrates how to handle panics by ensuring that panic messages are written correctly to the screen. Source: panic.rs.
cargo run --example=panic --features=crossterm
Demonstrates the Paragraph
widget. Source: paragraph.rs
cargo run --example=paragraph --features=crossterm
Demonstrates how to render a widget over the top of previously rendered widgets using the
Clear
widget. Source:
popup.rs.
cargo run --example=popup --features=crossterm
[!NOTE] The background renders poorly after the popup when we generate this example using VHS. This problem doesn't generally happen during normal rendering in a terminal. See vhs#344 for more details.
Demonstrates the Scrollbar
widget. Source: scrollbar.rs.
cargo run --example=scrollbar --features=crossterm
Demonstrates the Sparkline
widget. Source: sparkline.rs.
[!NOTE] The background renders poorly in the second sparkline when we generate this example using VHS. This problem doesn't generally happen during normal rendering in a terminal. See vhs#344 for more details.
cargo run --example=sparkline --features=crossterm
Demonstrates the Table
widget.
Source: table.rs.
cargo run --example=table --features=crossterm
Demonstrates the Tabs
widget.
Source: tabs.rs.
cargo run --example=tabs --features=crossterm
Demonstrates one approach to accepting user input. Source user_input.rs.
[!NOTE] Consider using
tui-textarea
ortui-input
crates for more functional text entry UIs.
cargo run --example=user_input --features=crossterm