Steps

A progress indicator for multi-step flows like checkout or onboarding. Uses aria-current="step" for the active step and .is-complete / .is-error state classes for completed or failed steps.

Horizontal steps

index.htmlhtml
<div class="ln-steps">
  <div class="ln-steps__item is-complete">
    <div class="ln-steps__marker">1</div>
    <div class="ln-steps__label">Cart</div>
  </div>
  <div class="ln-steps__connector"></div>
  <div class="ln-steps__item is-complete">
    <div class="ln-steps__marker">2</div>
    <div class="ln-steps__label">Shipping</div>
  </div>
  <div class="ln-steps__connector"></div>
  <div class="ln-steps__item" aria-current="step">
    <div class="ln-steps__marker">3</div>
    <div class="ln-steps__label">Payment</div>
  </div>
  <div class="ln-steps__connector"></div>
  <div class="ln-steps__item">
    <div class="ln-steps__marker">4</div>
    <div class="ln-steps__label">Confirm</div>
  </div>
</div>
1
Cart
2
Shipping
3
Payment
4
Confirm

Vertical steps

index.htmlhtml
<div class="ln-steps ln-steps--vertical">
  <div class="ln-steps__item is-complete">
    <div class="ln-steps__marker">1</div>
    <div class="ln-steps__label">Account created</div>
    <div class="ln-steps__connector"></div>
  </div>
  <div class="ln-steps__item" aria-current="step">
    <div class="ln-steps__marker">2</div>
    <div class="ln-steps__label">Verify email</div>
    <div class="ln-steps__connector"></div>
  </div>
  <div class="ln-steps__item">
    <div class="ln-steps__marker">3</div>
    <div class="ln-steps__label">Set up profile</div>
  </div>
</div>
1
Account created
2
Verify email
3
Set up profile

Dot steps

index.htmlhtml
<div class="ln-steps ln-steps--dots">
  <div class="ln-steps__item is-complete">
    <div class="ln-steps__marker"></div>
  </div>
  <div class="ln-steps__item is-complete">
    <div class="ln-steps__marker"></div>
  </div>
  <div class="ln-steps__item" aria-current="step">
    <div class="ln-steps__marker"></div>
  </div>
  <div class="ln-steps__item">
    <div class="ln-steps__marker"></div>
  </div>
</div>

Steps with color roles

index.htmlhtml
<div class="ln-steps ln-steps--info">
  <div class="ln-steps__item is-complete">
    <div class="ln-steps__marker">1</div>
    <div class="ln-steps__label">Upload</div>
  </div>
  <div class="ln-steps__connector"></div>
  <div class="ln-steps__item" aria-current="step">
    <div class="ln-steps__marker">2</div>
    <div class="ln-steps__label">Process</div>
  </div>
  <div class="ln-steps__connector"></div>
  <div class="ln-steps__item">
    <div class="ln-steps__marker">3</div>
    <div class="ln-steps__label">Done</div>
  </div>
</div>

<div class="ln-steps ln-steps--danger">
  <div class="ln-steps__item is-complete">
    <div class="ln-steps__marker">1</div>
    <div class="ln-steps__label">Select</div>
  </div>
  <div class="ln-steps__connector"></div>
  <div class="ln-steps__item" aria-current="step">
    <div class="ln-steps__marker">2</div>
    <div class="ln-steps__label">Confirm</div>
  </div>
  <div class="ln-steps__connector"></div>
  <div class="ln-steps__item">
    <div class="ln-steps__marker">3</div>
    <div class="ln-steps__label">Delete</div>
  </div>
</div>
1
Upload
2
Process
3
Done
1
Select
2
Confirm
3
Delete

Reference

ClassDescriptionResponsive
.ln-stepsSteps container (flex row)No
.ln-steps__itemIndividual stepNo
.ln-steps__markerStep number or icon circleNo
.ln-steps__connectorLine between stepsNo
.ln-steps__labelStep label textNo
.ln-steps__descriptionStep description textNo
.ln-steps--verticalVertical stacked layoutNo
.ln-steps--dotsDot indicator styleNo
.ln-steps--compactSmaller markersNo