mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-06-24 16:21:12 +08:00
48 lines
1011 B
Markdown
48 lines
1011 B
Markdown
![]() |
# Modules {#modules}
|
||
|
|
||
|
FTXUI is organized into three modules, each building upon the previous:
|
||
|
|
||
|
1. @subpage module-screen — low-level rendering
|
||
|
2. @subpage module-dom — layout and composition
|
||
|
3. @subpage module-component — user interaction
|
||
|
|
||
|
---
|
||
|
|
||
|
[ @subpage module-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.
|
||
|
|
||
|
---
|
||
|
|
||
|
[ @subpage module-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.
|
||
|
|
||
|
---
|
||
|
|
||
|
[ @subpage module-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`.
|