Skip to main content
Mantı UI logoMantı UIv0.12.1
Studio

Steps

Pass items as { title, description, content }. The machine tracks the active step and built-in controls move through the flow.

import { Steps } from '@manti-ui/react';

const items = [
  { title: 'Dough', description: 'Knead & rest', content: 'Make the dough.' },
  { title: 'Fill', description: 'Spoon & fold', content: 'Fill the wrappers.' },
  { title: 'Steam', description: 'Cook through', content: 'Steam until done.' },
];

export default function StepsBasic() {
  return (
    <div className="w-full">
      <Steps items={items} variant="primary" orientation="horizontal" />
    </div>
  );
}

Vertical layout

Make the dough.

API

PropTypeDefaultDescription
itemsStepItem[]The steps. Each item: { title, description?, content? }.
variantMantiVariant'primary'Variant of the active and completed steps.
orientation'horizontal' | 'vertical''horizontal'Layout direction.
linearbooleanRequire steps to be completed in order.
stepnumberControlled active step index.
defaultStepnumber0Initial active step for uncontrolled usage.
onStepChange(step: number) => voidCalled whenever the active step changes.
controlsbooleantrueRender the built-in prev/next controls.

Styling

Anatomy

PartSelectorDescription
root[data-scope="steps"][data-part="root"]The flow container.
list[data-scope="steps"][data-part="list"]The row of step triggers.
item[data-scope="steps"][data-part="item"]A single step in the list.
trigger[data-scope="steps"][data-part="trigger"]The clickable step header.
indicator[data-scope="steps"][data-part="indicator"]The numbered step marker.
item-content[data-scope="steps"][data-part="item-content"]Wraps the step title and description.
item-title[data-scope="steps"][data-part="item-title"]The step title.
item-description[data-scope="steps"][data-part="item-description"]The optional step description.
separator[data-scope="steps"][data-part="separator"]The connector line between steps.
content[data-scope="steps"][data-part="content"]The panel shown for the active step.
controls[data-scope="steps"][data-part="controls"]The built-in prev/next buttons.

Tokens

TokenControls
--manti-steps-indicator-sizeindicator size

Last updated

Built end-to-end with Manti UI components and design tokens. Manti UI is a framework-agnostic design system on Zag.js.

GitHub