Steps

Walk readers through install and setup procedures with numbered steps.

Use <Steps> and <Step> to present a numbered sequence (installation guides, onboarding flows, or any procedure readers should follow in order). Each step shows an auto-incremented number in a circle, with an optional title and room for rich content underneath.

Wrap one or more <Step> children inside <Steps>. Add code blocks, callouts, lists, or other components inside each step.

mdx
<Steps>
  <Step title="Install dependencies">
    Run `npm install` in your project root.
  </Step>
  <Step title="Start the dev server">
    Run `npm run dev`.
  </Step>
</Steps>

Example

  • Install via npm

    Install the package:

    bash
    npm install newpackage

    The newpackage executable will be available in your terminal.

  • Configure

    Initialize configuration:

    bash
    newpackage configure --init
  • Local development

    Start your development server:

    bash
    newpackage dev --port 3000
mdx
<Steps>
  <Step title="Install via npm">
    Install the package:

    ```bash
    npm install newpackage
    ```

    The `newpackage` executable will be available in your terminal.
  </Step>
  <Step title="Configure" icon="gear">
    Initialize configuration:

    ```bash
    newpackage configure --init
    ```

    <Info>
      Callouts and other components work inside steps.
    </Info>
  </Step>
  <Step title="Local development">
    Start your development server:

    ```bash
    newpackage dev --port 3000
    ```
  </Step>
</Steps>

Properties

Steps

childrenoptional

One or more <Step> elements. <Steps> renders a list element with a CSS counter reset so step numbers start at 1.

Standard <ul> attributes such as className are forwarded to the list element.

Step

titlestringoptional

An optional heading rendered as an <h3> above the step content. Use short, action-oriented titles such as Install dependencies or Deploy to production.

Omit title when the step body is self-explanatory or you only need the step number for context.


iconstringoptional

A Font Awesome icon slug that replaces the auto-incremented step number in the circle. Pass the slug without the fa- prefix, for example icon="gear" for a settings step.

When icon is set, the step number is hidden for that step only; other steps without an icon continue numbering in sequence.

Step without a title

title is optional. Use a titleless step when the content speaks for itself or when you want a lighter visual hierarchy.

  • Create a project

    bash
    npm create docs-page@latest my-docs
  • Open docs.json and add your first page to the sidebar array.

  • Preview locally

    bash
    npm run dev
mdx
<Steps>
  <Step title="Create a project">
    ```bash
    npm create docs-page@latest my-docs
    ```
  </Step>
  <Step>
    Open `docs.json` and add your first page to the `sidebar` array.
  </Step>
  <Step title="Preview locally">
    ```bash
    npm run dev
    ```
  </Step>
</Steps>

When to use steps

Use steps when…Consider alternatives when…
Readers must follow steps in orderContent is reference material with no sequence
A tutorial or setup guide has 3+ stagesOptions are parallel, not sequential; use Tabs
Each stage has its own code or calloutsDetail can stay hidden until needed; use Accordion

Behavior

ConditionResult
Empty <Steps> or no <Step> childrenRenders an empty list
title omitted on <Step>Renders the step number and body content only
icon set on <Step>Replaces the step number with the icon for that step
Mixed icon and numbered stepsNumbering continues for steps without an icon
Nested content inside <Step>Rendered in the step body

See also

  • Components overview: when to use steps, tabs, and accordions
  • Icon: finding Font Awesome slugs for the icon property