Progress
Orbs
A reduced-motion-aware ambient signal for background AI activity.
Starts when it scrolls into view
NORD FROST · DARK · RADIUS 6/10 · BASE 16PX · SHADOW
Code
Cut from the gallery story this page runs, so it stays true.
let tokens = cx.theme().semantic_tokens();
v_flex()
.gap(tokens.spacing.md)
.child(
h_flex()
.items_center()
.flex_wrap()
.gap(tokens.spacing.lg)
.children(OrbVariant::ALL.map(|variant| {
v_flex()
.items_center()
.gap(tokens.spacing.xs)
.child(
div()
.id(ElementId::NamedInteger(
format!("orbs-variant-{}", variant.slug())
.into(),
0,
))
.p(tokens.spacing.md)
.rounded(tokens.radius.lg)
.border_1()
.border_color(cx.theme().border)
.bg(tokens.colors.surface)
.child(
Orbs::new()
.variant(variant)
.diameter(px(56.)),
),
)
.child(
div()
.text_xs()
.text_color(cx.theme().muted_foreground)
.child(match variant {
OrbVariant::Radial => "Radial",
OrbVariant::Diagonal => "Diagonal",
OrbVariant::Comet => "Comet",
OrbVariant::Column => "Column",
OrbVariant::Scattered => "Scattered",
}),
)
})),
)
.child(
div()
.text_sm()
.text_color(cx.theme().muted_foreground)
.child("ambient thinking indicator — pick the choreography that matches your product's voice"),
)
Events and ownership
- Who owns the state
- Orbs renders state supplied by the application; it does not own durable work.
- What it emits
- This presentation surface adds no component-specific interaction event.
- What it means
- A reduced-motion-aware ambient signal for background AI activity.
- Overflow and motion
- Wide content retains context in a bounded surface; reduced motion preserves a useful state.
What the demo does and does not show
The demo above is the same Rust as the native component, compiled to WebAssembly and drawn on a WebGPU canvas — not a mock-up, a recording, or a re-implementation. What it paints is what the component paints: layout, colour from the live theme, and motion.
The live browser specimen requires WebGPU; the native component remains the authoritative runtime.
A canvas cannot stand in for the platform, so treat everything that goes through the operating system as unproven here: keyboard handling and shortcuts, screen reader semantics, text input and IME, the clipboard, file drops, and the frame rate you would get on your own GPU. Judge those in a native build. If your browser has no WebGPU, the frame says so rather than showing an empty box.