JGuang

步骤条

Steps · Ant Design

交互预览
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

步骤条

引导用户按照流程完成任务的导航条。

何时使用

当任务复杂或者存在先后关系时,将其分解成一系列步骤,从而简化任务。

代码演示

  • 基本用法 · simple

  • 步骤运行错误 · error

  • 竖直方向的步骤条 · vertical

  • 可点击 · clickable

  • 面板式步骤 · panel

  • 带图标的步骤条 · icon

  • 标签放置位置与进度 · title-placement

  • 限量展示 · max-count

  • 点状步骤条 · progress-dot

  • 导航步骤 · nav

  • 内联步骤 · inline

  • 内联样式组合 · inline-variant

  • 自定义语义结构的样式和类 · style-class

API

通用属性参考:通用属性

Steps

整体步骤条。

参数说明类型默认值版本全局配置
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-6.0.0
current指定当前步骤,从 0 开始记数。在子 Step 元素中,可以通过 status 属性覆盖状态number0×
direction指定步骤条方向。目前支持水平(horizontal)和竖直(vertical)两种方向stringhorizontal×
iconRender自定义渲染图标,请优先使用 items.icon(oriNode, info: { index, active, item }) => ReactNode-×
initial起始序号,从 0 开始记数number0×
labelPlacement指定标签放置位置,默认水平放图标右侧,可选 vertical 放图标下方stringhorizontal×
maxCount最大可见步骤项数量(>= 3)。超出数量的步骤区间会聚合成禁用的省略号步骤。number-×
orientation指定步骤条方向。目前支持水平(horizontal)和竖直(vertical)两种方向stringhorizontal×
percent当前 process 步骤显示的进度条进度(只对基本类型的 Steps 生效)number-4.5.0×
progressDot点状步骤条,可以设置为一个 function,请使用 type="dot" 替代。titlePlacement 将强制为 verticalboolean | (iconDot, { index, status, title, content }) => ReactNodefalse×
responsive当屏幕宽度小于 532px 时自动变为垂直模式booleantrue×
size指定大小,目前支持普通(medium)和迷你(small)stringmedium×
status指定当前步骤的状态,可选 wait process finish errorstringprocess×
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-6.0.0
titlePlacement指定标签放置位置,默认水平放图标右侧,可选 vertical 放图标下方stringhorizontal×
type步骤条类型,可选 default dot inline navigation panelstringdefault×
variant设置样式变体filled | outlinedfilled×
onChange点击切换步骤时触发(current) => void-×
items配置选项卡内容StepItem[]4.24.0×

StepItem

步骤条内的每一个步骤。

参数说明类型默认值版本
content步骤的详情描述,可选ReactNode-
description步骤的详情描述,可选ReactNode-
disabled禁用点击booleanfalse
icon步骤图标的类型,可选ReactNode-
status指定状态。当不配置该属性时,会使用 Steps 的 current 来自动指定状态。可选:wait process finish errorstringwait
subTitle子标题ReactNode-
title标题ReactNode-

Semantic DOM

Steps

语义节点原生说明版本
root根元素,包含 flex 布局、禁止换行、对齐方式、CSS 变量等步骤条容器的基础样式—
item步骤项元素,包含 flex 布局、相对定位等单个步骤项的基础容器样式—
itemWrapper步骤项内裹元素,包含 flex 布局、禁止换行、顶部内边距等步骤项内容的包装样式—
itemIcon步骤项图标元素,包含图标的尺寸、定位、字体大小等图标显示相关样式—
itemHeader步骤项头部元素,包含 flex 布局、禁止换行、对齐方式等头部区域的布局样式—
itemTitle步骤项标题元素,包含颜色、字体大小、行高、文字换行、过渡动画等标题文字样式—
itemSubtitle步骤项副标题元素,包含颜色、字体权重、字体大小、行高、外边距、文字换行等副标题样式—
itemSection步骤项区域元素,包含步骤项内容区域的布局和样式—
itemContent步骤项内容元素,包含颜色、字体大小、行高、文字换行、过渡动画等内容文字样式—
itemRail步骤项连接线元素,包含边框样式、边框宽度、过渡动画等连接线的样式—

语义说明来源: vendor/components/steps/demo/_semantic.tsx

StepItem

语义节点原生说明版本
root根元素—
wrapper步骤项内裹元素—
icon步骤项图标元素—
header步骤项头部元素—
title步骤项标题元素—
subtitle步骤项副标题元素—
section步骤项区域元素—
content步骤项内容元素—
rail步骤项连接线元素—

语义说明来源: vendor/components/steps/demo/_semantic_items.tsx

主题变量(Design Token)

类型、继承关系和原生令牌声明保持固定源码原文;默认值由原生主题计算,并可能受 ConfigProvider 覆盖。本表不伪造静态默认值。

令牌类型原生说明
descriptionMaxWidth?number描述区域最大宽度
customIconSizenumber自定义图标容器尺寸
customIconTopnumber自定义图标 top
customIconFontSizenumber自定义图标大小
iconSizenumber图标容器尺寸
iconTopnumber图标 top
iconFontSizenumber图标大小
dotSizenumber点状步骤点大小
dotCurrentSizenumber点状步骤点当前大小
navArrowColorstring可跳转步骤条箭头颜色
navContentMaxWidthCSSProperties['maxWidth']可跳转步骤条内容最大宽度
iconSizeSMnumber | string小号步骤条图标大小
titleLineHeightnumber | string标题行高

声明来源: vendor/components/steps/style/index.ts

import type { CSSProperties } from 'react';

import type { CSSObject } from '@ant-design/cssinjs';

import { genFocusOutline, resetComponent, textEllipsis } from '../../style';

import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal';

import { genStyleHooks, mergeToken } from '../../theme/internal';

import { genCssVar } from '../../theme/util/genStyleUtils';

import genHorizontalStyle from './horizontal';

import genIconStyle from './icon';

import genInlineStyle from './inline';

import genLabelPlacementStyle from './label-placement';

import genMaxCountStyle from './max-count';

import genLegacyNavStyle from './nav';

import genPanelStyle from './panel';

import genStepsProgressStyle from './progress';

import genDotStyle from './progress-dot';

import genRTLStyle from './rtl';

import genSmallStyle from './small';

import genStatusStyle from './status';

import genVerticalStyle from './vertical';

export interface ComponentToken {
  /**
   * @desc 描述区域最大宽度
   * @descEN Max width of description area
   * @deprecated This value has been removed by default since v6
   */
  descriptionMaxWidth?: number;
  /**
   * @desc 自定义图标容器尺寸
   * @descEN Size of custom icon container
   */
  customIconSize: number;
  /**
   * @desc 自定义图标 top
   * @descEN Top of custom icon
   */
  customIconTop: number;
  /**
   * @desc 自定义图标大小
   * @descEN Font size of custom icon
   */
  customIconFontSize: number;
  /**
   * @desc 图标容器尺寸
   * @descEN Size of icon container
   */
  iconSize: number;
  /**
   * @desc 图标 top
   * @descEN Top of icon
   */
  iconTop: number;
  /**
   * @desc 图标大小
   * @descEN Size of icon
   */
  iconFontSize: number;
  /**
   * @desc 点状步骤点大小
   * @descEN Size of dot
   */
  dotSize: number;
  /**
   * @desc 点状步骤点当前大小
   * @descEN Current size of dot
   */
  dotCurrentSize: number;
  /**
   * @desc 可跳转步骤条箭头颜色
   * @descEN Color of arrow in nav
   */
  navArrowColor: string;
  /**
   * @desc 可跳转步骤条内容最大宽度
   * @descEN Max width of nav content
   */
  navContentMaxWidth: CSSProperties['maxWidth'];
  /**
   * @desc 小号步骤条图标大小
   * @descEN Size of small steps icon
   */
  iconSizeSM: number | string;
  /**
   * TODO: deprecated warning since not used anymore
   * @desc 标题行高
   * @descEN Line height of title
   * @deprecated Not used anymore
   */
  titleLineHeight: number | string;
}

export interface StepsToken extends FullToken<'Steps'> {
  inlineDotSize: number;
}

原生通用属性

Tips: 以下通用属性适用于 antd 大部分组件,不支持的组件会单独说明。

参数说明类型默认值
style自定义样式CSSProperties-
className自定义类名string-
rootClassName添加在组件最外层的 classNamestring-
autoFocus自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效booleanfalse

安装并复现示例

npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。

原生类型参考

源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。

  • vendor/components/steps/PanelArrow.tsx
  • vendor/components/steps/ProgressIcon.tsx
  • vendor/components/steps/context.ts
  • vendor/components/steps/index.tsx
  • vendor/components/steps/style/index.ts
  • vendor/components/steps/useDisplaySteps.ts

来源与许可

https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd

保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。