As a backend project, ArthurSonzogni/FTXUI has picked up 10.6k stars on GitHub (C++). :computer: C++ Functional Terminal User Interface. :heart:
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
dom: Layout and composition (hierarchical elements)
component: User interaction (widgets, events, main loop)
For most users, including everything at once is the simplest way to start:
Header: #include <ftxui/ftxui.hpp>
CMake target: ftxui::ftxui
Bazel target: @ftxui//:ftxui
DOM
This module defines a hierarchical set of Element. An Element manages layout and can be responsive to the terminal dimensions.
They are declared in <ftxui/dom/elements.hpp>
Layout
Element can be arranged together:
horizontally with hbox
vertically with vbox
inside a grid with gridbox
wrap along one direction using the flexbox.
Element can become flexible using the flex decorator.
Example using hbox, vbox and filler.
Example using gridbox:
Example using flexbox:
See also this demo.
Style
An element can be decorated using the functions:
bold
italic
dim
inverted
underlined
underlinedDouble
blink
strikethrough
color
bgcolor
hyperlink
Example
FTXUI supports the pipe operator. It means: decorator1(decorator2(element)) and element | decorator1 | decorator2 can be used.
Colors
FTXUI supports every color palette:
Color gallery:
Border and separator
Use decorator border and element separator() to subdivide your UI:
Element document = vbox({
text("top"),
separator(),
text("bottom"),
}) | border;
Demo:
Text and paragraph
A simple piece of text is represented using text("content").
To support text wrapping following spaces the following functions are provided:
Element paragraph(string text);
Element paragraphAlignLeft(string text);
Element paragraphAlignRight(string text);
Element paragraphAlignCenter(string text);
Element paragraphAlignJustify(string text);
Paragraph example
Table
A class to easily style a table of data.
Example:
Canvas
Drawing can be made on a Canvas, using braille, block, or simple characters:
Simple example:
Complex examples:
Component
ftxui/component produces dynamic UI, reactive to the user's input. It defines a set of ftxui::Component. A component reacts to Events (keyboard, mouse, resize, ...) and Renders as an Element (see previous section).
Prebuilt components are declared in <ftxui/component/component.hpp>
Gallery
Gallery of multiple components. (demo)
Radiobox
Example:
Checkbox
Example:
Input
Example:
Toggle
Example:
Slider
Example:
Menu
Example:
ResizableSplit
Example:
Dropdown
Example:
Tab
Vertical:
Horizontal:
Libraries for FTXUI
Want to share a useful Component for FTXUI? Feel free to add yours here
ftxui-grid-container
ftxui-ip-input
ftxui-image-view: For Image Display.
ftxui-navigation-tree
MarkdownFTXUI: Markdown Editor/Viewer for the terminal.
Project using FTXUI
Feel free to add your projects here:
json-tui
git-tui
rgb-tui
chrome-log-beautifier
2048-cpp
BestEdrOfTheMarket
Captain's log
Caravan
CryptoCalculator
FTB - tertminal file browser
FTowerX
Fallout terminal hacking
Lazylist
Memory game
nfolens
Path Finder
Pigeon ROS TUI
SHOOT!
StartUp
Step-Writer
TUISIC
Terminal Animation
TimeAccumulator
UDP chat
VerifySN (Fast Hash Tool)
XJ music
beagle-config
cachyos-cli-installer
eCAL monitor
ftxuiFileReader
ftxui_CPUMeter
hastur
i3-termdialogs
inLimbo
keywords (Play web version :heart:)
ltuiny
openJuice
ostree-tui
OvenbirdBT
pciex
resource-monitor
rw-tui
simpPRU
sweeper (Play web version :heart:)
tabdeeli
terminal-rain
tic-tac-toe
tiles
todoman
turing_cmd
typing-speed-test
vantage
x86-64 CPU Architecture Simulation
C++ Process Manager
cpp-best-practices/game_jam
Several games using the FTXUI have been made during the Game Jam:
TermBreaker [Play web version]
Minesweeper Marathon [Play web version]
Grand Rounds
LightsRound
DanteO
Sumo
Drag Me aROUND
DisarmSelfDestruct
TheWorld
smoothlife
Consu
Build using CMake
It is highly recommended to use CMake FetchContent to depend on FTXUI so you may specify which commit you would like to depend on.
include(FetchContent)
FetchContent_Declare(ftxui
GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui
GIT_TAG v7.0.3
)
FetchContent_MakeAvailable(ftxui)
target_link_libraries(your_target PRIVATE
# Use the umbrella target (recommended)
ftxui::ftxui
# Or chose a submodule
# ftxui::component
# ftxui::dom
# ftxui::screen
)
Build using Bazel
MODULE.bazel
bazel_dep(
name = "ftxui",
version = "7.0.3",
)
BUILD.bazel
cc_binary(
name = "your_target",
srcs = ["your_source.cc"],
deps = [
# Choose submodules
"@ftxui//:component",
"@ftxui//:dom",
"@ftxui//:screen",
# Or use the single ftxui target (includes all modules)
# "@ftxui//:ftxui",
],
)
Build using Meson
FTXUI can also be built using Meson. See doc/installation_meson.md for detailed instructions.
meson setup builddir
ninja -C builddir
To use FTXUI as a subproject in your Meson project, create a subprojects/ftxui.wrap file or use it as a dependency:
ftxui_dep = dependency('ftxui-component')
Build with something else:
If you don't, FTXUI may be used from the following packages:
CMake FetchContent (preferred),
Bazel,
vcpkg,
Conan
Debian package,
Ubuntu package,
Arch Linux,
OpenSUSE,
Nix,
If you choose to build and link FTXUI yourself, ftxui-component must be first in the linking order relative to the other FTXUI libraries, i.e.
How does ArthurSonzogni/FTXUI compare to other Backend projects?
ArthurSonzogni/FTXUI is tracked by TopGit in the Backend category, with 10.6k GitHub stars and written in C++. Browse the Backend topic page on TopGit to compare it against similar projects by stars and activity.
Is ArthurSonzogni/FTXUI open source?
Yes — ArthurSonzogni/FTXUI ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/ArthurSonzogni/FTXUI.
What else is in the Backend space?
ArthurSonzogni/FTXUI is tracked by TopGit under the Backend category, alongside 12 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What is ArthurSonzogni/FTXUI?
ArthurSonzogni/FTXUI (ArthurSonzogni/FTXUI) is a C++ project on GitHub. From the project's own README: :computer: C++ Functional Terminal User Interface. :heart:
Where do I read more about ArthurSonzogni/FTXUI?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/ArthurSonzogni/FTXUI is the definitive source.
Why is ArthurSonzogni/FTXUI categorized under Backend?
TopGit places ArthurSonzogni/FTXUI in the Backend category based on its GitHub topics and description (tagged: "arthursonzogni", "ascii", "ascii-art"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Still deciding about FTXUI?
One click hands the question to an AI along with this page — see what it says about FTXUI.