Stepper - Laravel Blade

Use the stepper component to show a multi-step process indicator with completed, current, and upcoming states for navigation and progress tracking.

Default Stepper

  1. Personal Info
  2. Account Info
  3. Confirmation

Blade code

<x-fwb.stepper>
    <x-fwb.stepper.item :completed="true" label="Personal Info" />
    <x-fwb.stepper.item :current="true" label="Account Info" />
    <x-fwb.stepper.item label="Confirmation" />
</x-fwb.stepper>

Progress Stepper

  1. Personal Info
  2. Account Info
  3. Review
  4. Confirmation

Blade code

<x-fwb.stepper>
    <x-fwb.stepper.item :completed="true" label="Personal Info" fwb-icon="s-check-circle" />
    <x-fwb.stepper.item :completed="true" label="Account Info" fwb-icon="s-check-circle" />
    <x-fwb.stepper.item :current="true" label="Review" />
    <x-fwb.stepper.item label="Confirmation" />
</x-fwb.stepper>

Detailed Stepper

  1. User Info

    Step details here

  2. Account Details

    Step details here

  3. Review

    Step details here

Blade code

<x-fwb.stepper>
    <x-fwb.stepper.item :completed="true">
        <div>
            <h3 class="font-medium leading-tight text-blue-600 dark:text-blue-500">User Info</h3>
            <p class="text-sm text-gray-500 dark:text-gray-400">Step details here</p>
        </div>
    </x-fwb.stepper.item>
    <x-fwb.stepper.item :current="true">
        <div>
            <h3 class="font-medium leading-tight text-blue-600 dark:text-blue-500">Account Details</h3>
            <p class="text-sm text-gray-500 dark:text-gray-400">Step details here</p>
        </div>
    </x-fwb.stepper.item>
    <x-fwb.stepper.item>
        <div>
            <h3 class="font-medium leading-tight">Review</h3>
            <p class="text-sm text-gray-500 dark:text-gray-400">Step details here</p>
        </div>
    </x-fwb.stepper.item>
</x-fwb.stepper>

Vertical Stepper

Blade code

<x-fwb.stepper variant="vertical">
    <div class="flex items-center p-4 text-green-700 border border-green-300 rounded-lg bg-green-50 dark:bg-gray-800 dark:border-green-800 dark:text-green-400" role="alert">
        <x-fwb-s-check-circle class="flex-shrink-0 w-4 h-4 me-2" />
        <span class="sr-only">Completed</span>
        <h3 class="text-sm font-medium">Personal information has been completed.</h3>
    </div>
    <div class="flex items-center p-4 text-blue-700 border border-blue-300 rounded-lg bg-blue-50 dark:bg-gray-800 dark:border-blue-800 dark:text-blue-400" role="alert">
        <x-fwb-o-info-circle class="flex-shrink-0 w-4 h-4 me-2" />
        <span class="sr-only">Current</span>
        <h3 class="text-sm font-medium">Account information is being reviewed.</h3>
    </div>
    <div class="flex items-center p-4 text-gray-500 border border-gray-300 rounded-lg bg-gray-50 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400" role="alert">
        <div class="flex-shrink-0 w-4 h-4 me-2 border-2 border-gray-400 rounded-full dark:border-gray-500"></div>
        <span class="sr-only">Upcoming</span>
        <h3 class="text-sm font-medium">Confirmation pending.</h3>
    </div>
</x-fwb.stepper>
  1. Personal Info
  2. Account Info
  3. Review
  4. Confirmation

Blade code

<x-fwb.stepper variant="breadcrumb">
    <x-fwb.stepper.item :completed="true" label="Personal Info" />
    <x-fwb.stepper.item :current="true" label="Account Info" />
    <x-fwb.stepper.item label="Review" />
    <x-fwb.stepper.item label="Confirmation" />
</x-fwb.stepper>

Timeline Stepper

Personal Info

Step completed successfully.

Account Details

Currently in progress.

Confirmation

Pending review.

Blade code

<x-fwb.stepper variant="timeline">
    <div class="mb-10 ms-6">
        <span class="absolute flex items-center justify-center w-8 h-8 bg-green-200 rounded-full -start-4 ring-4 ring-white dark:ring-gray-900 dark:bg-green-900">
            <x-fwb-o-check class="w-3.5 h-3.5 text-green-500 dark:text-green-400" />
        </span>
        <h3 class="font-medium leading-tight text-gray-900 dark:text-white">Personal Info</h3>
        <p class="text-sm text-gray-500 dark:text-gray-400">Step completed successfully.</p>
    </div>
    <div class="mb-10 ms-6">
        <span class="absolute flex items-center justify-center w-8 h-8 bg-blue-200 rounded-full -start-4 ring-4 ring-white dark:ring-gray-900 dark:bg-blue-900">
            <x-fwb-s-user-circle class="w-3.5 h-3.5 text-blue-600 dark:text-blue-300" />
        </span>
        <h3 class="font-medium leading-tight text-gray-900 dark:text-white">Account Details</h3>
        <p class="text-sm text-gray-500 dark:text-gray-400">Currently in progress.</p>
    </div>
    <div class="ms-6">
        <span class="absolute flex items-center justify-center w-8 h-8 bg-gray-100 rounded-full -start-4 ring-4 ring-white dark:ring-gray-900 dark:bg-gray-700">
            <x-fwb-o-file class="w-3.5 h-3.5 text-gray-500 dark:text-gray-400" />
        </span>
        <h3 class="font-medium leading-tight text-gray-900 dark:text-white">Confirmation</h3>
        <p class="text-sm text-gray-500 dark:text-gray-400">Pending review.</p>
    </div>
</x-fwb.stepper>

Stepper with Form

  1. Personal Info
  2. Account Info
  3. Confirmation

Blade code

<div>
    <x-fwb.stepper class="mb-8">
        <x-fwb.stepper.item :completed="true" label="Personal Info" />
        <x-fwb.stepper.item :current="true" label="Account Info" />
        <x-fwb.stepper.item label="Confirmation" />
    </x-fwb.stepper>

    <form class="max-w-sm mx-auto">
        <div class="mb-5">
            <label for="email" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Your email</label>
            <input type="email" id="email" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white" placeholder="name@flowbite.com" required />
        </div>
        <div class="mb-5">
            <label for="password" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Your password</label>
            <input type="password" id="password" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white" required />
        </div>
        <div class="flex items-start mb-5">
            <input id="remember" type="checkbox" class="w-4 h-4 border border-gray-300 rounded bg-gray-50 focus:ring-3 focus:ring-blue-300 dark:bg-gray-700 dark:border-gray-600 dark:focus:ring-blue-600" />
            <label for="remember" class="ms-2 text-sm font-medium text-gray-900 dark:text-gray-300">Remember me</label>
        </div>
        <button type="submit" class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">Next Step</button>
    </form>
</div>

Component Properties

Stepper x-fwb.stepper

Prop Type Default Description
variant string default Stepper layout variant. Options: default, vertical, breadcrumb, timeline.

Stepper Item x-fwb.stepper.item

Prop Type Default Description
completed bool false Mark the step as completed. Shows a checkmark icon.
current bool false Mark the step as the currently active step. Highlights the step with an accent color.
label string|null null Text label for the step.
description string|null null Additional description text displayed below the label.
fwb-icon string|null null Shorthand icon name from flowbite-blade-icons (e.g. s-check-circle). Displayed when the step is not completed.
icon slot Named slot for full icon control. Displayed when the step is not completed. Takes priority over fwb-icon prop.