Skip to content
Drew Chase (Home) edited this page Mar 30, 2026 · 11 revisions

AuroraUI

AuroraUI is a cross-platform desktop UI framework for Rust that treats performance as a first-class constraint. Every subsystem — text rendering, widgets, animation, accessibility — is behind a feature gate. You pay only for what you use, in both binary size and startup time.

Feature-Gated Philosophy

An app that only draws rectangles should not ship a font shaper. Text rendering alone adds ~1.5 MB (font shaping via rustybuzz), so it's behind the text feature flag.

GPU Backends

Feature Backend Binary impact Best for
software softbuffer (GDI/CPU) ~0 KB Smallest binary, no GPU
opengl glow (OpenGL 3.3) ~200 KB Fast startup, broad compat
wgpu_backend wgpu (Vulkan/Metal/DX12) ~2 MB Best rendering, future-proof

Content Features

Feature What it adds
text Font loading, shaping, text widgets, buttons
image PNG/JPEG decoding and Image widget
svg SVG parsing, rasterization, and Svg widget
animate Tweens, easing, keyframes, timelines, and presets

Quick Start

use aurora_ui::prelude::*;

fn main() {
    App::new()
        .title("Hello, Aurora")
        .size((400, 300))
        .font(include_bytes!("Roboto-Regular.ttf"))
        .run(|window, _frame| {
            window.root(
                col!()
                    .spacing(10.0)
                    .align(Align::Center)
                    .justify(Justify::Center)
                    .child(Text::new("Hello, world!").font_size(24.0)),
            );
        })
        .expect("Failed to run app");
}

Documentation

Platform

  • App — Application builder, windowing, and event loop

Core

  • Color — Color utilities and color schemes
  • Rect, Point, Size — Geometry primitives
  • Edges — Edge insets (padding, margins, borders)
  • Corners — Corner radii for rounded rectangles

GPU

  • GpuContext — GPU surface abstraction and backends

Render

Text

Widgets

  • Layout — Column, Row, Stack, Positioned
  • ScrollView — Scrollable viewport with scrollbar
  • Button — Styled button with any child content
  • Image — Raster image display (PNG, JPEG)
  • Composite — Stateful composite widgets and #[composite_widget] macro
  • Drag & Drop — Draggable widgets and drop zones

Animation

  • Animation — Tweens, easing, keyframes, timelines, and presets

Integrations

  • Iconify — Compile-time icon embedding from iconify.design
  • Fonts — Compile-time Google Fonts embedding

AuroraUI is a cross-platform desktop UI framework that treats performance as a first-class constraint — not an afterthought.

Platform

  • App - Application builder, windowing, and event loop
  • MultiWindow - Window spawning, modals, messaging
  • Native Menu - OS menu bars (menu feature)
  • System Tray - System tray icons (tray feature)
  • Threading - Background tasks, thread-safe state

Core

  • Color - Color utilities and color schemes
  • Undo / Redo - UndoStack and text input undo

Geometry

  • Rect - Rectangle geometry
  • Point - Point geometry
  • Size - Size geometry
  • Edges - Edge insets (padding, margins, borders)
  • Corners - Corner radii for rounded rectangles

GPU

  • GpuContext - GPU surface abstraction and backends

Render

Text

Widgets

  • Layout - Column, Row, Stack, Positioned
  • ScrollView - Scrollable viewport with scrollbar
  • VirtualList - Virtualized list for large datasets
  • Button - Styled button with any child content
  • BoxWidget - Colored rectangle container
  • TextInput - Single-line text input
  • TouchArea - Invisible hit-testing region
  • Drag & Drop - Draggable sources and drop zones
  • ContentSwitch - Conditional child display
  • Image - Raster image display (PNG, JPEG)
  • Composite - Stateful composites & #[composite_widget]
  • TreeView - Hierarchical data with expand/collapse

Components

  • Display - Badge, Card, Alert, Progress, Spinner, Kbd, and more
  • Stepper - Step-by-step progress indicator
  • Forms - Checkbox, Switch, Slider, RadioGroup, Tabs, Accordion, and more
  • SegmentedControl - iOS-style segmented toggle bar
  • NumberInput - Numeric input with +/- buttons
  • RichTextEditor - Rich text editing with bold/italic/underline
  • Form Validation - Validators, error states, form-level validation
  • Overlays - Tooltip, Popover, Dialog, DropdownMenu, Select, Toast
  • Sheet - Slide-in panel from screen edge
  • TagInput - Multi-value input with removable tags
  • SplitPane - Resizable split view with drag handle
  • ColorPicker - Color selection with hex/RGB
  • TimePicker - Time selection with hour/minute spinners
  • DateRangePicker - Dual-calendar date range selection
  • DateTimePicker - Combined date and time selection
  • Data & Advanced - Table, Calendar, Combobox, Command, and more

Theme

  • Theme - Color profiles, slots, and runtime switching

Animation

  • Animation - Tweens, easing, keyframes, timelines, and presets

Code

  • Syntax - Syntax highlighting for 16+ languages

Accessibility

Internationalization

  • i18n - Locale detection, message formatting, RTL layout

Integrations

  • Iconify - Compile-time icons from iconify.design
  • Fonts - Compile-time Google Fonts embedding

Clone this wiki locally