Steps

步骤条,引导用户按流程完成任务。组合式 API(<Steps><Steps.Step/></Steps>),严格对齐 Semi Design:支持横向/纵向、fill/basic/nav 三型、迷你尺寸、每步独立图标/状态、连接线开关(hasLine)与 onChange 切换。

设计文档

如何引入

import { Steps } from '@chenzy-design/svelte';

默认步骤条(fill)

fill 为块状步骤条(默认类型),process 态整块背景高亮。

简单步骤条(basic)

设置 type="basic" 显示为简洁风格步骤条。

导航步骤条(nav)

设置 type="nav" 显示为导航风格步骤条,不支持交互,宽度按内容撑开。

迷你尺寸

设置 size="small" 显示迷你尺寸步骤条(basic/nav 型生效)。

basic 迷你尺寸(size="small"):
  1. 已完成
    这是一段描述
    步骤 1,共 1 步,已完成
  2. 进行中
    这是一段描述
    步骤 1,共 1 步,已完成
  3. 等待中
    这是一段描述
    步骤 1,共 1 步,已完成
nav 迷你尺寸:

处理进度

配合内容及按钮使用,表示一个流程的处理进度。

  1. First
    步骤 1,共 1 步,进行中
  2. Second
    步骤 1,共 1 步,进行中
  3. Last
    步骤 1,共 1 步,进行中
First-content

竖直方向

设置 direction="vertical" 使用竖直方向的步骤条。

fill 竖直方向:
basic 竖直方向:

指定步骤状态

使用 status 属性指定当前步骤的状态(如 error)。

自定义图标/状态

通过每步 status 自定义状态、icon 自定义图标(字符串或 Snippet)。

onChange 回调

onChange 接收 number 参数(等于 initial + index),用于实现处理进度。

点击任意步切换。onChange 参数 = initial + index,当前:1

起始序号 initial

通过 initial 设置起始序号偏移,onChange 参数等于 initial + index。

initial=2:起始序号从 3 开始记数,onChange 参数 = initial + index。

每步自定义 class/style

每步支持 class / style / ariaLabel,对齐 Semi Steps.Step 的 className/style/aria-label。

每步支持 class / style / ariaLabel(对齐 Semi Steps.Step 的 className/style/aria-label)。
  1. 已完成
    这是一段描述
    步骤 1,共 1 步,已完成
  2. 进行中
    这是一段描述
    步骤 1,共 1 步,已完成
  3. 等待中
    这是一段描述
    步骤 1,共 1 步,已完成

API 参考

Steps

Props

属性说明类型默认值
current受控当前步(从 0 计数)numberundefined
defaultCurrent非受控初始当前步number0
direction步骤条方向'horizontal'|'vertical'horizontal
typefill 为块状(旧版默认)、basic 为简洁型、nav 为导航型(不可交互)'fill'|'basic'|'nav'fill
status当前步状态'wait'|'process'|'finish'|'error'|'warning'process
size尺寸(basic/nav 型生效)'small'|'default'default
initial起始序号偏移number0
hasLinebasic 型是否显示连接线(对齐 Semi hasLine)booleantrue
onChange切换步骤回调(参数为 initial + index);传入时 fill/basic 型步骤可点击(current: number) => voidundefined
classstring''
style容器内联样式(对齐 Semi style)stringundefined
ariaLabel容器 aria-label(对齐 Semi aria-label)stringundefined
children内嵌 <Steps.Step> 列表Snippetundefined

Accessibility

ARIA rolelist
键盘交互TabArrowLeftArrowRightArrowUpArrowDownHomeEndEnterSpace
  • ol/li 结构
  • 可点击(fill/basic + onChange)时每步为原生 button,roving tabindex 单 Tab 停靠点
  • 当前步 aria-current=step
  • 图标 ✓/✕/⚠ 用 aria-hidden;状态靠视觉隐藏文本(.cd-sr-only)与 aria-current 表达(WCAG 1.4.1)
  • 连接线 aria-hidden=true;nav 型外包 nav[aria-label]

设计变量

变量默认值用法
--cd-color-steps-bg-active var(--cd-color-fill-1)步骤条背景 - 按下态
--cd-color-steps-bg-default var(--cd-color-text-2)未到达步骤条图标背景(fill 型 wait 态左侧图标底)
--cd-color-steps-bg-hover var(--cd-color-fill-0)步骤条背景 - 悬浮态
--cd-color-steps-border-default transparent步骤条描边 - 默认(fill 型 item 外框)
--cd-color-steps-danger-text-active var(--cd-color-danger-active)错误步骤条文本颜色 - 按下态
--cd-color-steps-danger-text-default var(--cd-color-danger)错误步骤条文本颜色 - 默认态
--cd-color-steps-danger-text-hover var(--cd-color-danger-hover)错误步骤条文本颜色 - 悬浮态
--cd-color-steps-icon-after-bg var(--cd-color-fill-2)basic 垂直型图标下方连接线颜色(wait 段)
--cd-color-steps-icon-default var(--cd-color-text-2)未到达步骤条图标颜色(fill 型 wait 态图标)
--cd-color-steps-item-description-text-hover var(--cd-color-focus-border)步骤条辅助描述文本颜色 - 悬浮态