All components

ProgressBar · ProgressRing

Controlled progress bars and rings with an indeterminate state.

WebReact NativeProgress

Try it

Preparing the example…

Shortest usage

Upload.jsx
<ProgressBar value={progress} max={100} />
<ProgressRing value={progress} size={96}>{progress}%</ProgressRing>
<ProgressBar value={null} /> {/* indeterminate */}

What it handles for you

  • Values clamp to 0…max, and null shows an indeterminate sweep or a spinning arc.
  • A new value in the middle of a motion continues with its velocity.
  • One continuous line or arc, never segments that jump.
  • A spring with duration ends exactly at that time.

Use it for

  • A file upload.
  • Storage used out of a quota.
  • Progress through a checkout.

Props

ProgressBar

PropTypeDefaultDescription
valuenumber | nullProgress from 0 to max; null is indeterminate.
maxnumber100The value that means complete.
colorstring'currentColor'Fill color.
trackColorstring'#e7ece9'Track color.
thicknessnumber8Line thickness in pixels.
direction'ltr' | 'rtl''ltr'Fill from the left (ltr) or from the right (rtl).
transitionTransitionspringA timing curve { duration, easing } or a spring { tempo: 'spring', spring }. Springs keep their momentum when interrupted.

ProgressRing

PropTypeDefaultDescription
valuenumber | nullProgress from 0 to max; null is indeterminate.
maxnumber100The value that means complete.
sizenumber96Diameter in pixels.
thicknessnumber8Ring thickness in pixels.
colorstring'currentColor'Arc color.
trackColorstring'#e7ece9'Track color.
childrenReactNodeA label shown in the middle.
transitionTransitionspringA timing curve { duration, easing } or a spring { tempo: 'spring', spring }. Springs keep their momentum when interrupted.

Other props go to the rendered element, so className, style and event handlers work as usual.

Web and React Native

ProgressRing takes children for a label in the middle; ProgressBar takes direction to fill from the right.

The same components and props work on React Native.

Search

Type to search the documentation.