Step
A headless component for navigation through multi-step processes like wizards and forms.
Usage
The Step component extends Single with navigation methods for moving through a sequence of items. It provides methods for first, last, next, previous, and step-by-count navigation with automatic disabled item skipping.
Step 1
Content for step 1
Anatomy
<script setup lang="ts">
import { Step } from '@vuetify/v0'
</script>
<template>
<Step.Root>
<Step.Item />
</Step.Root>
</template>Recipes
Navigation Methods
The default slot exposes navigation methods for moving through steps:
<template>
<Step.Root v-model="current">
<template #default="{ first, last, next, prev, step }">
<Step.Item value="details">Details</Step.Item>
<Step.Item value="payment">Payment</Step.Item>
<Step.Item value="confirm">Confirm</Step.Item>
<button @click="prev">Back</button>
<button @click="next">Continue</button>
<!-- Jump by count: step(2) advances two steps, step(-1) goes back one -->
<button @click="step(2)">Skip ahead</button>
</template>
</Step.Root>
</template>Disabled Item Skipping
Disabled items are automatically skipped by next, prev, and step. Use this to conditionally hide steps based on form state:
<template>
<Step.Root v-model="current">
<Step.Item value="details">Details</Step.Item>
<!-- Skipped by next/prev when needsShipping is false -->
<Step.Item value="shipping" :disabled="!needsShipping">Shipping</Step.Item>
<Step.Item value="confirm">Confirm</Step.Item>
</Step.Root>
</template>Accessibility
Step is a headless state provider, not a complete tablist. It tracks the active item and exposes first, last, next, prev, and step. Item attrs include role="tab", a tabindex, Enter/Space, and the click handler.
Step.Rootexposesaria-multiselectable="false"— single-selection.Step.Itemexposesaria-selectedandaria-disabled, plusdata-selectedanddata-disabledfor styling.
Binding attrs already applies role="tab" and Enter/Space. Wire arrow keys to next and prev yourself. For role="tablist" and arrow-key roving, use Tabs, which composes the same step logic.
FAQ
Step extends Single, adding navigation methods (first, last, next, prev, step) for moving through an ordered sequence. Use Step for wizards and steppers; use Single when you only need single-selection without traversal.
Mark the Step.Item as :disabled — next, prev, and step automatically skip disabled items, so you can hide steps based on form state.
Yes. step(n) moves by count — step(2) advances two steps and step(-1) goes back one, skipping any disabled items along the way.