Progress indicators

On this page2 sections
  • Determinate , for a task with a well-defined duration, such as a file conversion

  • Indeterminate , for unquantifiable tasks, such as loading or synchronizing complex data

Best practices

When possible, use a determinate progress indicator.

Be as accurate as possible when reporting advancement in a determinate progress indicator.

Keep progress indicators moving so people know something is continuing to happen.

When possible, switch a progress bar from indeterminate to determinate.

Don’t switch from the circular style to the bar style.

If it’s helpful, display a description that provides additional context for the task.

Display a progress indicator in a consistent location.

When it’s feasible, let people halt processing.

Let people know when halting a process has a negative consequence.

Platform considerations

iOS, iPadOS

Refresh content controls

Perform automatic content updates.

Supply a short title only if it adds value.

macOS

Prefer an activity indicator (spinner) to communicate the status of a background operation or when space is constrained.

Avoid labeling a spinning progress indicator.


For the complete guidance, including worked examples and illustrations, see the canonical page: https://developer.apple.com/design/human-interface-guidelines/progress-indicators

Apple HIG text and imagery are © Apple Inc. This page is a structured index of Apple’s canonical documentation (snapshot 2025-02-02), provided for quick reference and AI-agent consumption — it isn’t affiliated with or endorsed by Apple. Read the original at developer.apple.com (opens in new tab).

Get HIG guidance in your AI

Install HIG Doctor and get expert Apple design guidance directly in Claude Code.

npx skills add raintree-technology/hig-doctor
Email updates aren't configured on this deployment yet. Follow the GitHub repo (opens in new tab) for updates.