Packages
A terminal UI toolkit for Elixir, in the shape of Phoenix LiveView: stateful views, tiled windows, styled cells and an IO loop that only writes when the frame changes.
Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog
## 0.1.0
First release as a library.
Extracted from the application it grew inside: `:atui` is now a package with no
application callback module of its own, and the demo it was written against
lives in `demo/` as a separate project depending on it by path.
* `Atui.Runtime` — the IO loop: raw terminal, a stack of views, per-view
timers, and a repaint that writes only when the frame changed
* `Atui.View` — the view behaviour, with `mount/1`, `render/2`, `place/2` and
callbacks for keys, ticks and events
* `Atui.Panes` — a tiling window manager a view holds in its own state:
open and close windows, move focus in two axes, swap positions, one ticker
per pane. Extracted from the demo's root view, where it was not reusable.
* `Atui.Screen` / `Atui.Rect` / `Atui.Layout` — clipped cell drawing, box
borders, geometry and grid splitting
* `Atui.Style` — styles as data, emitted as SGR runs at render time
* `Atui.Key` / `Atui.Input` / `Atui.Terminal` — byte decoding including
modified keys, and the raw-mode setup a BEAM TUI actually needs
* `Atui.version/0` — for an application to put in a title bar