ProgressIndicator control

A control used to create a loading experience.


Full documentation and source code found in the GitHub code components repository.

ProgressIndicator control.


Progress indicators are used to show the completion status of an operation lasting more than two seconds. If the state of progress can't be determined, use a Spinner or use the Indeterminate Indicator type instead. Progress indicators can appear in a new panel, in a flyout window, under the UI that initiated the operation, or they can even replace the initiating UI as long as the UI can return if you cancel or stop the activity.

This code component provides a wrapper around the Fluent UI ProgressIndicator control for use in canvas & custom pages. See component documentation for best practices.


Key properties

Property Description
Label Optional label for spinner.
Percentage Complete Percentage of the operation completed, on the scale of 0 to 1. If not set Indeterminate Indicator will be shown.
TypeOfIndicator Specifies the type of indicator style. Choices: Default Indicator or IndeterminateIndicator
HideProgressState Specify true to hide progress state
BarHeight Specify height of the bar as applicable

Style properties

Property Description
Theme Accepts a JSON string that is generated using Fluent UI Theme Designer ( Leaving this blank will use the default theme defined by Power Apps. See theming for guidance on how to configure.
AccessibilityLabel Screen reader aria-label


Display loading progress

Make the ProgressIndicator control itself (or the surface it's located within) visible when a process begins, then update a variable with the value as segments of the process are completed. Hide it when the process is complete. Use a variable to control the visibility of the control, and update the values between the major code blocks of the process that need to be indicated.

UpdateContext({ var_showProgress: true , var_progressValue: 0 });

/* Some code ... */

UpdateContext({ var_progressValue: 25 });

/* Some code ... */

UpdateContext({ var_progressValue: 50 });

/* Some code ... */

UpdateContext({ var_progressValue: 75 });

/* Some code ... */

UpdateContext({ var_progressValue: 100 });

Notify("Successfully completed process", NotificationType.Success);

UpdateContext({ var_showProgress: false });

Provide the var_showProgress variable as the value for the Visible property of the ProgressIndicator (or the surface containing it), and assign the var_progressValue variable for the Value property.


This canvas component can only be used in canvas apps and custom pages.