Radial Progress

Radial tick-gauge progress and loading indicator with a traveling height wave.

75%
<RadialProgress value={75} size="md" activeColor="#2d6a4f" roughness={1.5} />

CLI install

npx doodleui-react add radial-progress

Usage

import { RadialProgress } from "doodleui-react";

{/* Determinate */}
<RadialProgress value={75} />

{/* Indeterminate loader */}
<RadialProgress />

Exposes role="progressbar" with aria-valuenow when determinate. Indeterminate mode sets aria-busy and defaults aria-label to "Loading".

Props

PropTypeDefaultNotes
valuenumber | undefinedundefinedDeterminate progress. Omit for indeterminate loading mode.
maxnumber100Maximum value. Sets aria-valuemax.
size"sm" | "md" | "lg" | number"md"Gauge diameter preset or pixel size.
tickCountnumber48Number of radial tick bars along the arc.
activeColor / trackColorstringthemeActive and inactive tick colors.
showValuebooleantrueShow center percentage or children.
waveSpeednumber2Seconds per full wave cycle.
animatebooleantrueTraveling height/brightness wave on ticks. Reduced motion freezes the wave. Overrides DoodleUIProvider. Reduced motion disables this unless the provider set forceAnimate.
roughnessnumber1.5How wobbly the stroke is. 0 is almost geometric. 3+ is messy.
seednumberprovider / randomLocks the sketch. Omit to follow SketchSeedProvider (Shuffle) or a mount-time random seed.
sketchColorstring#1f1d1aStroke color. Also tints primary/accent fills where relevant.
classNamestringundefinedPassed through to the root element.
styleCSSPropertiesundefinedPassed through to the root element.