Rad-UI is a modern, next-generation user interface library built from the ground up to harness the power and expressive syntax of modern C++20. Designed for uncompromising performance and excellent developer ergonomics, Rad-UI provides a state-driven approach to building fluid, high-performance applications without the traditional UI boilerplate.
-
Powerful Reactive Framework: Build intuitive interfaces that automatically and efficiently update in response to underlying state changes, keeping your UI logic clean, declarative, and easy to maintain.
-
Fluid Animations: Bring your applications to life with a robust, built-in animation framework engineered for smooth, complex, and highly customizable visual transitions.
-
Hardware-Accelerated GPU Rendering: Hardware-accelerated rendering via Direct2D on Windows and Skia everywhere else. Geometry is retained on the GPU, and updates are batched for minimal draw-call overhead across platforms.
-
Async & Networking (Powered by Rad Library): Say goodbye to UI thread blocking and callback hell. Backed by the underlying Rad library, Rad-UI natively integrates C++20 coroutines, making complex asynchronous operations, network requests, and background tasks seamless and highly readable.
-
Advanced Window Management: Native support for multi-window applications, context-aware popups, and focus-blocking modal windows.
-
Multi-Platform Backends: Full support for Windows and X11, with seamless compatibility for Wayland environments via XWayland.
-
Input & OS Integration: Complete mouse and keyboard event handling, alongside native system clipboard text support.
-
High-DPI Rendering: Fully DPI-aware layout and rendering pipeline ensures crisp visuals on modern high-density displays.
-
Engine Foundations: Powered by DirectWrite (on Windows) and Skia Paragraph (cross-platform).
-
Internationalization: Robust support for complex text formatting and Right-to-Left (RTL) languages.
-
Font Management: Dynamic font loading directly from local files or in-memory buffers.
-
Text Input: Integrated hooks for basic interactive text editing.
-
UI Primitives: Lightweight foundational building blocks including Item, Rectangle, Ellipse, and the kinetic-scrolling Flickable.
-
Layout Management: Flexible UI building using automatic Horizontal, Vertical, and Flow layout containers.
-
Modern Design Systems: Built-in UI controls out of the box, styled around modern design philosophies like Google's Material 3 and Microsoft's Fluent 2.
-
Essential Widgets: Ready-to-use buttons, text fields, sliders, and more.
-
Model-View-Delegate Framework: A robust architecture engineered for heavy data presentation and efficient item recycling.
-
Data Views: Includes ready-to-use, scalable view components: ListView, TableView, and TreeView.
Here is what is planned for future releases to expand the library's capabilities, ecosystem, and platform reach:
-
Native Wayland Support: Moving beyond XWayland to provide a pure, native Wayland client backend.
-
New OS Frontiers: Bringing the framework to macOS and Android for true cross-platform deployment.
-
Accessibility Support: Implementing native OS accessibility APIs to ensure applications are usable by everyone.
-
Drag and Drop: Full system-level drag-and-drop support for richer desktop interactions.
-
Resource Embedding: A streamlined system for bundling assets (such as images, fonts, and UI definitions) directly into your application binaries for easier distribution.
-
Translations & i18n: Built-in support for application internationalization, allowing you to manage translations and dynamically switch languages at runtime.
-
New Layout Engines: Adding robust Grid layouts for complex dashboards and a flexible Path layout for custom, non-linear element positioning.
-
Bi-directional & Custom View Flows: Extending views (ListView, TableView, etc.) to natively support Right-to-Left (RTL) layouts and Bottom-to-Top vertical flows.
-
Multi-Paragraph Layouts: Enhancing the text engine to flawlessly handle complex documents with multiple paragraphs and advanced text blocks.
-
Pango Integration: Adding Pango support as an additional backend option for Linux environments to achieve ultra-precise, system-native text rendering.
-
Deep Design Spec Adherence: Expanding the library of Material 3 and Fluent 2 components while tightening alignment with their official design guidelines.
-
Unlocking Animation Potential: Significantly extending the CPU-side animation framework to utilize its core architecture fully, enabling richer, more complex choreography and physics-based transitions.
The library uses CMake. The following options are defined:
UI_BACKENDeither "d2d" or "skia".BUILD_TESTS(ON or OFF) builds tests. Default is ON.
To easily install dependencies, use vcpkg with the manifest file vcpkg.json provided by the library.
For example:
cmake /path/to/rad-ui/ -DUI_BACKEND=skia -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-linux
Distributed under the MIT License.