💻 C++ Functional Terminal User Interface. ❤️
Go to file
tomvg 5e199fcd85
Include <algorithm> for std::max for msvc 2017, (#226)
Msvc defined its own (lowercase) macros for min/max. Because of this, the std::min and std::max functions need to be explicitly included or otherwise are not availible.
In the msvc 2019 compiler this issue seems fixed. However, on msvc 2017 not including <algorithm> causes compilation errors. Adding the include is a simple fix that does not hurt the other platforms and enables compilation on msvc 2017.
2021-10-12 11:36:19 +02:00
.github Do not trigger the CQ twice on pull request. 2021-09-30 21:44:29 +02:00
.nxxm Add nxxm suport. 2020-12-21 15:36:04 +01:00
cmake Add workflow creating releases. 2021-09-30 21:25:47 +02:00
doc Update docs to use std::string. (#184) 2021-08-09 22:51:48 +02:00
examples Use vscroll_indicator in examples. 2021-09-30 20:55:47 +02:00
include/ftxui feat: Dropdown select menu. (#214) 2021-09-30 20:55:47 +02:00
src/ftxui Include <algorithm> for std::max for msvc 2017, (#226) 2021-10-12 11:36:19 +02: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 Support dynamic library. (#225) 2021-10-10 12:52:34 +02:00
CMakeLists.txt Support dynamic library. (#225) 2021-10-10 12:52:34 +02:00
ftxui-config.cmake.in add dependency to Threads into generated cmake config (#52) 2020-10-16 22:07:30 +02:00
iwyu.imp Run IWYU. (#208) 2021-09-16 20:45:26 +02:00
LICENSE Add LICENSE. Add take_any_args. 2019-01-06 16:14:19 +01:00
README.md Update README.md 2021-10-08 14:12:27 +02: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

  • linux-emscripten
  • linux-gcc linux-clang
  • windows-msvc
  • mac-clang

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: