@mainpage Introduction @tableofcontents Demo image **FTXUI** is simple cross-platform C++ library for terminal based user interfaces! # Feature * Functional style. Inspired by [1](https://hackernoon.com/building-reactive-terminal-interfaces-in-c-d392ce34e649?gi=d9fb9ce35901) and [React](https://reactjs.org/) * No dependencies * **Cross platform**. * Simple and elegant syntax (in my opinion) * Keyboard & mouse navigation. * Support for [UTF8](https://en.wikipedia.org/wiki/UTF-8) and [fullwidth chars](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) (→ 测试) * Support for animations. [Demo 1](https://arthursonzogni.github.io/FTXUI/examples/?file=component/menu_underline_animated_gallery), [Demo 2](https://arthursonzogni.github.io/FTXUI/examples/?file=component/button_style) * Support for drawing. [Demo](https://arthursonzogni.github.io/FTXUI/examples/?file=component/canvas_animated) * Learn by [examples](#documentation), and [tutorials](#documentation) * Multiple build system and packages: * Good practices: documentation, tests, fuzzers, performance tests, automated CI, automated packaging, etc... # Example ```cpp #include #include #include int main() { using namespace ftxui; // Create a simple document with three text elements. Element document = hbox({ text("left") | border, text("middle") | border | flex, text("right") | border, }); // Create a screen with full width and height fitting the document. auto screen = Screen::Create( Dimension::Full(), // Width Dimension::Fit(document) // Height ); // Render the document onto the screen. Render(screen, document); // Print the screen to the console. screen.Print(); } ``` Expected output: ``` ┌────┐┌────────────────────────────────────┐┌─────┐ │left││middle ││right│ └────┘└────────────────────────────────────┘└─────┘ ``` # Supported Platforms - Linux - MacOS - Windows - WebAssembly
| Next | |--------------------------------------:| | [Getting Started](getting-started.html) |