# ftxui {#ftxui}  FTXUI is organized into three modules, each building upon the previous: 1. [ftxui/screen](#module-screen) - Low-level rendering 2. [ftxui/dom](#module-dom) - Layout and composition 3. [ftxui/component](#module-component) - User interaction --- # ftxui/screen Defines: - **`ftxui::Screen`**: a 2D grid of styled characters. - **`ftxui::Pixel`**: the unit of rendering. - Helpers like `ftxui::Color` and `Dimension`. Use for direct terminal drawing and styling.
--- # ftxui/dom Provides: - **`ftxui::Element`**: a tree structure for layout and UI. - Composable and responsive elements. - `Render()` to draw onto a `Screen`. Ideal for structured, styled UIs. --- # ftxui/component Adds: - **`ftxui::Component`**: stateful, interactive widgets. - Built-ins: `Checkbox`, `Input`, `Menu`, `Button`. - Supports keyboard/cursor input and composition. Use for interactive apps. --- Modules can be used independently, or together: `screen → dom → component`.