Widgets
Widget how-to guides
Step-by-step workflows for surfaces, web services, OAuth, refresh behavior, states, and builds.
On this page
Use these guides when you know what you want to do but are not sure where the control lives. Each workflow starts from an open widget project in the editor unless it says otherwise.
Make a compact status widget
- Open Editor and choose Widget.
- Rename the project in the top bar.
- Select Background in the Layers list and choose a Glance color in the inspector.
- Keep the most important title, value, and status on the Glance.
- Delete, hide, or resize anything that competes with the main value.
- Choose Preview and check loading, stale, offline, empty, and error states.
- Open design checks and fix blocking issues before building.
Start with one value and one short explanation. Add detail content only when the wearer needs more than the Glance can show.
Add a Detail page
- Switch the surface control to Detail.
- If the project does not have a Detail page yet, choose Add detail page.
- Add rows, metrics, text, or charts for supporting information.
- Keep actions near the related content.
- Preview both Glance and Detail.
The Detail page is separate from the Glance after it is created. Changes to one surface do not automatically update the other.
Add an element
- Choose Add element in the layer rail.
- Browse or search the available categories.
- Select text, icon, metric, row, chart, or an action.
- Move and resize the layer on the canvas.
- Use the inspector to edit content, binding, color, and position.
Action layers can only be used on the Detail page. A widget surface supports up to 12 layers.
Bind layers to shared values
- Select a text, metric, or row layer.
- In the inspector, choose a binding such as title, value, summary, or status.
- Select Background and open Data.
- Configure static, Garmin watch data, or web-service mappings for those shared values.
- Switch scenarios to verify every bound layer updates together.
Bindings keep repeated content consistent. For example, the same status can appear as short Glance text and as a row on the Detail page.
Connect a web service
- Select Background and open Data.
- Set Source type to Web service.
- Enter an HTTPS endpoint.
- Choose GET or POST.
- Add headers or parameters only when the widget can safely ship them.
- Choose Test connection when the endpoint can be reached without OAuth.
- Map response paths to title, value, summary, or status.
- Replace all example URLs before building.
Never place passwords, private API keys, or other secrets in widget headers or parameters. They are packaged with the widget.
Configure OAuth account connection
- Select Background and open Data.
- Configure the web-service endpoint.
- Open Advanced request settings.
- Turn on Connect an account with OAuth.
- Enter the authorization URL, redirect URL, client ID, scopes, and token result key.
- Add an account connection action to the Detail page if the wearer needs a visible sign-in path.
- Preview the unauthorized scenario.
- Open design checks and resolve OAuth compatibility or placeholder URL errors.
Test connection is unavailable for OAuth endpoints because sign-in happens on the watch.
Add refresh behavior
- Select Background and open Data.
- Open Updates.
- Turn on Update when opened for fresh-on-open behavior.
- Turn on Allow manual refresh if the wearer should be able to refresh.
- Add a visible refresh action to the Detail page when manual refresh needs a clear on-screen control.
- For web-service widgets, enter a scheduled refresh interval from 5 to 1440 minutes if the watch supports background refresh.
- Set saved data lifetime and request timeout.
- Turn on offline fallback when stale data is better than an empty widget.
A non-static widget needs at least one refresh path. Studio blocks builds when data can never refresh.
Design empty and error states
- Use the footer scenario selector or Preview controls.
- Check Loading before data appears.
- Check Stale and Offline for cached data.
- Check Unauthorized for account connection copy and actions.
- Check Empty when the service returns no useful value.
- Check Error when the request fails.
- Adjust bindings, fallback text, or detail content until each state explains what happened.
Short state copy is usually better than raw error language. The Glance should remain understandable even when it cannot show the desired value.
Move, resize, and align layers
- Select a layer on the canvas or in Layers.
- Drag it on the canvas to move it.
- Use corner handles to resize supported layers.
- Enter exact X, Y, width, or height values in the inspector when you need precision.
- Turn on Grid, Snap, or Guides from the canvas controls.
- Select multiple layers with Shift or Command/Ctrl, then move or arrange them together.
- Lock finished layers so they do not move by accident.
Zoom changes only your working view. It does not change the final size on the watch.
Build and install a widget
- Finish the design and fix blocking design checks.
- Use DialStudio desktop for builds and installs.
- Complete build setup until Studio reports Build environment ready.
- Choose Build in the editor.
- Review the target watch and start the build.
- When the build finishes, choose Continue to Install, or open Projects → Builds later.
- Connect the watch with a data-capable USB cable.
- Choose Install on watch and keep the cable connected until Studio reports success.
- Open the widget from the watch's widget loop or glance list.
Browser design is enough for editing and previewing. Building and USB transfer require the desktop app.