Guides for using the library. API details also live in /// doc comments on each public function (HexDocs after publish).
| Guide | Contents |
|---|---|
| Getting started | Dependency, minimal app, app loop, crash-restore |
| Layout | geometry.split, constraints, spacing |
| Styling | Colors, modifiers, spans |
| Themes | Built-in palettes and runtime switching |
| Widgets | Full widget reference |
| Custom widgets | Composition, stateful/animated helpers |
| Animation | run_animated, anim helpers |
| Focus | FocusRing for multi-panel UIs |
| Migrating to 2.0 | What changed from 1.x, what breaks, and what does not |
| Terminal state | What is restored on the way out, and what happens when nothing gets to run |
| Target | Backend | App loop |
|---|---|---|
| Erlang (default) | etui/backend/erlang via default.new() |
app.run_buffered → AppResult |
| JavaScript (Node) | etui/backend/node via default.new() |
app.run_buffered → Promise(AppResult) |
Use gleam run --target erlang for terminal apps and gleam run --target javascript for the JS smoke path.
Runnable demos live under dev/ (not shipped on Hex): etui_showcase, etui_filebrowser, etui_interactive, etc.