Skip to Content
Headless SDKElementsProgressCircle

ProgressCircle

SVG circular progress indicator. Shares the same animation engine as ProgressBar (easing, checkpoints, pause/resume) and adds a renderInner slot for centered content.

Props

PropTypeDefaultDescription
durationnumber5000Full animation duration in milliseconds
trackColorstring#e5e7ebBackground track color
fillColorstring#3b82f6Progress fill color
trackWidthnumber8Track stroke width
fillWidthnumber8Fill stroke width
lineCap'round' | 'butt' | 'square''round'Stroke line cap
autoStartbooleantrueStart animation on mount
animationEasingType'linear'Easing curve
checkpointsProgressCircleCheckpoint[][]Checkpoints that fire callbacks or pause
onCheckpoint(percentage: number) => voidCalled when a checkpoint is reached
onProgress(percentage: number) => voidCalled on every whole-number progress change
onComplete() => voidCalled when progress reaches 100%
sizenumber100SVG viewBox size
renderInner(progress: number) => ReactNodeRender custom content centered inside the circle
classNamestringContainer className
styleCSSPropertiesContainer style

Ref Handle

MethodDescription
start()Start the animation from the beginning
pause()Pause the animation
resume()Resume after a pause
reset()Reset to 0 without starting

Example

<ProgressCircle duration={5000} fillColor="#2FAD39" trackColor="#ededed" animation="easeOut" onComplete={() => goToNextPage()} renderInner={(progress) => <span>{progress}%</span>} />
Last updated on