# cringe v0.5.0 - Table of Contents

> OTP-native terminal UI toolkit for Elixir

## Pages

- [Cringe](readme.md)
- [Changelog](changelog.md)

## Modules

- [Cringe](Cringe.md): OTP-native terminal UI toolkit for Elixir.
- [Cringe.App](Cringe.App.md): Behaviour and macro for Cringe applications.

- [Cringe.Assertions](Cringe.Assertions.md): ExUnit assertions for Cringe documents and apps.

- [Cringe.Canvas](Cringe.Canvas.md): Fixed-size render surface for terminal lines.

- [Cringe.Case](Cringe.Case.md): Convenience imports for Cringe ExUnit tests.
- [Cringe.DSL](Cringe.DSL.md): Block-oriented document DSL.

- [Cringe.Document](Cringe.Document.md): Terminal document helpers.

- [Cringe.Document.Box](Cringe.Document.Box.md): Box container node for terminal documents.

- [Cringe.Document.Stack](Cringe.Document.Stack.md): Ordered container node for terminal documents.

- [Cringe.Document.Text](Cringe.Document.Text.md): Text node for terminal documents.

- [Cringe.Driver](Cringe.Driver.md): Test driver helpers for Cringe apps.

- [Cringe.Event](Cringe.Event.md): Semantic runtime input events.

- [Cringe.Event.Key](Cringe.Event.Key.md): Keyboard event.

- [Cringe.Event.Resize](Cringe.Event.Resize.md): Terminal resize event.

- [Cringe.Event.Text](Cringe.Event.Text.md): Text input event.

- [Cringe.Event.Tick](Cringe.Event.Tick.md): Timer tick event.

- [Cringe.Focus](Cringe.Focus.md): Deterministic focus ring helpers.

- [Cringe.Frame](Cringe.Frame.md): Rendered terminal frame.

- [Cringe.Layout.Constraint](Cringe.Layout.Constraint.md): Layout constraints derived from render options.

- [Cringe.Layout.Engine](Cringe.Layout.Engine.md): Lays out document trees into positioned layout nodes.

- [Cringe.Layout.Node](Cringe.Layout.Node.md): Positioned result of laying out a document node.

- [Cringe.Layout.Size](Cringe.Layout.Size.md): Two-dimensional layout size.

- [Cringe.Measure](Cringe.Measure.md): Terminal-cell measurement and clipping helpers.
- [Cringe.Painter](Cringe.Painter.md): Stateful terminal frame painter.
- [Cringe.Rect](Cringe.Rect.md): Rectangle used by layout and painting code.

- [Cringe.Renderer](Cringe.Renderer.md): Renders Cringe documents into terminal text.

- [Cringe.Renderer.Draw](Cringe.Renderer.Draw.md): Draws layout nodes into terminal frames.

- [Cringe.Runtime](Cringe.Runtime.md): Supervised runtime for Cringe apps.

- [Cringe.Runtime.Backend](Cringe.Runtime.Backend.md): Behaviour for runtime output backends.

- [Cringe.Runtime.Backend.IO](Cringe.Runtime.Backend.IO.md): Runtime backend that writes rendered frames to an Elixir IO device.
- [Cringe.Runtime.Backend.Terminal](Cringe.Runtime.Backend.Terminal.md): Terminal backend backed by `Ghostty.TTY`.
- [Cringe.Runtime.Backend.Test](Cringe.Runtime.Backend.Test.md): In-memory runtime backend for tests.

- [Cringe.Runtime.Supervisor](Cringe.Runtime.Supervisor.md): Supervisor for a Cringe runtime process.

- [Cringe.Style](Cringe.Style.md): Small style normalization helpers shared by widgets.

- [Cringe.Terminal.KeyDecoder](Cringe.Terminal.KeyDecoder.md): Adapts Ghostty terminal key decoding into Cringe events.

- [Cringe.Theme](Cringe.Theme.md): Default widget theme tokens.

- [Cringe.Widgets.Input](Cringe.Widgets.Input.md): Render-only text input widget and explicit input update helpers.

- [Cringe.Widgets.Input.State](Cringe.Widgets.Input.State.md): Explicit state for cursor-aware input editing.

- [Cringe.Widgets.Progress](Cringe.Widgets.Progress.md): Render-only progress bar widget.

- [Cringe.Widgets.Select](Cringe.Widgets.Select.md): Render-only select/list widget and explicit selection update helpers.

- [Cringe.Widgets.Spinner](Cringe.Widgets.Spinner.md): Render-only spinner widget.

