Stepper

size
view
import {Stepper} from '@gravity-ui/uikit';

Stepper convey progress through numbered steps. It provides a wizard-like workflow.Steppers display progress through a sequence of logical and numbered steps.

Example

<Stepper>
  <Stepper.Item>Step 1</Stepper.Item>
  <Stepper.Item>Step 2</Stepper.Item>
  <Stepper.Item>Step 3</Stepper.Item>
  <Stepper.Item>Step 4 with very long title</Stepper.Item>
</Stepper>

Interactive items

Use onUpdate and value props with custom state to manipulate steps

<Stepper value={0} onUpdate={(id) => alert(id)}>
    <Stepper.Item>Step 1</Stepper.Item>
    <Stepper.Item>Step 2</Stepper.Item>
    <Stepper.Item>Step 3</Stepper.Item>
    <Stepper.Item>Step 4 with very long title</Stepper.Item>
  </Stepper>

Different views

<Stepper>
  <Stepper.Item>Step 1</Stepper.Item>
  <Stepper.Item view="error">Step 2</Stepper.Item>
  <Stepper.Item view="error">Step 3</Stepper.Item>
  <Stepper.Item view="success">Step 4</Stepper.Item>
</Stepper>

Different sizes

<Stepper size="l">
  <Stepper.Item>Step 1</Stepper.Item>
  <Stepper.Item>Step 2</Stepper.Item>
  <Stepper.Item>Step 3</Stepper.Item>
  <Stepper.Item>Step 4</Stepper.Item>
</Stepper>

Disabled steps

<Stepper>
  <Stepper.Item>Step 1</Stepper.Item>
  <Stepper.Item disabled>Step 2</Stepper.Item>
  <Stepper.Item disabled>Step 3</Stepper.Item>
  <Stepper.Item disabled>Step 4 with very long title</Stepper.Item>
</Stepper>

Custom icons

<Stepper>
  <Stepper.Item icon={<Icon data={Gear} />}>Step 1</Stepper.Item>
  <Stepper.Item icon={<Icon data={Rocket} />}>Step 2</Stepper.Item>
  <Stepper.Item icon={<Icon data={Cloud} />}>Step 3</Stepper.Item>
  <Stepper.Item icon={<Icon data={Hammer} />}>Step 4 with very long title</Stepper.Item>
</Stepper>

Custom step separator

<Stepper separator=">">
  <Stepper.Item>Step 1</Stepper.Item>
  <Stepper.Item view="error">Step 2</Stepper.Item>
  <Stepper.Item view="success">Step 3</Stepper.Item>
  <Stepper.Item>Step 4 with very long title</Stepper.Item>
</Stepper>

Step with floating element

<Stepper>
  <Tooltip content="fancy step with tooltip">
    <Stepper.Item>Step 1</Stepper.Item>
  </Tooltip>
  <Stepper.Item view="error">Step 2</Stepper.Item>
  <Stepper.Item view="success">Step 3</Stepper.Item>
  <Stepper.Item>Step 4 with very long title</Stepper.Item>
</Stepper>

Properties

NameDescriptionTypeDefault
childrenStepper items.React.ReactElement<StepperItemProps>
sizeSet the Step size."s" "m" "l""s"
valueCurrent selected Step id.number string
onUpdatefunction for change current Step.Function
qadata-qa HTML attribute, used for testing.string
separatorCustom separator node.React.ReactNode
classNameCSS class name for the Steps container.string
styleSets the inline style for the Steps container.CSSProperties
aria-labelDefines a string value that labels the current element.string
aria-labelledbyIdentifies the element(s) that label the current element.string
aria-describedbyIdentifies the element(s) that describe the object.string

StepperItemProps

NameDescriptionTypeDefault
idSet Step id. Index of array element as default.string number
viewSet Step view."idle" "error" "success""idle"
childrenStep content.React.Node
disabledDetermines whether Step is disable.boolean
iconCustom icon node.SVGIconData
onClickStep click handler.React.MouseEventHandler
classNameCSS class name for the element.string

CSS API

NameDescription
--g-stepper-gapGap between step items and separator.
--g-stepper-item-text-max-widthStep item text max-width.