
FTXUI is simple cross-platform C++ library for terminal based user interfaces!
Feature
- Functional style. Inspired by 1 and React
- No dependencies
- Cross platform.
- Simple and elegant syntax (in my opinion)
- Keyboard & mouse navigation.
- Support for UTF8 and fullwidth chars (→ 测试)
- Support for animations. Demo 1, Demo 2
- Support for drawing. Demo
- Learn by examples, and tutorials
- Multiple build system and packages:
- Good practices: documentation, tests, fuzzers, performance tests, automated CI, automated packaging, etc...
Example
#include <iostream>
text("left") | border,
text("middle") | border | flex,
text("right") | border,
});
auto screen = Screen::Create(
Dimension::Full(),
Dimension::Fit(document)
);
Render(screen, document);
screen.Print();
}
The FTXUI ftxui:: namespace.
std::shared_ptr< Node > Element
Expected output:
┌────┐┌────────────────────────────────────┐┌─────┐
│left││middle ││right│
└────┘└────────────────────────────────────┘└─────┘
Supported Platforms
- Linux
- MacOS
- Windows
- WebAssembly