{"id":15109658,"url":"https://github.com/arthursonzogni/ftxui","last_synced_at":"2025-05-15T00:00:40.713Z","repository":{"id":37405472,"uuid":"167828165","full_name":"ArthurSonzogni/FTXUI","owner":"ArthurSonzogni","description":":computer: C++ Functional Terminal User Interface. :heart:","archived":false,"fork":false,"pushed_at":"2025-05-07T21:02:07.000Z","size":22152,"stargazers_count":8189,"open_issues_count":81,"forks_count":474,"subscribers_count":81,"default_branch":"main","last_synced_at":"2025-05-07T23:29:43.008Z","etag":null,"topics":["arthursonzogni","ascii","ascii-art","cpp","curse","simple","terminal","terminal-based","tui","ui","user-interface","xterm"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArthurSonzogni.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["ArthurSonzogni"]}},"created_at":"2019-01-27T16:06:20.000Z","updated_at":"2025-05-07T23:01:31.000Z","dependencies_parsed_at":"2023-10-20T17:35:25.206Z","dependency_job_id":"16f866ab-cd11-4e89-b756-31456951c989","html_url":"https://github.com/ArthurSonzogni/FTXUI","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurSonzogni%2FFTXUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurSonzogni%2FFTXUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurSonzogni%2FFTXUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurSonzogni%2FFTXUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArthurSonzogni","download_url":"https://codeload.github.com/ArthurSonzogni/FTXUI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254249199,"owners_count":22039029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arthursonzogni","ascii","ascii-art","cpp","curse","simple","terminal","terminal-based","tui","ui","user-interface","xterm"],"created_at":"2024-09-25T23:20:25.680Z","updated_at":"2025-05-15T00:00:40.672Z","avatar_url":"https://github.com/ArthurSonzogni.png","language":"C++","funding_links":["https://github.com/sponsors/ArthurSonzogni"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/ArthurSonzogni/FTXUI/assets/4759106/6925b6da-0a7e-49d9-883c-c890e1f36007\" alt=\"Demo image\"\u003e\u003c/img\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/c++-%2300599C.svg?style=flat\u0026logo=c%2B%2B\u0026logoColor=white\"\u003e\u003c/img\u003e\u003c/a\u003e\n  \u003ca href=\"http://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/github/license/arthursonzogni/FTXUI?color=black\"\u003e\u003c/img\u003e\u003c/a\u003e\n  \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/ArthurSonzogni/FTXUI\"\u003e\u003c/img\u003e\u003c/a\u003e\n  \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/ArthurSonzogni/FTXUI\"\u003e\u003c/img\u003e\u003c/a\u003e\n  \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/github/repo-size/ArthurSonzogni/FTXUI\"\u003e\u003c/img\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ArthurSonzogni/FTXUI/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/arthursonzogni/FTXUI?color=blue\"\u003e\u003c/img\u003e\u003c/a\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"https://github.com/ArthurSonzogni/FTXUI/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/ArthurSonzogni/FTXUI\"\u003e\u003c/img\u003e\u003c/a\u003e\n  \u003ca href=\"https://repology.org/project/ftxui/versions\"\u003e\u003cimg src=\"https://repology.org/badge/latest-versions/ftxui.svg\" alt=\"latest packaged version(s)\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/ArthurSonzogni/FTXUI\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/ArthurSonzogni/FTXUI/branch/master/graph/badge.svg?token=C41FdRpNVA\"/\u003e\n  \u003c/a\u003e\n\n  \n  \u003cbr/\u003e\n  \u003ca href=\"https://arthursonzogni.github.io/FTXUI/\"\u003eDocumentation\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/ArthurSonzogni/FTXUI/issues\"\u003eReport a Bug\u003c/a\u003e ·\n  \u003ca href=\"https://arthursonzogni.github.io/FTXUI/examples.html\"\u003eExamples\u003c/a\u003e .\n  \u003ca href=\"https://github.com/ArthurSonzogni/FTXUI/issues\"\u003eRequest Feature\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/ArthurSonzogni/FTXUI/pulls\"\u003eSend a Pull Request\u003c/a\u003e\n\n\u003c/p\u003e\n\n# FTXUI\n\n\u003ci\u003eFunctional Terminal (X) User interface\u003c/i\u003e\n\nA simple cross-platform C++ library for terminal based user interfaces!\n\n## Feature\n * Functional style. Inspired by\n   [1](https://hackernoon.com/building-reactive-terminal-interfaces-in-c-d392ce34e649?gi=d9fb9ce35901)\n   and [React](https://reactjs.org/)\n * Simple and elegant syntax (in my opinion)\n * Keyboard \u0026 mouse navigation.\n * Support for [UTF8](https://en.wikipedia.org/wiki/UTF-8) and [fullwidth chars](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) (→ 测试)\n * Support for animations. [Demo 1](https://arthursonzogni.github.io/FTXUI/examples/?file=component/menu_underline_animated_gallery), [Demo 2](https://arthursonzogni.github.io/FTXUI/examples/?file=component/button_style)\n * Support for drawing. [Demo](https://arthursonzogni.github.io/FTXUI/examples/?file=component/canvas_animated)\n * No dependencies\n * **Cross platform**: Linux/MacOS (main target), WebAssembly, Windows (Thanks to contributors!).\n * Learn by [examples](#documentation), and [tutorials](#documentation)\n * Multiple packages:\n     - CMake [FetchContent]([https://bewagner.net/programming/2020/05/02/cmake-fetchcontent/](https://cmake.org/cmake/help/latest/module/FetchContent.html)) (preferred)\n     - [Bazel](https://registry.bazel.build/modules/ftxui)\n     - [vcpkg](https://vcpkg.link/ports/ftxui)\n     - [Conan](https://conan.io/center/recipes/ftxui) [Debian package](https://tracker.debian.org/pkg/ftxui)\n     - [Ubuntu package](https://launchpad.net/ubuntu/+source/ftxui)\n     - [Arch Linux](https://aur.archlinux.org/packages/ftxui/)\n     - [OpenSUSE](https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui)\n * Good practices: documentation, tests, fuzzers, performance tests, automated CI, automated packaging, etc...\n\n## Documentation\n\n- [Starter CMake](https://github.com/ArthurSonzogni/ftxui-starter)\n- [Starter Bazel](https://github.com/ArthurSonzogni/ftxui-bazel)\n- [Documentation](https://arthursonzogni.github.io/FTXUI/)\n- [Examples (WebAssembly)](https://arthursonzogni.github.io/FTXUI/examples/)\n- [Build using CMake](https://arthursonzogni.github.io/FTXUI/#build-cmake)\n- [Build using Bazel](https://arthursonzogni.github.io/FTXUI/#build-bazel)\n\n## Example\n~~~cpp\n    vbox({\n      hbox({\n        text(\"one\") | border,\n        text(\"two\") | border | flex,\n        text(\"three\") | border | flex,\n      }),\n\n      gauge(0.25) | color(Color::Red),\n      gauge(0.50) | color(Color::White),\n      gauge(0.75) | color(Color::Blue),\n    });\n~~~\n\n![image](https://github.com/ArthurSonzogni/FTXUI/assets/4759106/569bf043-4e85-4245-aad5-2324572135c4)\n\n## Short gallery\n\n#### DOM\n\nThis module defines a hierarchical set of Element. An Element manages layout and can be responsive to the terminal dimensions.\n\nThey are declared in [\u003cftxui/dom/elements.hpp\u003e](https://arthursonzogni.github.io/FTXUI/elements_8hpp_source.html\n)\n  \n\u003cdetails\u003e\u003csummary\u003eLayout\u003c/summary\u003e\n\nElement can be arranged together:\n  - horizontally with `hbox`\n  - vertically with `vbox`\n  - inside a grid with `gridbox`\n  - wrap along one direction using the `flexbox`.\n  \nElement can become flexible using the the `flex` decorator.\n  \n[Example](https://arthursonzogni.github.io/FTXUI/examples_2dom_2vbox_hbox_8cpp-example.html) using `hbox`, `vbox` and `filler`.\n\n![image](https://user-images.githubusercontent.com/4759106/147242524-7103b5d9-1a92-4e2d-ac70-b3d6740061e3.png)\n  \n  \n[Example](https://arthursonzogni.github.io/FTXUI/examples_2dom_2gridbox_8cpp-example.html) using gridbox:\n\n![image](https://user-images.githubusercontent.com/4759106/147242972-0db1f2e9-0790-496f-86e6-ed2c604f7a73.png)\n\n[Example](https://github.com/ArthurSonzogni/FTXUI/blob/master/examples/dom/hflow.cpp) using flexbox:\n\n![image](https://user-images.githubusercontent.com/4759106/147243064-780ac7cc-605b-475f-94b8-cf7c4aed03a5.png)\n\n[See](https://arthursonzogni.github.io/FTXUI/examples_2dom_2hflow_8cpp-example.html) also this [demo](https://arthursonzogni.github.io/FTXUI/examples/?file=component/flexbox).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eStyle\u003c/summary\u003e\n\nAn element can be decorated using the functions:\n  - `bold`\n  - `italic`\n  - `dim`\n  - `inverted`\n  - `underlined`\n  - `underlinedDouble`\n  - `blink`\n  - `strikethrough`\n  - `color`\n  - `bgcolor`\n  - `hyperlink`\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2dom_2style_gallery_8cpp-example.html)\n\n![image](https://user-images.githubusercontent.com/4759106/147244118-380bf834-9e33-40df-9ff0-07c10f2598ef.png)\n  \nFTXUI supports the pipe operator. It means: `decorator1(decorator2(element))` and `element | decorator1 | decorator2` can be used.\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eColors\u003c/summary\u003e\n\nFTXUI support every color palette:\n\nColor [gallery](https://arthursonzogni.github.io/FTXUI/examples_2dom_2color_gallery_8cpp-example.html):\n![image](https://user-images.githubusercontent.com/4759106/147248595-04c7245a-5b85-4544-809d-a5984fc6f9e7.png)\n\n\u003c/details\u003e\n  \n\u003cdetails\u003e\u003csummary\u003eBorder and separator\u003c/summary\u003e\n\nUse decorator border and element separator() to subdivide your UI:\n  \n```cpp\nauto document = vbox({\n    text(\"top\"),\n    separator(),\n    text(\"bottom\"),\n}) | border;\n\n```\n\n[Demo](https://arthursonzogni.github.io/FTXUI/examples_2dom_2separator_8cpp-example.html):\n  \n![image](https://user-images.githubusercontent.com/4759106/147244514-4135f24b-fb8e-4067-8896-bc53545583f7.png)\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eText and paragraph\u003c/summary\u003e\n\nA simple piece of text is represented using `text(\"content\")`.\n\nTo support text wrapping following spaces the following functions are provided:\n```cpp\nElement paragraph(std::string text);\nElement paragraphAlignLeft(std::string text);\nElement paragraphAlignRight(std::string text);\nElement paragraphAlignCenter(std::string text);\nElement paragraphAlignJustify(std::string text);\n```\n  \n[Paragraph example](https://arthursonzogni.github.io/FTXUI/examples_2dom_2paragraph_8cpp-example.html)\n  \n![ezgif com-gif-maker (4)](https://user-images.githubusercontent.com/4759106/147251370-983a06e7-6f41-4113-92b8-942f43d34d06.gif)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eTable\u003c/summary\u003e\n\nA class to easily style a table of data.\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2dom_2table_8cpp-example.html):\n  \n![image](https://user-images.githubusercontent.com/4759106/147250766-77d8ec9e-cf2b-486d-9866-1fd9f1bd2e6b.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eCanvas\u003c/summary\u003e\n\nDrawing can be made on a Canvas, using braille, block, or simple characters:\n  \nSimple [example](https://github.com/ArthurSonzogni/FTXUI/blob/master/examples/dom/canvas.cpp):\n  \n![image](https://user-images.githubusercontent.com/4759106/147245843-76cc62fb-ccb4-421b-aacf-939f9afb42fe.png)\n\nComplex [examples](https://github.com/ArthurSonzogni/FTXUI/blob/master/examples/component/canvas_animated.cpp):\n  \n![ezgif com-gif-maker (3)](https://user-images.githubusercontent.com/4759106/147250538-783a8246-98e0-4a25-b032-3bd3710549d1.gif)  \n\u003c/details\u003e\n\n#### Component\n\nftxui/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).\n\nPrebuilt components are declared in [\u003cftxui/component/component.hpp\u003e](https://arthursonzogni.github.io/FTXUI/component_8hpp_source.html)\n\n\u003cdetails\u003e\u003csummary\u003eGallery\u003c/summary\u003e\n\n[Gallery](https://arthursonzogni.github.io/FTXUI/examples_2component_2gallery_8cpp-example.html) of multiple components. ([demo](https://arthursonzogni.github.io/FTXUI/examples/?file=component/gallery))\n\n![image](https://user-images.githubusercontent.com/4759106/147247330-b60beb9f-e665-48b4-81c0-4b01ee95bc66.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eRadiobox\u003c/summary\u003e\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2component_2radiobox_8cpp-example.html):\n  \n![image](https://user-images.githubusercontent.com/4759106/147246401-809d14a5-6621-4e36-8dd9-a2d75ef2a94e.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eCheckbox\u003c/summary\u003e\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2component_2checkbox_8cpp-example.html):\n\n![image](https://user-images.githubusercontent.com/4759106/147246646-b86926a9-1ef9-4efb-af98-48a9b62acd81.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eInput\u003c/summary\u003e\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2component_2input_8cpp-example.html):\n\n![image](https://user-images.githubusercontent.com/4759106/147247671-f1d6f606-1845-4e94-a4a0-d4273e9ae6bd.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eToggle\u003c/summary\u003e\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2component_2toggle_8cpp-example.html):\n\n![image](https://user-images.githubusercontent.com/4759106/147249383-e2201cf1-b7b8-4a5a-916f-d761e3e7ae40.png)\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eSlider\u003c/summary\u003e\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2component_2slider_8cpp-example.html):\n\n![image](https://user-images.githubusercontent.com/4759106/147249265-7e2cad75-082c-436e-affe-44a550c480ab.png)\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eMenu\u003c/summary\u003e\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2component_2menu_8cpp-example.html):\n\n![image](https://user-images.githubusercontent.com/4759106/147247822-0035fd6f-bb13-4b3a-b057-77eb9291582f.png)\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eResizableSplit\u003c/summary\u003e\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2component_2resizable_split_8cpp-example.html):\n\n![ezgif com-gif-maker](https://user-images.githubusercontent.com/4759106/147248372-c55512fe-9b96-4b08-a1df-d05cf2cae431.gif)  \n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eDropdown\u003c/summary\u003e\n\n[Example](https://arthursonzogni.github.io/FTXUI/examples_2component_2dropdown_8cpp-example.html):\n\n![youtube-video-gif (3)](https://user-images.githubusercontent.com/4759106/147246982-1e821751-531c-4e1f-bc37-2fa290e143cd.gif)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eTab\u003c/summary\u003e\n\n[Vertical](https://arthursonzogni.github.io/FTXUI/examples_2component_2tab_vertical_8cpp-example.html):\n  \n![ezgif com-gif-maker (1)](https://user-images.githubusercontent.com/4759106/147250144-22ff044a-4773-4ff7-a49c-12ba4034acb4.gif)\n\n[Horizontal](https://arthursonzogni.github.io/FTXUI/examples_2component_2tab_horizontal_8cpp-example.html):\n  \n  ![ezgif com-gif-maker (2)](https://user-images.githubusercontent.com/4759106/147250217-fe447e0f-7a99-4e08-948a-995087d9b40e.gif)\n\n  \n\n\u003c/details\u003e\n\n## Libraries for FTXUI\n- *Want to share a useful Component for FTXUI? Feel free to add yours here*\n- [ftxui-grid-container](https://github.com/mingsheng13/grid-container-ftxui)\n- [ftxui-ip-input](https://github.com/mingsheng13/ip-input-ftxui)\n- [ftxui-image-view](https://github.com/ljrrjl/ftxui-image-view.git): For Image Display.\n\n\n## Project using FTXUI\n\nFeel free to add your projects here:\n- [json-tui](https://github.com/ArthurSonzogni/json-tui)\n- [git-tui](https://github.com/ArthurSonzogni/git-tui)\n- [ostree-tui](https://github.com/AP-Sensing/ostree-tui)\n- [rgb-tui](https://github.com/ArthurSonzogni/rgb-tui)\n- [chrome-log-beautifier](https://github.com/ArthurSonzogni/chrome-log-beautifier)\n- [x86-64 CPU Architecture Simulation](https://github.com/AnisBdz/CPU)\n- [ltuiny](https://github.com/adrianoviana87/ltuiny)\n- [i3-termdialogs](https://github.com/mibli/i3-termdialogs)\n- [simpPRU](https://github.com/VedantParanjape/simpPRU)\n- [Pigeon ROS TUI](https://github.com/PigeonSensei/Pigeon_ros_tui)\n- [hastur](https://github.com/robinlinden/hastur)\n- [CryptoCalculator](https://github.com/brevis/CryptoCalculator)\n- [todoman](https://github.com/aaleino/todoman)\n- [TimeAccumulator](https://github.com/asari555/TimeAccumulator)\n- [vantage](https://github.com/gokulmaxi/vantage)\n- [tabdeeli](https://github.com/typon/tabdeeli)\n- [tiles](https://github.com/tusharpm/tiles)\n- [cachyos-cli-installer](https://github.com/cachyos/new-cli-installer)\n- [beagle-config](https://github.com/SAtacker/beagle-config)\n- [turing_cmd](https://github.com/DanArmor/turing_cmd)\n- [StartUp](https://github.com/StubbornVegeta/StartUp)\n- [eCAL monitor](https://github.com/eclipse-ecal/ecal)\n- [Path Finder](https://github.com/Ruebled/Path_Finder)\n- [rw-tui](https://github.com/LeeKyuHyuk/rw-tui)\n- [resource-monitor](https://github.com/catalincd/resource-monitor)\n- [ftxuiFileReader](https://github.com/J0sephDavis/ftxuiFileReader)\n- [ftxui_CPUMeter](https://github.com/tzzzzzzzx/ftxui_CPUMeter)\n- [Captain's log](https://github.com/nikoladucak/caps-log)\n- [FTowerX](https://github.com/MhmRhm/FTowerX)\n- [Caravan](https://github.com/r3w0p/caravan)\n- [Step-Writer](https://github.com/BrianAnakPintar/step-writer)\n- [XJ music](https://github.com/xjmusic/xjmusic)\n- [UDP chat](https://github.com/Sergeydigl3/udp-chat-tui)\n- [2048-cpp](https://github.com/Chessom/2048-cpp)\n- [Memory game](https://github.com/mikolajlubiak/memory)\n- [Terminal Animation](https://github.com/mikolajlubiak/terminal_animation)\n- [pciex](https://github.com/s0nx/pciex)\n- [Fallout terminal hacking](https://github.com/gshigin/yet-another-fallout-terminal-hacking-game)\n- [Lazylist](https://github.com/zhuyongqi9/lazylist)\n- [TUISIC](https://github.com/Dark-Kernel/tuisic)\n- [inLimbo](https://github.com/nots1dd/inLimbo)\n- [BestEdrOfTheMarket](https://github.com/Xacone/BestEdrOfTheMarket)\n- [terminal-rain](https://github.com/Oakamoore/terminal-rain)\n- [keywords](https://github.com/Oakamoore/keywords) ([Play web version :heart:](https://oakamoore.itch.io/keywords))\n- [FTB - tertminal file browser](https://github.com/Cyxuan0311/FTB)\n- [SHOOT!](https://github.com/ShingZhanho/ENGG1340-Project-25Spring)\n\n### [cpp-best-practices/game_jam](https://github.com/cpp-best-practices/game_jam)\n\nSeveral games using the FTXUI have been made during the Game Jam:\n- [TermBreaker](https://github.com/ArthurSonzogni/termBreaker) [**[Play web version]**](https://arthursonzogni.com/TermBreaker/)\n- [Minesweeper Marathon](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/minesweeper_marathon.md) [**[Play web version]**](https://barlasgarden.com/minesweeper/index.html)\n- [Grand Rounds](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/grandrounds.md)\n- [LightsRound](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/LightsRound.v.0.1.0.md)\n- [DanteO](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/danteo.md)\n- [Sumo](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/sumo.md)\n- [Drag Me aROUND](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/drag_me_around.md)\n- [DisarmSelfDestruct](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/DisarmSelfDestruct.md)\n- [TheWorld](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/TheWorld.md)\n- [smoothlife](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/smoothlife.md)\n- [Consu](https://github.com/cpp-best-practices/game_jam/blob/main/Jam1_April_2022/consu.md)\n\n## Build using CMake\n\nIt is **highly** recommended to use CMake FetchContent to depend on FTXUI so you may specify which commit you would like to depend on.\n```cmake\ninclude(FetchContent)\nFetchContent_Declare(ftxui\n  GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui\n  GIT_TAG v6.1.9\n)\nFetchContent_MakeAvailable(ftxui)\n\ntarget_link_libraries(your_target PRIVATE\n    # Chose a submodule\n    ftxui::component\n    ftxui::dom\n    ftxui::screen\n)\n```\n\n# Build using Bazel\n\n**MODULE.bazel**\n```starlark\nbazel_dep(\n    name = \"ftxui\",\n    version = \"v6.1.9\",\n)\n```\n\n**BUILD.bazel**\n```starlark\ncc_binary(\n    name = \"your_target\",\n    srcs = [\"your_source.cc\"],\n    deps = [\n        \"@ftxui//:ftxui_component\",\n        \"@ftxui//:ftxui_dom\",\n        \"@ftxui//:ftxui_screen\",\n    ],\n)\n```\n\n\n# Build with something else:\nIf you don't, FTXUI may be used from the following packages:\n- CMake [FetchContent]([https://bewagner.net/programming/2020/05/02/cmake-fetchcontent/](https://cmake.org/cmake/help/latest/module/FetchContent.html)) (preferred),\n- [Bazel](https://registry.bazel.build/modules/ftxui),\n- [vcpkg](https://vcpkg.link/ports/ftxui),\n- [Conan](https://conan.io/center/recipes/ftxui)\n- [Debian package](https://tracker.debian.org/pkg/ftxui),\n- [Ubuntu package](https://launchpad.net/ubuntu/+source/ftxui),\n- [Arch Linux](https://aur.archlinux.org/packages/ftxui/),\n- [OpenSUSE](https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui),\n[![Packaging status](https://repology.org/badge/vertical-allrepos/libftxui.svg)](https://repology.org/project/libftxui/versions)\n\n\nIf 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.\n```bash\ng++ . . . -lftxui-component -lftxui-dom -lftxui-screen . . .\n```\n\n## Contributors\n\n\u003ca href=\"https://github.com/ArthurSonzogni/FTXUI/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=ArthurSonzogni/FTXUI\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthursonzogni%2Fftxui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farthursonzogni%2Fftxui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthursonzogni%2Fftxui/lists"}