# Atui v0.1.0 - Table of Contents

> 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.

## Pages

- [Atui](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- Runtime
  - [Atui](Atui.md): A terminal UI toolkit for Elixir, in the shape of Phoenix LiveView.
  - [Atui.Runtime](Atui.Runtime.md): The main IO loop: owns the terminal, the view stack and every view's timer.

- Views
  - [Atui.Panes](Atui.Panes.md): A tiling window manager a view can hold in its own state.
  - [Atui.View](Atui.View.md): The behaviour every screen implements — the LiveView half of Atui.

- Drawing
  - [Atui.Layout](Atui.Layout.md): Splits a rect into non-overlapping rects.
  - [Atui.Rect](Atui.Rect.md): A rectangular region of the terminal, in cell coordinates.
  - [Atui.Screen](Atui.Screen.md): A fixed-size grid of terminal cells that views draw into.
  - [Atui.Style](Atui.Style.md): Colour and text attributes for a cell.

- Terminal
  - [Atui.Input](Atui.Input.md): Reads the terminal and sends decoded keys to a target process.
  - [Atui.Key](Atui.Key.md): Decodes a raw byte stream from the terminal into key events.
  - [Atui.Terminal](Atui.Terminal.md): Terminal setup, teardown and the handful of ANSI sequences the runtime needs.

