# tuix v0.1.0 - Table of Contents

> An OpenTUI-inspired terminal UI framework for Elixir

## Pages

- [Tuix](readme.md)

## Modules

- [Tuix](Tuix.md): Tuix is a terminal UI framework for Elixir, inspired by
[OpenTUI](https://opentui.com).
- [Tuix.App](Tuix.App.md): The behaviour for Tuix applications, modeled after Phoenix LiveView.
- [Tuix.Buffer](Tuix.Buffer.md): A 2D grid of `Tuix.Cell`s representing one terminal frame.
- [Tuix.Cell](Tuix.Cell.md): A single terminal cell: one grapheme plus its styling.
- [Tuix.Color](Tuix.Color.md): Color parsing and SGR code generation.
- [Tuix.Components](Tuix.Components.md): Functions and macros for building the element tree returned by
`c:Tuix.App.render/1`.
- [Tuix.Element](Tuix.Element.md): A node in the declarative UI tree.
- [Tuix.Event](Tuix.Event.md): Events delivered to a `Tuix.App`'s `c:Tuix.App.handle_event/2` callback.

- [Tuix.Event.Key](Tuix.Event.Key.md): A keyboard event.
- [Tuix.Event.Resize](Tuix.Event.Resize.md): A terminal resize event.
- [Tuix.Input](Tuix.Input.md): Reads raw bytes from stdin in a blocking loop and sends parsed key events
to the runtime as `{:tuix_input, %Tuix.Event.Key{}}` messages.
- [Tuix.Input.Parser](Tuix.Input.Parser.md): Incremental parser turning raw terminal input bytes into `Tuix.Event.Key`
structs.
- [Tuix.Layout](Tuix.Layout.md): Flexbox-subset layout engine.
- [Tuix.Layout.Placed](Tuix.Layout.Placed.md): An element resolved to an absolute rectangle.
- [Tuix.Renderer](Tuix.Renderer.md): Paints a placed element tree into a `Tuix.Buffer` and serializes frames
(or frame diffs) into ANSI iodata.

- [Tuix.Runtime](Tuix.Runtime.md): The event loop: holds the `Tuix.App` state, dispatches input and resize
events to the app's callbacks, and re-renders after every state change.
- [Tuix.Terminal](Tuix.Terminal.md): Owns the terminal: switches it into raw mode and the alternate screen on
start, and restores it on shutdown — including crash shutdowns.
- [Tuix.Terminal.ANSI](Tuix.Terminal.ANSI.md): Builders for the ANSI escape sequences on the frame-rendering hot path.
- [Tuix.TestRenderer](Tuix.TestRenderer.md): Renders element trees (or whole apps) to buffers and text snapshots without
touching the terminal. The Tuix analog of OpenTUI's `createTestRenderer`.

