步骤条
Steps
UI 组件也叫:Stepper、进度步骤、流程条、分步指示器
一句话:用一排带编号的节点和连线,显示一个多步骤流程的全部步骤,以及用户当前做到了第几步。
详细解释
步骤条把一个较长的任务拆成几步,横向或纵向排出「1 填写信息 → 2 确认订单 → 3 完成支付」。已完成的步骤打勾,当前步骤高亮,未开始的步骤置灰,用户一眼就能看出总共几步、还剩多少。
它和标签页的关键区别是顺序:步骤条的各步有先后依赖,通常要完成当前步骤并通过校验才能进入下一步;标签页的各块内容互相独立,可以随意切换。它也不同于面包屑,面包屑表示页面在网站里的层级位置,不表示进度。
步骤以 3~5 步为宜。步骤条只负责展示进度,真正的「上一步」「下一步」按钮一般放在表单底部。
示例
灰度线框示意,只表达结构,不代表具体视觉风格。
怎么跟 AI 说
可以直接贴给 Cursor、Claude Code 等工具,把里面的业务内容换成你自己的。
在分步表单顶部放一个横向步骤条,共三步:「填写信息」「确认订单」「完成支付」。已完成的步骤显示对勾,当前步骤用深色实心圆和加粗文字,未开始的为灰色空心圆,步骤之间用细线连接。当前步骤校验通过后才能点「下一步」,已完成的步骤可点回去修改。
结构与适用场景
结构描述
由若干步骤节点(序号或图标、标题、可选说明)和节点之间的连接线组成,每个节点有已完成、进行中、未开始三种状态。
适用场景
- 注册、下单、开通服务这类有固定先后顺序的多步流程
- 一个表单内容太多、拆成 3~5 步分批填写,需要让用户知道还剩几步时
- 审批、物流这类需要展示当前处于哪个阶段的进度场景
不适用场景
- 几块内容互相独立、可以按任意顺序查看时,应该用标签页
- 表示页面在网站中的层级位置时,应该用面包屑
- 只有两步的简单流程,一个表单加一个确认对话框就够了
- 表示文件上传这类连续的百分比进度时,应该用进度条
常见坏用法
- 把互不相关的几块内容做成步骤条,用户被迫按顺序一步步点
- 步骤多达八九个,横向放不下,步骤名称全被挤成省略号
- 步骤条和实际表单不同步,已经到第三步了,第二步还没显示完成
识别特征
- 一排带数字或对勾的圆形节点,节点之间用横线连接
- 节点旁边或下方有简短的步骤名称
- 前面的节点实心或打勾,后面的节点是灰色空心
DOM 线索
插件本地识别时匹配的 CSS 选择器(标签、ARIA role、常见组件库 class)。
ol:has(> li[aria-current="step"]).ant-steps.el-steps[class*="MuiStepper-root"].arco-steps.t-steps.n-steps