| Guidance | Details | Guidance Level |
|---|---|---|
Add a back button to the interface if needed | Unlike Android mobile devices, a system back button is not universally available across input modalities. If needed, add a back button to your app’s interface. | Requirement |
| Guidance | Details | Guidance Level |
|---|---|---|
Ensure adequate hit target sizes | Comfortably-sized hit targets should be a minimum of 48dp x 48dp. This sizing allows enough space for a user’s finger and accounts for hand tracking movements. In general, we recommend maintaining a minimum hit target of 60dp x 60dp for all primary controls in your app to make them Hand Tracking accessible. ![]() | Requirement |
Use invisible hit slop | Use hit slop when assets don’t meet the minimum required size for hit targets. See the standard button shown below for an example of a component that requires hit slop. Also use hit slop to any actionable icons. ![]() | Requirement |
Leave enough space between components | It’s important to consider not just the size of components, but also the space between components, as some small components will have invisible hit slop around them to supplement the hit target size. ![]() | Requirement |
Add hover states to all targets and inputs | Add hover and focus states to interactive elements to support multiple input modalities. | Requirement |
| Guidance | Details | Guidance Level |
|---|---|---|
Provide sufficient color contrast | The contrast ratio between foreground and background should be 4.5:1 for regular sized text and 3:1 for headlines or non-text elements (Example: button backgrounds). ![]() | Requirement |
Test colors in headset | Device color space affects how colors appear. In general, the colors you see in your headset might appear slightly more saturated than the colors you see on your mobile or desktop. Make sure to test your app on the headset and, if necessary, iterate on the colors. | Recommended |
Avoid using pure white ( #FFFFFF) and black (#000000) | High-contrast colors don’t work well in MR. We recommend using shades of light gray and dark gray to replace the pure white and black in your app. If you plan to use a light background for your app, we recommend using a color that is no brighter than #DADADA to avoid eye strain. | Recommended |
| Guidance | Details | Guidance Level |
|---|---|---|
Choose the correct font size | It depends on the characteristics of each font, but for apps in general, a font size no smaller than 14px would give you the minimal legibility for reading. A font size no smaller than 18px generally ensures a comfortable reading experience. ![]() | Requirement |
Choose a legible font | Use a font in your app that’s easy to read. To ensure legibility at small sizes, even when the view is zoomed in or out, we recommend choosing a sans-serif font with high x-height and big counters. The Inter font used in the Meta Horizon OS UI Set is recommended for legibility and achieving a native look and feel. ![]() | Recommended |
Choose an appropriate font weight | Use font sizes and weights to create different levels of hierarchy in your layout(s). Larger weights such as Black, Bold, Medium and Regular are more legible than lighter weights such as Light and Thin. If you are using lighter weights, increase your text size to ensure legibility. ![]() | Recommended |
| Guidance | Details | Guidance Level |
|---|---|---|
Use simple, recognizable icons | Simplify icons for greater clarity and legibility even at small sizes. Avoid using complex icons with delicate, thin stroke weights. The icons used in the Meta Horizon OS UI Set are a good choice for clarity and achieving a native look and feel. ![]() | Recommended |
Provide icons at appropriate sizes | We use a 24x24 pixel grid, but build the icons on a 192x192 pixel grid. This is to ensure that we’re future-proofing these pixel-perfect icons so that they work well in higher-res headsets. ![]() | Recommended |