💻 C++ Functional Terminal User Interface. ❤️
Go to file
Arthur Sonzogni 52276c8a2b
Bugfix Input use std::string (#279)
Use std::string by default for the implementation of FTXUI's input
component.

Along the way:
- Give a correct implementation for fullwidth characters.
- Add tests
- Modify the way the cursor is drawn.
2021-12-12 21:31:54 +01:00
.github Fix Windows builds not being in Release mode (#245) 2021-10-22 18:06:19 +02:00
.nxxm Add nxxm suport. 2020-12-21 15:36:04 +01:00
cmake Implement flexbox (#277) 2021-12-11 17:58:25 +01:00
doc Update docs to use std::string. (#184) 2021-08-09 22:51:48 +02:00
examples Implement flexbox (#277) 2021-12-11 17:58:25 +01:00
include/ftxui Bugfix Input use std::string (#279) 2021-12-12 21:31:54 +01:00
src/ftxui Bugfix Input use std::string (#279) 2021-12-12 21:31:54 +01:00
tools Improve documentation workflow (#163) 2021-07-23 08:40:47 +02:00
.clang-format Variou details: 2020-08-28 23:54:25 +02:00
CHANGELOG.md Bugfix Input use std::string (#279) 2021-12-12 21:31:54 +01:00
CMakeLists.txt Implement flexbox (#277) 2021-12-11 17:58:25 +01:00
ftxui-config.cmake.in add dependency to Threads into generated cmake config (#52) 2020-10-16 22:07:30 +02:00
iwyu.imp Implement flexbox (#277) 2021-12-11 17:58:25 +01:00
LICENSE Add LICENSE. Add take_any_args. 2019-01-06 16:14:19 +01:00
README.md adding to projects using FTXUI list (#274) 2021-12-06 20:18:09 +01:00

Demo image

Documentation · Report Bug · Examples . Request Feature · Send a Pull Request

FTXUI

Functional Terminal (X) User interface

A simple C++ library for terminal based user interface.

Feature

  • Functional style. Inspired by [1] and React
  • Simple and elegant syntax (in my opinion).
  • Support for UTF8 and fullwidth chars (→ 测试).
  • No dependencies.
  • Cross platform. Linux/mac (main target), Windows (experimental thanks to contributors), WebAssembly.
  • Keyboard & mouse navigation.

Operating systems

  • Webassembly
  • Linux
  • MacOS
  • Windows

Example

  vbox({
    hbox({
      text("left") | border,
      text("middle") | border | flex,
      text("right") | border,
    }),
    gauge(0.5) | border,
  });
┌────┐┌───────────────────────────────────────────────────────────────┐┌─────┐
│left││middle                                                         ││right│
└────┘└───────────────────────────────────────────────────────────────┘└─────┘
┌────────────────────────────────────────────────────────────────────────────┐
│██████████████████████████████████████                                      │
└────────────────────────────────────────────────────────────────────────────┘

Documentation

Project using FTXUI

Feel free to add your projects here:

Hosted on

External package

It is highly recommanded to use cmake FetchContent to depends on FTXUI. This way you can specify which commit you would like to depends on.

If you don't, the following packages have been created: