Skip to content

ProgressBar

ProgressBar displays progress completion or loading state with a linear indicator. Supports determinate values and indeterminate animation.


25%
50%
75%
100%
<ProgressBar value={25} />
<ProgressBar value={50} />
<ProgressBar value={75} />
<ProgressBar value={100} />

Primary gold color for general progress.

<ProgressBar value={60} />

Accent gold for highlighted progress.

<ProgressBar value={60} variant="gold" />

Indicates completion or positive outcome.

<ProgressBar value={100} variant="success" />

Indicates attention needed.

<ProgressBar value={45} variant="warning" />

sm
md
lg
SizeHeightUsage
sm4pxSubtle progress indicators
md8pxDefault
lg12pxProminent progress displays

For loading states where progress is unknown.

<ProgressBar indeterminate />
<ProgressBar indeterminate variant="gold" />

Progress changes animate smoothly by default.

// Animated (default)
<ProgressBar value={progress} />
// Instant updates
<ProgressBar value={progress} animated={false} />

PropTypeDefaultDescription
valuenumberRequiredProgress 0-100
variant'default' | 'success' | 'warning' | 'gold''default'Color variant
size'sm' | 'md' | 'lg''md'Bar height
animatedbooleantrueAnimate changes
indeterminatebooleanfalseLoading animation
styleViewStyle-Custom styles
accessibilityLabelstring'Progress'A11y label

import { ProgressBar, Card, Badge } from '@synchronicity/react-native';
import { View, Text } from 'react-native';
function LearningProgress({ completed, total }) {
const percentage = Math.round((completed / total) * 100);
const isComplete = percentage === 100;
return (
<Card variant="outlined">
<View style={styles.header}>
<Text style={styles.title}>Learning Progress</Text>
<Badge variant={isComplete ? 'success' : 'gold'}>
{isComplete ? 'Complete' : `${percentage}%`}
</Badge>
</View>
<ProgressBar
value={percentage}
variant={isComplete ? 'success' : 'gold'}
size="md"
accessibilityLabel={`Learning progress: ${percentage}% complete`}
/>
<Text style={styles.subtitle}>
{completed} of {total} trigrams learned
</Text>
</Card>
);
}