- Hello World
Window setup, state management, DOM creation, handling mouse clicks for a „counter“ app
- Application Architecture
Explains the concepts of architecting a larger Azul application
- Document Object Model
Node types, hierarchy, and CSS scoping
- Reconciliation
Diffing, restyle scope, and damage-rect repaint
- Datasets
Attaching state to a node for navigation and per-instance state
- Merge Callbacks
How widgets keep heavy resources across a layout rebuild
- Virtual Views
A node that materialises lazily, for infinite lists and embedded sub-DOMs
- Components
Reusable UI fragments - named functions of (args) -> Dom
- Callbacks
What CallbackInfo exposes — state, DOM mutation, focus, async work
- Routing
URL patterns, route params, and per-route layout callbacks
- Styling with CSS
Stylesheets, selectors, and the cascade
- CSS Properties
Reference of every CSS property azul recognises
- System Themes
System colors, `@theme`, `@os`, and accessibility queries
- Styling Text
Font family, size, weight, alignment, decoration, and the system font keywords
- Icon Packs
Register icons and use them with `Dom::create_icon` or `<icon>`
- Layout
Overview of the layout solver
- Simple Layout
Explains block formatting, sizing, positioning, the box model and how to handle overflowing content
- Inline Layout
Text flow, word breaks, writing modes, multi-column
- Flexbox
One-axis container layout with grow/shrink/basis
- Grid
Two-axis container layout with tracks and areas
- Images
Loading raster images and CSS backgrounds
- Events
Callbacks, event filters, and how state triggers relayout
- Text Input
Editable text, IME, and the selection model
- Text Selection
Selection ranges, cursors, and copy/paste
- Timers
Timers, threads, and scheduled work
- Animations
CSS transitions and @keyframes
- Scrolling
Scroll containers, drag-and-drop, hit testing
- Windows, Menus, Decorations
Windows, menus, decorations, and per-window state
- Built-in Widgets
Built-in widgets and how to write your own
- Debugging
Debug overlays, the inspector, and structured logging
- Profiling
Tracking allocations and per-frame budgets
- End-to-End Testing
Driving an Azul app from a script for tests
- XML Parsing (Standalone)
Loading a Dom from an XML string
- File Dialogs
Native open/save dialogs and folder pickers
- Maps (MapWidget)
A slippy map widget with pan/zoom, tap-to-pin hooks, and lat/lon projection
- Clipboard
Reading and writing the system clipboard
- Generating PDFs (HTML-to-PDF)
Render a styled Dom to PDF bytes - headless, no window, no file I/O
- Background Tasks
Running long jobs off the layout thread
- SQL Database (Db)
A bundled-SQLite handle - execute/query with typed value arrays
- Networking
HTTP from a callback
- Device Input (Sensors, Gamepad, Geolocation)
React to motion sensors, gamepads, and location as events - no polling
- Accessibility
Screen reader integration and ARIA roles
- Realtime Media and Devices
Camera/mic capture, audio playback, and sharing A/V over UDP (the azul-meet pattern)
- Mobile (iOS & Android) in Rust
Build, package, sign and install an Azul app as an .apk / .ipa — all Rust, from any OS, no Xcode or Android Studio
- Headless Rendering
Running the pipeline without a window
- Code Generation
How `azul-doc` regenerates bindings from `api.json`
- Deploying azul web apps with the pre-lifted base image
Fast cold starts via a pre-lifted WASM Docker base image
- Web Deployment
Building for the browser via WASM
- Security Model
What azul does and doesn't defend against
- Documentation Reference Backlog