ratatui/examples
Emirhan TALA 330a899eac
docs(examples): update table example and table.tape (#840)
In table.rs
- added scrollbar to the table
- colors changed to use style::palette::tailwind
- now colors can be changed with keys (l or →) for the next color, (h or
←) for the previous color
- added a footer for key info

For table.tape
- typing speed changed to 0.75s from 0.5s
- screen size changed to fit
- pushed keys changed to show the current example better

Fixes: https://github.com/ratatui-org/ratatui/issues/800
2024-01-19 03:26:09 -08:00
..
demo feat(tabs): accept Iterators of Line in constructors (#776) 2024-01-10 17:16:44 -08:00
demo2 feat(demo2): add destroy mode to celebrate commit 1000! (#809) 2024-01-13 15:13:50 -08:00
barchart.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
barchart.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
block.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
block.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
calendar.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
calendar.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
canvas.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
canvas.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
chart.rs fix(chart): exclude unnamed datasets from legend (#753) 2024-01-07 13:21:38 +01:00
chart.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
colors.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
colors.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
colors_rgb.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
colors_rgb.tape docs(examples): add animation and FPS counter to colors_rgb (#583) 2023-12-17 01:34:59 -08:00
constraints.rs refactor(example): improve constraints and flex examples (#817) 2024-01-15 20:56:40 -08:00
constraints.tape refactor(example): improve constraints and flex examples (#817) 2024-01-15 20:56:40 -08:00
custom_widget.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
custom_widget.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
demo.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
demo2-destroy.tape feat(demo2): add destroy mode to celebrate commit 1000! (#809) 2024-01-13 15:13:50 -08:00
demo2-social.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
demo2.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
docsrs.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
docsrs.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
flex.rs feat: Add spacing feature to flex example (#830) 2024-01-16 17:19:23 +01:00
flex.tape refactor(example): add scroll to flex example (#811) 2024-01-14 10:49:45 -05:00
gauge.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
gauge.tape fix(gauge): fix gauge widget colors (#572) 2023-10-19 04:29:53 -07:00
generate.bash docs(examples): update examples readme (#576) 2023-10-20 21:41:36 +02:00
hello_world.rs feat(frame)!: Remove generic Backend parameter (#530) 2023-09-25 22:30:36 -07:00
hello_world.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
inline.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
inline.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
layout.rs feat: Add Constraint::Fixed and Constraint::Proportional (#783) 2024-01-12 21:11:15 -05:00
layout.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
list.rs fix(list): Modify List and List example to support saving offsets. (#667) 2024-01-19 09:17:39 +01:00
list.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
modifiers.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
modifiers.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
panic.rs feat(frame)!: Remove generic Backend parameter (#530) 2023-09-25 22:30:36 -07:00
panic.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
paragraph.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
paragraph.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
popup.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
popup.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
ratatui-logo.rs docs(examples): Add example of half block rendering (#687) 2023-12-13 18:25:21 -08:00
ratatui-logo.tape docs(examples): Add example of half block rendering (#687) 2023-12-13 18:25:21 -08:00
README.md docs(examples): update table example and table.tape (#840) 2024-01-19 03:26:09 -08:00
scrollbar.rs docs(scrollbar): complete scrollbar documentation (#823) 2024-01-15 18:37:55 +01:00
scrollbar.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
sparkline.rs docs(examples): simplify docs using new layout methods (#731) 2024-01-05 07:45:14 -08:00
sparkline.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
table.rs docs(examples): update table example and table.tape (#840) 2024-01-19 03:26:09 -08:00
table.tape docs(examples): update table example and table.tape (#840) 2024-01-19 03:26:09 -08:00
tabs.rs feat(tabs): accept Iterators of Line in constructors (#776) 2024-01-10 17:16:44 -08:00
tabs.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00
user_input.rs refactor!: make patch_style & reset_style chainable (#754) 2024-01-07 12:58:13 +01:00
user_input.tape docs(examples): udpate theme to Aardvark Blue (#574) 2023-10-18 13:35:51 +02:00

Examples

This folder contains unreleased code. View the examples for the latest release (0.25.0) instead.

Warning

There are backwards incompatible changes in these examples, as they are designed to compile against the main branch.

There are a few workaround for this problem:

  • View the examples as they were when the latest version was release by selecting the tag that matches that version. E.g. https://github.com/ratatui-org/ratatui/tree/v0.25.0/examples. There is a combo box at the top of this page which allows you to select any previous tagged version.
  • To view the code locally, checkout the tag using git switch --detach v0.25.0.
  • Use the latest alpha version of Ratatui. These are released weekly on Saturdays.
  • Compile your code against the main branch either locally by adding e.g. path = "../ratatui" to the dependency, or remotely by adding git = "https://github.com/ratatui-org/ratatui"

For a list of unreleased breaking changes, see BREAKING-CHANGES.md.

We don't keep the CHANGELOG updated with unreleased changes, check the git commit history or run git-cliff -u against a cloned version of this repository.

Demo2

This is the demo example from the main README and crate page. Source: demo2.

cargo run --example=demo2 --features="crossterm widget-calendar"

Demo2

Demo

This is the previous 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

Demo

Hello World

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

Hello World

Barchart

Demonstrates the BarChart widget. Source: barchart.rs.

cargo run --example=barchart --features=crossterm

Barchart

Block

Demonstrates the Block widget. Source: block.rs.

cargo run --example=block --features=crossterm

Block

Calendar

Demonstrates the Calendar widget. Source: calendar.rs.

cargo run --example=calendar --features="crossterm widget-calendar"

Calendar

Canvas

Demonstrates the Canvas widget and related shapes in the canvas module. Source: canvas.rs.

cargo run --example=canvas --features=crossterm

Canvas

Chart

Demonstrates the Chart widget. Source: chart.rs.

cargo run --example=chart --features=crossterm

Chart

Colors

Demonstrates the available Color options. These can be used in any style field. Source: colors.rs.

cargo run --example=colors --features=crossterm

Colors

Colors (RGB)

Demonstrates the available RGB Color options. These can be used in any style field. Source: colors_rgb.rs. Uses a half block technique to render two square-ish pixels in the space of a single rectangular terminal cell.

cargo run --example=colors_rgb --features=crossterm

Note: VHs renders full screen animations poorly, so this is a screen capture rather than the output of the VHS tape.

https://github.com/ratatui-org/ratatui/assets/381361/485e775a-e0b5-4133-899b-1e8aeb56e774

Custom Widget

Demonstrates how to implement the Widget trait. Also shows mouse interaction. Source: custom_widget.rs.

cargo run --example=custom_widget --features=crossterm

Custom Widget

Gauge

Demonstrates the Gauge widget. Source: gauge.rs.

cargo run --example=gauge --features=crossterm

Gauge

Inline

Demonstrates how to use the Inline Viewport mode for ratatui apps. Source: inline.rs.

cargo run --example=inline --features=crossterm

Inline

Layout

Demonstrates the Layout and interaction between each constraint. Source: layout.rs.

cargo run --example=layout --features=crossterm

Layout

List

Demonstrates the List widget. Source: list.rs.

cargo run --example=list --features=crossterm

List

Modifiers

Demonstrates the style Modifiers. Source: modifiers.rs.

cargo run --example=modifiers --features=crossterm

Modifiers

Panic

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

Panic

Paragraph

Demonstrates the Paragraph widget. Source: paragraph.rs

cargo run --example=paragraph --features=crossterm

Paragraph

Popup

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

Popup

A fun example of using half blocks to render graphics Source: ratatui-logo.rs.

cargo run --example=ratatui-logo --features=crossterm

Ratatui Logo

Scrollbar

Demonstrates the Scrollbar widget. Source: scrollbar.rs.

cargo run --example=scrollbar --features=crossterm

Scrollbar

Sparkline

Demonstrates the Sparkline widget. Source: sparkline.rs.

cargo run --example=sparkline --features=crossterm

Sparkline

Table

Demonstrates the Table widget. Source: table.rs.

cargo run --example=table --features=crossterm

Table

Tabs

Demonstrates the Tabs widget. Source: tabs.rs.

cargo run --example=tabs --features=crossterm

Tabs

User Input

Demonstrates one approach to accepting user input. Source user_input.rs.

Note

Consider using tui-textarea or tui-input crates for more functional text entry UIs.

cargo run --example=user_input --features=crossterm

User Input

How to update these examples

These gifs were created using VHS. Each example has a corresponding .tape file that holds instructions for how to generate the images. Note that the images themselves are stored in a separate images git branch to avoid bloating the main repository.