Files
dioxus/docs/guide/src/en/getting_started/tui.md
T
Marc Espín 98fc153152 Fix: Remove play button from guide example (#1118)
* fix: Remove play button from guide example

* Update index.md

* update other examples
2023-06-28 09:32:42 -05:00

1.6 KiB

Terminal UI

You can build a text-based interface that will run in the terminal using Dioxus.

Hello World screenshot

Note: this book was written with HTML-based platforms in mind. You might be able to follow along with TUI, but you'll have to adapt a bit.

Support

TUI support is currently quite experimental. But, if you're willing to venture into the realm of the unknown, this guide will get you started.

  • It uses flexbox for the layout
  • It only supports a subset of the attributes and elements
  • Regular widgets will not work in the tui render, but the tui renderer has its own widget components that start with a capital letter. See the widgets example
  • 1px is one character line height. Your regular CSS px does not translate
  • If your app panics, your terminal is wrecked. This will be fixed eventually

Getting Set up

Start by making a new package and adding Dioxus and the TUI renderer as dependancies.

cargo new --bin demo
cd demo
cargo add dioxus
cargo add dioxus-tui

Then, edit your main.rs with the basic template.

{{#include ../../../examples/hello_world_tui.rs}}

To run our app:

cargo run

Press "ctrl-c" to close the app. To switch from "ctrl-c" to just "q" to quit you can launch the app with a configuration to disable the default quit and use the root TuiContext to quit on your own.

{{#include ../../../examples/hello_world_tui_no_ctrl_c.rs}}