Skip to Content
ComponentsProgressCircle

ProgressCircle

Display circular progress indicators for loading states and completion metrics.

Import

import { ProgressCircle } from "@raydenui/ui";

Usage

Basic

65%
<ProgressCircle value={65} />

Sizes

50%
50%
50%
50%
50%
<ProgressCircle size="xs" value={50} /> {/* 48px */} <ProgressCircle size="sm" value={50} /> {/* 56px */} <ProgressCircle size="md" value={50} /> {/* 72px */} <ProgressCircle size="lg" value={50} /> {/* 90px */} <ProgressCircle size="xl" value={50} /> {/* 120px */}

Segmented Variant

Display progress as 10 discrete segments with gaps.

70%
<ProgressCircle variant="segmented" value={70} />

Show/Hide Text

75%
// With percentage (default) <ProgressCircle value={75} showText /> // Without percentage <ProgressCircle value={75} showText={false} />

Variants Comparison

60%
Default
60%
Segmented
<div className="flex gap-8"> <div className="text-center"> <ProgressCircle variant="default" value={60} /> <p className="mt-2 text-sm">Default</p> </div> <div className="text-center"> <ProgressCircle variant="segmented" value={60} /> <p className="mt-2 text-sm">Segmented</p> </div> </div>

Props

PropTypeDefaultDescription
valuenumber0Progress value (0-100)
size"xs" | "sm" | "md" | "lg" | "xl""md"Circle size
variant"default" | "segmented""default"Continuous or segmented style
showTextbooleantrueShow percentage in center
classNamestring—Additional CSS classes

Size Reference

SizeDimensionStroke WidthFont Size
xs48px4px12px
sm56px5px12px
md72px6px14px
lg90px7px16px
xl120px8px18px

Accessibility

  • Uses SVG with role="progressbar"
  • aria-valuenow, aria-valuemin, aria-valuemax set correctly
  • Center percentage is visible and accessible
Last updated on