Progress

A visual indicator showing the completion status of a task or operation.

Overview

The Progress component shows completion for a task or operation. Use the linear progress component for standard flows, ProgressCircle for compact circular status, and ProgressRadial for gauge-style displays.

Progress tracks are surface-aware. The track lands four levels above its parent surface and the indicator uses the default brand fill.

Usage

import {
  Progress,
  ProgressCircle,
  ProgressRadial,
  ProgressValue,
} from "@tilt-legal/cubitt-components/progress";
<Progress value={45}>
  <ProgressValue />
</Progress>

<ProgressCircle value={75} showValue />

<ProgressRadial value={60} startAngle={180} endAngle={360} showValue />

Examples

With Value

Show the formatted value under the linear progress track.

Sizes

Adjust the track height with className.

Animated

Animate progress value changes over time.

With Status

Show contextual status text alongside progress changes.

Circular Progress

Show progress as a full circle with custom center content.

Radial Progress

Show progress as a partial arc with custom angles.

API Reference

Progress

The accessible linear progress root.

PropTypeDefaultDescription
valuenumber | nullCurrent progress value. Use null for indeterminate progress.
minnumber0The minimum value.
maxnumber100The maximum value.
getAriaValueText(formatted, value) => stringFunction returning human-readable text for the current value.
aria-valuetextstringString value that provides a user-friendly name for the current value.
localeIntl.LocalesArgumentLocale used by Intl.NumberFormat when formatting the value.
formatIntl.NumberFormatOptionsNumber formatting options for the value.
classNamestring | (state) => stringClasses applied to the progress track, commonly used for height.
renderReactElement | (props) => ReactElementAllows composing the root with another element. Receives props to spread.
childrenReactNodeChild elements, typically ProgressValue.

ProgressValue

Displays the formatted progress value for linear progress.

PropTypeDescription
classNamestring | (state) => stringCSS classes or function that returns classes based on component state.
renderReactElement | (props) => ReactElementAllows composing the component with another element. Receives props to spread.

ProgressCircle

Circular progress indicator built with SVG.

PropTypeDefaultDescription
valuenumber | null0Progress value from 0 to 100. null and 0 are indeterminate.
sizenumber48Size of the circle in pixels.
strokeWidthnumber4Width of the progress stroke.
showValuebooleanfalseWhether to show the percentage value in the center.
indicatorClassNamestringAdditional className for the progress indicator stroke.
trackClassNamestringAdditional className for the progress track.
classNamestringAdditional CSS classes for the container.
childrenReactNodeCustom content to display in the center. Overrides showValue.

ProgressRadial

Radial progress indicator built with SVG.

PropTypeDefaultDescription
valuenumber | null0Progress value from 0 to 100. null and 0 are indeterminate.
sizenumber120Size of the radial in pixels.
strokeWidthnumber8Width of the progress stroke.
startAnglenumber-90Start angle in degrees.
endAnglenumber90End angle in degrees.
showValuebooleanfalseWhether to show the percentage value in the center.
indicatorClassNamestringAdditional className for the progress indicator stroke.
trackClassNamestringAdditional className for the progress track.
classNamestringAdditional CSS classes for the container.
childrenReactNodeCustom content to display in the center. Overrides showValue.

On this page