Android XR Design Guidelines (Android Developers)
Google’s design documentation for Android XR headsets and wired XR glasses. Noted at ingestion time as a Developer Preview platform, so some specifics (spatial elevation values, Full-Space-only features) may still change upstream.
License: Apache License 2.0 — same per-page “Content License” footer resolving to developer.android.com/license as Wear OS Design Guidelines (Android Developers).
Key points
- Get started lays out core design pillars for headsets and glasses: center interactive content in a person’s field of view to reduce head/eye strain, accommodate multiple postures with adjustable height, prevent motion sickness via predictable motion and stable frame rates, and offer a passthrough option so full immersion isn’t the only way to use an app. Contrasts the two device types: opaque headsets render true black and a wide (~110°+) field of view via camera passthrough; wired glasses use additive (waveguide) displays where black renders transparent, over a narrower (~50–70°) field of view, with electrochromatic dimming to keep content visible against a bright room.
- Environments covers spatial environments (a virtual space an app can trigger to replace or supplement a person’s real surroundings): keep placed objects at least 1 meter from the person to avoid real-world collisions, avoid objects above 0.9m within 1.5m of a person to prevent depth conflicts with UI, and give a person a clear, fast way to switch back to their real surroundings.
- Visual design gives concrete numbers: a recommended tappable target of 56dp×56dp or larger (Material Design’s minimum), type no smaller than 14dp at normal weight or heavier, panels spawned 1.75 meters out with consistent scale between 0.75m and 1.75m, and a design charge to test legibility/contrast at more than one distance and lighting condition. Frames opaque headsets and transparent glasses as needing opposite color assumptions (true black vs. black-as-invisible).
- Spatial UI defines three building blocks: spatial panels (containers spawned 1.75m out, centered in the middle 41° of a person’s field of view, vertical center 5° below eye level), orbiters (floating auxiliary controls anchored to a panel, 20dp offset, used sparingly to avoid “content fatigue”), and spatial elevation (raising an element above its panel on the Z-axis for hierarchy, reserved for things like dialogs and popups rather than applied decoratively).
- Foundations (multimodal inputs) — design for more than one input method (hand tracking, eye gaze, voice, 6DoF controller, keyboard/mouse) since availability varies by device and person; design a hand gesture to mimic a real-world action and keep it small enough not to fatigue a raised arm; eye-tracking data itself is never shared with an app, only a generic system-drawn hover state, to protect privacy; confirm every input method’s action with visible or audible feedback.
- Motion identifies the root cause of XR motion sickness as sensory mismatch — the eyes perceiving movement the inner ear doesn’t feel — and recommends smooth/predictable motion, gradual introduction of new motion mechanics, built-in rest stops, an optional motion-intensity control, and softening any unavoidable large environment movement (fade transitions, narrowed peripheral vision, gradual acceleration) rather than snapping to it.