Progress Indicators
Jetpack Compose progress indicator components for displaying operation status.
Expo UI Progress Indicators match the official Jetpack Compose Progress Indicator API.
Installation
- npx expo install @expo/uiIf you are installing this in an existing React Native app, make sure to install expo in your project.
Usage
Linear progress
A horizontal bar that fills to indicate progress. Provide a progress value between 0 and 1 for determinate mode.
import { Host, LinearProgressIndicator } from '@expo/ui/jetpack-compose'; export default function LinearExample() { return ( <Host matchContents> <LinearProgressIndicator progress={0.5} /> </Host> ); }
Circular progress
A spinning circle whose stroke grows to indicate progress.
import { Host, CircularProgressIndicator } from '@expo/ui/jetpack-compose'; export default function CircularExample() { return ( <Host matchContents> <CircularProgressIndicator progress={0.75} /> </Host> ); }
Indeterminate
Omit the progress prop to animate continuously without indicating a specific completion level.
import { CircularProgressIndicator, CircularWavyProgressIndicator, Column, Host, LinearProgressIndicator, LinearWavyProgressIndicator, } from '@expo/ui/jetpack-compose'; export default function IndeterminateExample() { return ( <Host matchContents> <Column verticalArrangement={{ spacedBy: 16 }}> <LinearProgressIndicator /> <CircularProgressIndicator /> <CircularWavyProgressIndicator /> <LinearWavyProgressIndicator /> </Column> </Host> ); }
Custom colors
Use color for the indicator and trackColor for the background track.
import { Host, CircularProgressIndicator } from '@expo/ui/jetpack-compose'; export default function ColorsExample() { return ( <Host matchContents> <CircularProgressIndicator progress={0.6} color="red" trackColor="#cccccc" /> </Host> ); }
Wavy variants
LinearWavyProgressIndicator and CircularWavyProgressIndicator add an expressive wave animation from Material 3 Expressive.
import { Host, LinearWavyProgressIndicator, CircularWavyProgressIndicator, Column, } from '@expo/ui/jetpack-compose'; export default function WavyExample() { return ( <Host matchContents> <Column verticalArrangement={{ spacedBy: 16 }}> <LinearWavyProgressIndicator progress={0.6} /> <CircularWavyProgressIndicator progress={0.6} /> </Column> </Host> ); }
API
import { LinearProgressIndicator, CircularProgressIndicator, LinearWavyProgressIndicator, CircularWavyProgressIndicator, } from '@expo/ui/jetpack-compose';
Components
Type: React.Element<ComponentType<CircularProgressIndicatorProps>>
A circular progress indicator that displays progress in a circular format.
Matches the Jetpack Compose CircularProgressIndicator.
StrokeCap • Default: 'round'Stroke cap style for the indicator ends.
Type: React.Element<ComponentType<BaseProgressProps>>
A circular progress indicator with wavy animation style.
Matches the Jetpack Compose CircularWavyProgressIndicator.
Type: React.Element<ComponentType<LinearProgressIndicatorProps>>
A linear progress indicator that displays progress in a horizontal bar.
Matches the Jetpack Compose LinearProgressIndicator.
DrawStopIndicatorConfigConfiguration for the stop indicator dot at the end of the determinate progress track.
StrokeCap • Default: 'round'Stroke cap style for the indicator ends.
Type: React.Element<ComponentType<LinearWavyProgressIndicatorProps>>
A linear progress indicator with wavy animation style.
Matches the Jetpack Compose LinearWavyProgressIndicator.
Types
Configuration for the stop indicator dot at the end of the determinate linear progress track. When provided, draws a stop indicator with the given options. Omit to use the Compose default.
| Property | Type | Description |
|---|---|---|
| color(optional) | ColorValue | Color of the stop indicator. Defaults to the indicator's color. |
| stopSize(optional) | number | Size of the stop indicator in dp. Defaults to the Material 3 default. |
| strokeCap(optional) | StrokeCap | Stroke cap style for the stop indicator. Defaults to the indicator's strokeCap. |