Progress

A collection of progress bar variants — solid, segmented cells, numbered steps, and stretch — for visualising multi-step flows and completion.

Solid

A continuous filled bar representing percentage completion.

Demo

Installation

pnpm dlx shadcn@latest add @turbopills-ui/progress-solid

Usage

tsx
1import { ProgressSolid } from "@/components/turbopills/ui/progress/progress-solid"
tsx
1<ProgressSolid value={45} />

Props

PropTypeDefaultDescription
valuenumber0Completion percentage (0–100).
animatedbooleantrueEnables a smooth width transition.
filledClassNamestringAdditional class names for the filled portion of the bar.
unfilledClassNamestringAdditional class names for the unfilled background.
classNamestringAdditional class names for the root element.

Cells

The bar is split into equally-sized rounded cells, each filling independently.

Demo

Installation

pnpm dlx shadcn@latest add @turbopills-ui/progress-cells

Usage

tsx
1import { ProgressCells } from "@/components/turbopills/ui/progress/progress-cells"
tsx
1<ProgressCells
2  value={60}
3  steps={[
4    { label: "Info" },
5    { label: "Address" },
6    { label: "Payment" },
7    { label: "Review" },
8    { label: "Done" },
9  ]}
10/>

With Labels

Info
Address
Payment
Review
Done

Props

ProgressCellsProps

PropTypeDefaultDescription
valuenumber0Completion percentage (0–100).
stepsProgressStep[] | number4Number of cells, or an array of step objects with optional label and tooltip.
highlightCurrentbooleanfalseAdds a ring highlight to the currently active cell.
cellGapnumber8Gap in pixels between cells.
animatedbooleantrueEnables smooth fill transitions.
filledClassNamestringAdditional class names for filled cells.
unfilledClassNamestringAdditional class names for unfilled cells.
currentClassNamestringAdditional class names for the current (active) cell.
classNamestringAdditional class names for the root element.

ProgressStep

PropTypeDefaultDescription
labelstringText displayed below the step.
tooltipstringTooltip shown on hover.

Numbered

Circular numbered badges connected by lines — ideal for multi-step wizards. Automatically collapses with ellipsis when space is limited.

Demo

1
2
3
4
5

Installation

pnpm dlx shadcn@latest add @turbopills-ui/progress-numbered

Usage

tsx
1import { ProgressNumbered } from "@/components/turbopills/ui/progress/progress-numbered"
tsx
1<ProgressNumbered
2  value={50}
3  highlightCurrent
4  steps={[
5    { label: "Info", tooltip: "Personal information" },
6    { label: "Address", tooltip: "Shipping address" },
7    { label: "Payment", tooltip: "Payment details" },
8    { label: "Review", tooltip: "Review order" },
9    { label: "Done", tooltip: "Order placed" },
10  ]}
11/>

With Labels & Tooltips

1
Info
2
Address
3
Payment
4
Review
5
Done

Props

ProgressNumberedProps

PropTypeDefaultDescription
valuenumber0Completion percentage (0–100).
stepsProgressStep[] | number4Number of steps, or an array of step objects with optional label and tooltip.
highlightCurrentbooleanfalseAdds a ring highlight to the active step circle.
animatedbooleantrueEnables smooth transitions.
filledClassNamestringAdditional class names for filled step circles.
unfilledClassNamestringAdditional class names for unfilled step circles.
currentClassNamestringAdditional class names for the current step circle.
classNamestringAdditional class names for the root element.

ProgressStep

PropTypeDefaultDescription
labelstringText displayed below the step circle.
tooltipstringTooltip shown on hover.

Stretch

Segmented cells where the currently active cell expands to take more space, drawing attention to the current step.

Demo

Installation

pnpm dlx shadcn@latest add @turbopills-ui/progress-stretch

Usage

tsx
1import { ProgressStretch } from "@/components/turbopills/ui/progress/progress-stretch"
tsx
1<ProgressStretch
2  value={50}
3  highlightCurrent
4  steps={[
5    { label: "Info" },
6    { label: "Address" },
7    { label: "Payment" },
8    { label: "Review" },
9    { label: "Done" },
10  ]}
11/>

With Labels

Info
Address
Payment
Review
Done

Props

ProgressStretchProps

PropTypeDefaultDescription
valuenumber0Completion percentage (0–100).
stepsProgressStep[] | number4Number of cells, or an array of step objects with optional label and tooltip.
highlightCurrentbooleanfalseAdds a ring highlight to the active cell.
cellGapnumber4Gap in pixels between cells.
currentWeightnumber8Flex weight of the current (active) cell.
collapsedWeightnumber1Flex weight of non-current cells.
animatedbooleantrueEnables smooth transitions for fill and flex.
filledClassNamestringAdditional class names for filled cells.
unfilledClassNamestringAdditional class names for unfilled cells.
currentClassNamestringAdditional class names for the current cell.
classNamestringAdditional class names for the root element.

ProgressStep

PropTypeDefaultDescription
labelstringText displayed below the step.
tooltipstringTooltip shown on hover.