Progress

Progress is a neobrutalist React component from Cruise UI. Linear bars and circular rings for how far along something is, or a spinner. Install it with npx shadcn@latest add @cruiseui/progress.

Install

Terminal

npx shadcn@latest add @cruiseui/progress

First time? Installation shows the one-off components.json setup (the @cruiseui registry) and how to turn the theme on.

Example

Corners
Loading…

When to use it

When to use

Uploads, half-filled profiles, deliveries; a ring where space is tight.

When not to

Static amounts that aren't progress (use a number or a Table).

Props

CruiseProgress

PropTypeDefaultDescription
labelstring—Accessible name, and the visible name when `showLabel` is on.
value?number—Leave out for an indeterminate bar (working, no known end).
max?number100—
tone?CruiseProgressTone"primary"—
size?"lg" | "md" | "sm""md"—
showLabel?booleanfalseShows the name on the left and the value on the right above the bar.
valueText?string—Visible value text, e.g. "₦1,200 of ₦5,000". Defaults to a percentage.
className?string——

CruiseProgressRing

PropTypeDefaultDescription
labelstring—Accessible name, and the visible name when `showLabel` is on.
max?number100—
size?"lg" | "md" | "sm""md"—
value?number—Leave out for an indeterminate bar (working, no known end).
className?string——
tone?CruiseProgressTone"primary"—

Accessibility

  • role="progressbar" with aria-valuemin, aria-valuemax, aria-valuenow and a label.
  • Indeterminate: no aria-valuenow; with reduced motion the spinner stops and says "Loading…".