Skip to content

just-language/Rad-UI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rad-UI

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.

Key Features

  • 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.

Current Capabilities & Feature Set

🖥️ Windowing & Platform Support

  • 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.

✍️ Advanced Typography & Text Layout

  • 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.

📐 Core Elements & Layout Engines

  • 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.

🎨 Ready-to-Use UI Components

  • 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.

📊 Powerful Data Architecture

  • 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.

Roadmap & Upcoming Features

Here is what is planned for future releases to expand the library's capabilities, ecosystem, and platform reach:

Platform Expansion & System Integration

  • 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.

Core Systems & Localization

  • 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.

Advanced Layouts & View Enhancements

  • 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.

Next-Gen Text Framework

  • 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.

Component Expansion & Animation Overhaul

  • 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.

How to Build and Use

The library uses CMake. The following options are defined:

  • UI_BACKEND either "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

License

Distributed under the MIT License.

About

Rad-UI: A modern, cross-platform C++20 UI library with reactive state management, GPU rendering, and native async/coroutine support.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages