Progress stepper

v4.0.1

Progress steppers are visual indicators of progression through a process or experience.

  • Skin
  • CoreUI
  • React
Stylized artwork of a progress stepper.

Considerations

Glanceable

Progress steppers are immediately understandable at a glance.

Minimal

Progress steppers use minimal visual UI to allow for quick identification.

Informative

Progress steppers focus on key milestones.

Anatomy

A progress stepper diagram with 5 elements numbered: 1. Trailing line, 2. Icon, 3. Leading line, 4. Primary label, 5. Secondary label.
  1. Trailing line
  2. Icon
  3. Leading line
  4. Primary label
  5. Secondary label

Properties

Label

All steps require a primary label. The label describes an important milestone within a process.

An optional secondary label is available for additional information, like the date a step was completed.

An incomplete progress stepper with a primary and secondary label sits above a latest progress stepper with a primary and secondary label.

Title

The title sits above the progress stepper and summarizes the latest update in a conversational tone.

A section title sits above a progress stepper.

Horizontal orientation

Use horizontal steppers when saving vertical space is important. They allow for scrolling if the content extends off screen, but we recommend avoiding this behavior where possible.

A horizontal progress stepper with a section title and three progress steps.

Vertical orientation

The vertical orientation is available when vertical space isn’t an issue. This is the preferred orientation on smaller screens with more steps.

A vertical progress stepper with a section title and four progress steps.

Incomplete state

Steps that have not been completed use the incomplete state. Incomplete steps indicate what is expected to occur, and only changes state when completed or when an issue occurs.

A progress stepper in an incomplete state.

Latest state

A checkmark and bold title means this was the latest step completed and the next step is in process.

A progress stepper in a latest state.

Completed state

A checkmark and non-bold label means this step is complete and the process has moved on.

A progress stepper in a completed state.

Blocked state

The outlined error icon indicates that a blocking issue has occurred and requires user attention before the process can continue. Errors should be paired with an alert banner or notice providing more information about what happened and how to resolve the issue, if possible.

A progress stepper in a blocked state.

Behavior

Errors

When an error occurs, a section notice or alert banner should appear providing more information and context to the occurrence.

If the issue can be resolved by the user, provide an action within the notice. If the issue is something out of the user’s control, provide as much detail as possible.

An example showing progress stepper component with three steps each with a different state: buyer paid, alert, available

Number of steps

Steppers have a minimum of 3 steps. There are no maximums, but aim for as few as possible to avoid overwhelming the user. Focus on the key milestones within a process.

A three stepped progress stepper sits above a five stepped progress stepper.

Minimum step height

For vertical steppers, the first and last steps have a minimum height of 36px and middle steps have a minimum height of 48px.

A vertical progress stepper with three steps. The overall height for the progress stepper is 120px. The first and last step has a height of 36px, and the middle step has a height of 48px.

Maximum step height

For vertical steppers, the first and last steps have a maximum height of 52px and middle steps have a maximum height of 80px.

A vertical progress stepper with three steps. The overall height for the progress stepper is 120px. The first and last step has a height of 52px, and the middle step has a height of 80px.

Minimum step width

For horizontal steps, first and last steps have a minimum width of 76px and middle steps have a minimum width of 128px.

A horizontal progress stepper with three steps. The overall width for the progress stepper is 280px. The first and last step has a width of 76px, and the middle step has a width of 128px.

Maximum step width

Middle steps have a maximum width of 256px. First and last steps have a maximum width of 140px.

A horizontal progress stepper with three steps. The overall width for the progress stepper is 536px. The first and last step has a width of140px, and the middle step has a width of 256px.

Maximum stepper width

If there are enough steps, steppers will stretch to fill their parent container up to a total width of 960px. However, steps will adhere to their individual maximum widths, so fewer steps will lead to a smaller total stepper width.

Three horizontal progress steppers with different widths. A progress stepper with an overall width of 536px, and individual stepper widths of 140px for the first and last step and 256px for the middle step sits below a progress stepper with an overall width of 792px. The individual stepper widths are 140px for the first and last step, and 256px for the middle steps as well. That sits below a progress stepper with an overall width of 960px.

Scroll behavior

The stepper component behaves similar to a carousel when the content extends beyond the screen. The width of each element is adjusted to ensure a peek to the right.

A horizontal progress stepper sits on a mobile screen with the progress stepper extending beyond the screen edge.

Label overflow

Longer labels wrap when wider than the step width.

An example progress stepper component with four steps demonstrating how the label text can wrap instead of truncating.

Best practices

Content

Use a minimum of 3 steps and keep each step concise.

A horizontal progress stepper with four steps: Paid, Shipped, Out for delivery, and Delivered.

Don’t use redundant steps like “in-transit,” “processing,” or “completed”. The lines and checkmarks imply those states.

A horizontal progress stepper with five steps: Buyer paid, Processed, Shipped, In-transit, Delivered.

Labels

Keep all steps past tense.

A horizontal progress stepper with three steps: Paid, Shipped, and Delivered.

Don’t use present tense for a step that has been or has yet to be completed.

A horizontal progress stepper with three steps: Paid, Shipping, and Delivering.

Number of steps

Progress steppers should have a minimum of 3 steps.

A horizontal progress stepper with four steps: Paid, Shipped, Out for delivery, and Delivered.

Don’t use progress steppers if there are only 1 or 2 steps. Explore using titles and body content or another pattern altogether.

A horizontal progress stepper with two steps: Buyer paid, and Out for delivery.

Specs

Specifications and measurements for a single step of a stepper. Between the step icon and the leading/trailing lines is a 4px gap. The icon itself is 24px. The leading/trailing lines are 4px in height. The gap between the icon and the label below is 8px.

Change log

VersionDateNotes
4.0.1
Oct, 2024
  • Updated to eBay Evo
4.0.1
Apr, 2023
  • Fixed bug where changing properties of a horizontal step changes all other steps to match
4.0.0
Jul, 2022
  • Consolidated “Issue” and “Error” states into one “blocked” state
  • Simplified states to be incomplete, complete, and blocked
3.3.0
May, 2022
  • Updated “current” state indicator to have a dot
3.2.0
Apr, 2022
  • Updated label styles
  • Fixed flexing of stepper component