-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Drew Chase (Home) edited this page Mar 30, 2026
·
11 revisions
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.
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.
| 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 |
| 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 |
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");
}- App — Application builder, windowing, and event loop
- Color — Color utilities and color schemes
- Rect, Point, Size — Geometry primitives
- Edges — Edge insets (padding, margins, borders)
- Corners — Corner radii for rounded rectangles
- GpuContext — GPU surface abstraction and backends
- Canvas — 2D drawing API
- FontManager — Font loading and management
- TextLayout — Text shaping, measurement, and rendering
- Text — Text widget
- 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 — Tweens, easing, keyframes, timelines, and presets
AuroraUI is a cross-platform desktop UI framework that treats performance as a first-class constraint — not an afterthought.
- App - Application builder, windowing, and event loop
- MultiWindow - Window spawning, modals, messaging
-
Native Menu - OS menu bars (
menufeature) -
System Tray - System tray icons (
trayfeature) - Threading - Background tasks, thread-safe state
- Color - Color utilities and color schemes
- Undo / Redo - UndoStack and text input undo
- Rect - Rectangle geometry
- Point - Point geometry
- Size - Size geometry
- Edges - Edge insets (padding, margins, borders)
- Corners - Corner radii for rounded rectangles
- GpuContext - GPU surface abstraction and backends
- Canvas - 2D drawing API
- FontManager - Font loading and management
- TextLayout - Text shaping, measurement, and rendering
- Text - Text widget
- 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
- 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 - Color profiles, slots, and runtime switching
- Animation - Tweens, easing, keyframes, timelines, and presets
- Syntax - Syntax highlighting for 16+ languages
- Accessibility - Screen reader support via AccessKit
- i18n - Locale detection, message formatting, RTL layout