GitHub
Core
Glass
Brutal
Humanist

Circular Progress Bar

Circular Progress Bars visualize progress or loading states in a compact circular format. They support three sizes and an optional percentage label.

Circular Progress Bar Playground

Circular Progress Bar Playground
Preview
Code
65%
Controls
Progress (65%)
Size:
Small
Default
Large
Label:

Installation

You can add the circular progress bar component to your project manually:

1

Install the following dependencies:

npm install @react-aria/progress
2

Copy and paste the following code into your project.

Loading source code...
3

Update the import paths to match your project setup.

Update the import aliases (e.g. @/components, @/utils) in the copied files to match your project's path configuration.

Basic Usage

A simple circular progress indicator:

import { CircularProgressBar } from '@versaui/ui/components/ProgressBar';

<CircularProgressBar value={75} />

Size Variants

Three sizes available — small (40px), default (48px), and large (64px):

<CircularProgressBar size="small" value={30} />
<CircularProgressBar size="default" value={50} />
<CircularProgressBar size="large" value={80} />

Hide Label

The percentage label can be hidden for a cleaner appearance:

<CircularProgressBar value={65} showLabel={false} />

Accessibility

  • Uses role="progressbar" with aria-valuenow, aria-valuemin, aria-valuemax
  • Accessible label via aria-label prop
  • Visual percentage complements the semantic role

CircularProgressBar Props

PropTypeDefaultDescription
valuenumber0Completion percentage (0–100). Clamped automatically.
size'large' | 'default' | 'small''default'Progress bar size.
showLabelbooleantrueShow percentage label in center.
classNamestring''Additional CSS classes.
aria-labelstring'Progress'Accessible label for screen readers.

On this page