Powerful and customizable React progress step components built for modern applications and websites. These progress steps are built using React Aria and styled with Tailwind CSS.
Your details
Name and email
Company details
Website and location
Invite your team
Start collaborating
Add your socials
Automatic sharing
Your details
Please provide your name and email
Company details
A few details about your company
Invite your team
Start collaborating with your team
Add your socials
Share posts to your social accounts
Installation
You can add this progress steps component using our CLI or manually:
npx untitledui@latest add progress-steps
Progress steps examples
Below are examples and variations of this progress steps component:
Your details
Name and email
Company details
Website and location
Invite your team
Start collaborating
Add your socials
Automatic sharing
Your details
Please provide your name and email
Company details
A few details about your company
Invite your team
Start collaborating with your team
Add your socials
Share posts to your social accounts
Your details
Name and email
Company details
Website and location
Invite your team
Start collaborating
Add your socials
Automatic sharing
Your details
Please provide your name and email
Company details
A few details about your company
Invite your team
Start collaborating with your team
Add your socials
Share posts to your social accounts
Your details
Name and email
Company details
Website and location
Invite your team
Start collaborating
Add your socials
Automatic sharing
Your details
Please provide your name and email
Company details
A few details about your company
Invite your team
Start collaborating with your team
Add your socials
Share posts to your social accounts
Your details
Please provide your name and email
Company details
A few details about your company
Invite your team
Start collaborating with your team
Add your socials
Share posts to your social accounts
Your details
Please provide your name and email
Company details
A few details about your company
Invite your team
Start collaborating with your team
Add your socials
Share posts to your social accounts
Your details
Please provide your name and email
Company details
A few details about your company
Invite your team
Start collaborating with your team
Add your socials
Share posts to your social accounts
Step 1 of 4
Your details
Name and email
Company details
Website and location
Invite your team
Start collaborating
Add your socials
Automatic sharing
Your details
Please provide your name and email
Company details
A few details about your company
Invite your team
Start collaborating with your team
Add your socials
Share posts to your social accounts
API reference
Import the parts and assemble them:
import { Progress } from "@/components/application/progress-steps/progress-steps"; const steps = [{ title: "Your details", description: "Name and email", status: "complete", icon: User01 }]; <Progress.IconsWithText items={steps} />
FeaturedIconLeft
Import FeaturedIconLeft from @/components/application/progress-steps/progress-step-base. Renders a <div> element.
FeaturedIconTop
Import FeaturedIconTop from @/components/application/progress-steps/progress-step-base. Renders a <div> element.
IconLeft
Import IconLeft from @/components/application/progress-steps/progress-step-base. Renders a <div> element.
IconLeftNumber
Import IconLeftNumber from @/components/application/progress-steps/progress-step-base. Renders a <div> element.
IconOnly
Import IconOnly from @/components/application/progress-steps/progress-step-base. Renders a <span> element.
IconTop
Import IconTop from @/components/application/progress-steps/progress-step-base. Renders a <div> element.
IconTopNumber
Import IconTopNumber from @/components/application/progress-steps/progress-step-base. Renders a <div> element.
Progress.IconsWithText
Renders a <div> element.
Progress.MinimalIcons
Renders a <div> element.
Progress.MinimalIconsConnected
Renders a <div> element.
Progress.TextWithLine
Renders a <div> element.
TextLine
Import TextLine from @/components/application/progress-steps/progress-step-base. Renders a <div> element.
FAQs
Please refer to our frequently asked questions page for more.
The components are grouped under a single Progress object with four entries: Progress.IconsWithText (a step marker plus title and description), Progress.MinimalIcons (markers only, optionally with a step counter), Progress.MinimalIconsConnected (markers joined by a line), and Progress.TextWithLine (a colored bar above each label).
Every variant is driven by an items array of steps, each { title, description, status, icon? }. status is "incomplete", "current" or "complete", and it drives the marker fill, the connector color and the text colors. Completed dot and number markers render a tick. There is no active-index prop, so you set status on each item yourself.
Pass type to Progress.IconsWithText. It accepts "icon" (the default dot or tick marker), "number" (the step position, switching to a tick on a success background once complete), and "featured-icon" (a FeaturedIcon in the gray modern theme). With "featured-icon" the icon property on each item is required.
All four variants accept a size prop of "sm" or "md", defaulting to "sm". The size changes the dot and number markers from size-6 to size-8 (featured icons go from "md" to "lg"), the text from text-sm to text-md, and the spacing between steps.
Yes, via the orientation prop, which accepts "vertical" or "horizontal". Progress.IconsWithText defaults to "vertical", while Progress.MinimalIconsConnected and Progress.TextWithLine default to "horizontal". The examples on this page render both and toggle them with className="max-md:hidden" and className="md:hidden" so the stepper stacks on mobile.
Pass connector={false} to Progress.IconsWithText to drop the connectors entirely. Otherwise a connector is drawn after every step and hidden automatically after the last one. Use Progress.MinimalIcons if you want markers with no connectors at all.
Pass the text prop to Progress.MinimalIcons. It renders a Step {completed} of {total} label before the markers, where the completed count is the number of items whose status is "complete".