# FTXUI: Introduction

Loading...
Searching...
No Matches
Introduction

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 <ftxui/dom/elements.hpp>
#include <ftxui/screen/screen.hpp>
#include <iostream>
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();
}
elements.hpp
main
int main()
Definition examples/component/button.cpp:33
ftxui
The FTXUI ftxui:: namespace.
Definition animation.hpp:10
ftxui::Element
std::shared_ptr< Node > Element
Definition elements.hpp:22
screen.hpp

Expected output:

┌────┐┌────────────────────────────────────┐┌─────┐
│left││middle ││right│
└────┘└────────────────────────────────────┘└─────┘

# Supported Platforms

- Linux
- MacOS
- Windows
- WebAssembly

Next
Getting Started