Personality UI
Each Garmin® product has a unique device personality. This personality can be a combination of the industrial design, the screen technology, the inputs available, and the graphic styling of the system software. While there are often common components and patterns across Garmin products, the device personality alters how the user interfaces with those components. This makes it difficult for developers to make apps that feel native to the device.
The goal of Personality UI is to help you navigate these design variations by providing a style system to adapt your design language to Garmin devices, along with a set of reusable components for your apps.
Monkey Style
Monkey style is a domain-specific property language for managing style elements. It borrows heavily from CSS, but has been tailored for Monkey C. Monkey C allows developers to create style property constants that can adapt among different Garmin products.
Personality Components
The personality components are a library of assets and monkey style definitions you can build upon when creating your apps.
How to Read this Guide
The components outlined in this guide use a combination of the resource system, Toybox.WatchUi classes, and personality selectors. Each component has a set of examples that outlines how to create it. The sample code examples are broken down with the headers listed below.
Header |
Explanation |
---|---|
layout.xml |
Belongs in the layouts portion of your resource definitions. |
menus.xml |
Belongs within the menus element of your resource definitions. |
InputDelegate.mc |
Belongs in your input handler implementation. |
View.mc |
Belongs in your view implementation. |
Component Overview
Chapter |
Description |
---|---|
Colors |
Learn how colors are expressed in the design system. |
Iconography |
Integrate system iconography into your app. |
Typography |
Choose the appropriate font. |
Input Hints |
Provide visual guidance to users for actions. |
Prompts |
Provide textual information to the user. |
Confirmations |
Ask the user if they want to proceed. |
Toasts |
Provide a small status update. |
Action Views |
Create pages with interactive information. |
Page Loops |
Break information across multiple pages. |
Progress Indicators |
Give the status of a long-running action. |