yappologistic/CUI
Developer ToolsA dependency-free C99 library of roughly 190 native UI components for building cross-platform Windows, macOS and Linux desktop apps.
What it is
CUI is a C99 GUI component library for building desktop applications with an immediate-mode description API. The codebase describes roughly 190 components, including buttons, inputs, pickers, overlays, data grids, charts, kanban and gantt views, code/terminal panels and AI chat widgets, all with spring-based motion and keyboard navigation. It targets Windows, macOS, Linux and BSD, and can also run in the browser through a WebAssembly build. The MIT-licensed library reports a dependency-free core of about 240 KB for a minimal app.
The programming model is plain C: components are functions that draw themselves and return their interaction result, options are named fields on the call, and application variables hold the state because the UI is described again every frame. Layout and rendering are handled by CUI, with Win32, Cocoa, X11, SDL2 and GLFW backends, plus OpenGL 3.3 or a software renderer.
Getting started
CUI uses CMake and supports GCC, Clang, MSVC and MinGW. The two documented entry paths are integrating it into an existing CMake project via FetchContent, or cloning and building the examples directly:
git clone https://github.com/yappologistic/CUI.git
cmake -S CUI -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/examples/tracker
Linux additionally needs X11 development headers such as libx11-dev; Windows and macOS need only the platform SDK. The getting started guide covers other build systems and backends, and the live docs let you try every component in the browser without installing anything. A minimal hello and a full gallery are available under the examples.
Constraints and known gaps
The current 1.3 release has no accessibility tree for screen readers, although keyboard focus and navigation are complete. Complex-script support is limited: Arabic shaping, bidi and shaped paragraph wrapping are behind an optional CUI_TEXT_SHAPING CMake option and exclude editing use; CJK requires a fallback font. Native Wayland is not supported, so use the SDL2/GLFW backend or XWayland. There is no Android or iOS platform layer, though layouts adapt to phone widths and run in mobile browsers. Documentation images and visuals are rendered from tests, so build and test requirements follow the CMake and C toolchain setup. The library is MIT-licensed; bundled fonts and icons carry their own licenses documented separately.
HotRepo's take
In the new-project snapshot dated 2026-11-09, CUI recorded 625 stars and 31 forks, with 260 stars added over roughly a 24-hour observation window starting 2026-11-08 (UTC) — one of the strongest single-day gains in this view. The hourly star samples from 2026-11-06 to 2026-11-09 show a steady rise rather than a single spike, going from 111 to 625 over three days. That curve, combined with a project that ships runnable examples and a live browser demo, supports treating CUI as an actively developed library rather than a promotion page. With no daily all-language rank recorded, the rank claim is still open; the data supports interest, not adoption or production readiness.
Written by AI from the project's README, updated . The project's own docs are the source of truth.
You might also like
- longbridge/nshA Rust-built native UI framework where apps and screens are written in TSX or Rust and rendered with each platform's own views.
- oneo-me/nsgoWrite cross-platform apps in Go while each platform renders them with its own native views.
- lobehub/lobe-mygoA Go UI kit that brings Lobe UI components and design tokens to native desktop apps built with MyGo.
- vivaui/vivaBuild native Go desktop apps that render through each OS's own window and GPU APIs, without a WebView or bundled runtime.
- Caho1/open-claude-uiA React/CSS component library that reconstructs Claude's desktop design system, including motion physics, from decompiled binaries.