@dt-dds/react-stepper

中文文档
1.0.0-beta.69发布于 2026/11/13MITTypeScriptESM + CJS近 30 天下载 2475

Steppers convey progress through numbered, bullet, or icon-based sequential steps.

原始使用文档
文档目录18 节
  1. Figma Reference
  2. Stepper Usage
  3. Variants
  4. Number Variant (Default)
  5. Bullet Variant
  6. Icon Variant
  7. Using the useStepper Hook
  8. useStepper Hook API
  9. Options
  10. useStepper Return Values
  11. Properties
  12. Stepper Props
  13. Step Props
  14. Stack
  15. Commands
  16. Compilation
  17. Versioning
  18. © License

Stepper

Steppers convey progress through numbered, bullet, or icon-based sequential steps.

They support various states including completed, incomplete, warning, error, and disabled.

Figma Reference

Figma

Stepper Usage

import { Stepper } from '@dt-dds/react-stepper';

export const App = () => {
  return (
    <Stepper>
      <Stepper.Step
        title='Completed Step'
        description='This step is done'
        state='completed'
      />
      <Stepper.Step
        title='Current Step'
        description='Working on this'
        state='incomplete'
        isActive={true}
      />
      <Stepper.Step
        title='Warning Step'
        description='Needs attention'
        state='warning'
      />
      <Stepper.Step
        title='Error Step'
        description='Something went wrong'
        state='error'
      />
      <Stepper.Step
        title='Disabled Step'
        description='Not available yet'
        state='disabled'
      />
    </Stepper>
  );
};

Variants

Number Variant (Default)

<Stepper variant='number'>
  <Stepper.Step title='Step 1' />
  <Stepper.Step title='Step 2' />
  <Stepper.Step title='Step 3' />
</Stepper>

Bullet Variant

<Stepper variant='bullet'>
  <Stepper.Step title='Step 1' />
  <Stepper.Step title='Step 2' />
  <Stepper.Step title='Step 3' />
</Stepper>

Icon Variant

import { Icon } from '@dt-dds/react-icon';

<Stepper variant='icon'>
  <Stepper.Step title='Upload' icon={<Icon code='upload' size='small' />} />
  <Stepper.Step title='Process' icon={<Icon code='settings' size='small' />} />
  <Stepper.Step
    title='Complete'
    icon={<Icon code='check_circle' size='small' />}
  />
</Stepper>;

Using the useStepper Hook

The useStepper hook provides a complete state management solution for steppers, including navigation, completion tracking, and boundary checks.

import { useStepper } from '@dt-dds/react-stepper';

export const ControlledStepper = () => {
  const { activeStep, handleNext, handleBack, canGoNext, canGoBack } =
    useStepper({
      initialStep: 0,
      totalSteps: 3,
    });

  return (
    <>
      <Stepper activeStep={activeStep}>
        <Stepper.Step title='Step 1' description='First step' />
        <Stepper.Step title='Step 2' description='Second step' />
        <Stepper.Step title='Step 3' description='Third step' />
      </Stepper>

      <button onClick={handleBack} disabled={!canGoBack}>
        Back
      </button>
      <button onClick={handleNext} disabled={!canGoNext}>
        Next
      </button>
    </>
  );
};

useStepper Hook API

Options

OptionTypeDefaultDescription
initialStepnumber0The initial active step (0-based)
totalStepsnumber—Total number of steps (for boundary checks)

useStepper Return Values

PropertyTypeDescription
activeStepnumberCurrent active step index
isFirstStepbooleanWhether currently on the first step
isLastStepbooleanWhether currently on the last step
canGoNextbooleanWhether navigation to the next step is allowed
canGoBackbooleanWhether navigation to the previous step is allowed
completedStepsSet<number>Set of completed step indices
handleNext() => voidNavigate to the next step
handleBack() => voidNavigate to the previous step
handleChangeStep(step: number) => voidNavigate to a specific step
handleReset() => voidReset to initial step and clear completed steps
markStepComplete(step: number) => voidMark a specific step as completed
markStepIncomplete(step: number) => voidMark a specific step as incomplete
isStepComplete(step: number) => booleanCheck if a specific step is completed

Properties

Stepper Props

PropertyTypeDefaultDescription
childrenReactNode—Step components to be rendered
orientation"vertical" | "horizontal"verticalDirection of the stepper
variant"number" | "bullet" | "icon"numberVisual style of step indicators
activeStepnumber—Index of the active step (0-based)
dataTestIdstringstepperTest identifier for the stepper container

Step Props

PropertyTypeDefaultDescription
titlestring—Title text for the step
descriptionstring—Description text for the step
state"completed" | "warning" | "error" | "disabled" | "incomplete"incompleteVisual state of the step
isActivebooleanfalseWhether the step is currently active
iconReactNode—Custom icon for the icon variant
dataTestIdstringstep-{index}Test identifier for the step

Stack

  • TypeScript for static type checking
  • React — JavaScript library for user interfaces
  • Emotion — for writing css styles with JavaScript
  • Storybook — UI component environment powered by Vite
  • Jest - JavaScript Testing Framework
  • React Testing Library - to test UI components in a user-centric way
  • ESLint for code linting
  • Prettier for code formatting
  • Tsup — TypeScript bundler powered by esbuild
  • Yarn from managing packages

Commands

  • yarn build - Build the package
  • yarn dev - Run the package locally
  • yarn lint - Lint all files within this package
  • yarn test - Run all unit tests
  • yarn test:report - Open the test coverage report
  • yarn test:update:snapshot - Run all unit tests and update the snapshot

Compilation

Running yarn build from the root of the package will use tsup to compile the raw TypeScript and React code to plain JavaScript.

The /dist folder contains the compiled output.

stepper
└── dist
    ├── index.d.ts  <-- Types
    ├── index.js    <-- CommonJS version
    └── index.mjs   <-- ES Modules version
    ...

Versioning

Follows semantic versioning

© License

Licensed under MIT License

版本与发布记录

@dt-dds/react-stepper 共发布 39 个版本,首次发布于 2025/08/07;过去 12 个月发布了 29 个版本。

版本发布日期距今
1.0.0-beta.69latest2026/11/13今天
1.0.0-beta.682026/11/049 天前
1.0.0-beta.672026/10/2816 天前
1.0.0-beta.662026/10/2321 天前
1.0.0-beta.652026/10/1925 天前
1.0.0-beta.642026/10/1628 天前

关于 @dt-dds/react-stepper 的常见问题

@dt-dds/react-stepper 是什么?

Steppers convey progress through numbered, bullet, or icon-based sequential steps.

如何安装 @dt-dds/react-stepper?

在项目目录运行 npm install @dt-dds/react-stepper,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=17.0.2)、react-dom(>=17.0.2)、@emotion/css(^11.7.1)、@emotion/react(^11.8.2)、@emotion/styled(^11.8.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@dt-dds/react-stepper 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dt-dds/react-stepper 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dt-dds/react-stepper 可以商用吗?

@dt-dds/react-stepper 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@dt-dds/react-stepper 的下载量有多少?

根据 npm 官方下载统计,@dt-dds/react-stepper 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,475 次,日均约 83 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dt-dds/react-stepper 还在维护吗?

最新版本 1.0.0-beta.69 发布于 2026/11/13(今天);至今共发布 39 个版本,其中过去 12 个月发布了 29 个;首次发布于 2025/08/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。