Layered status rings — 3D depth example
A home, a car or a server has several channels that compete for attention: climate, lights, security. Showing them as separate widgets splits the user’s focus. Here they share one radial object, stacked in depth: the channel in front is the one you read, the others wait behind it, larger and dimmer. When an alert arrives, its channel moves to the front; when it is resolved, the order returns on its own.
Examples include the current Orbit stylesheet and runtime. Get both files for your project.
How it works
Section titled “How it works”.depthon the.gravity-spotturns its rings into layers. Each ring gets adata-depth, and.layer-frontmarks the one in front.- Same orbit, different sizes. All three channels use
orbit-4.--o-depth-grow: .42makes each step back 42% larger (1×, 1.42×, 1.84×), so no two rings share a radius, and the perspective compensation keeps those sizes in both flat and 3D views. - Progress or segments. Climate is a single
<o-progress>; Lights and Security are six<o-arc>segments each, separated with--o-gapand thinned with--o-size-ratio. Only the failing segment changes color. - Color belongs to the alert. The ring, the failing segment and the value in the center turn red. Nothing else is painted, so the hierarchy still reads without color.
- The ripple is a pseudo-element on the alerting ring, shown only while that ring is in front.
- Order is data. The script keeps a base order and an alert order and writes
data-depthfrom the array. The depth transition is Orbit’s default.
Customization
Section titled “Customization”Change the spacing in z with --o-depth-step (default -110) and the perspective with --o-perspective (default 900).
Let farther layers look smaller with --o-depth-compensate: 0.
Hide layers past the third by setting opacity: 0 on [data-depth="3"] and above, and show a count instead. Three visible layers is the most people can read at a glance.
Related
Section titled “Related”- Depth layers — properties and rules
- Stacked circular progress bars — the flat version of several rings
- Use case: IoT and hardware UI