R
交互控件StepPlayer分段进度播放控制flubber

步骤播放器

iOS 风格的分段进度轨道,带播放、暂停与重播控制。当前步骤会拉伸成一条正在填充的进度条。

上面的组件正在页面上实时运行,可以直接交互。

安装

在项目根目录执行下面的命令,组件源码会写入 @/components/ui/step-player.tsx。

npx shadcn@latest add swamimalode07/rare-ui/step-player

用法

组件默认导出(或具名导出)即可直接使用,不需要额外的 Provider。

step-player.tsx
import { StepPlayer } from "@/components/ui/step-player"
export function Demo() {
return (
<StepPlayer
steps={[
{ label: "解析需求" },
{ label: "生成代码" },
{ label: "运行测试" },
{ label: "部署上线" },
]}
duration={4}
loop
seekable
controlPosition="left"
/>
)
}

属性

下表列出了该组件公开的主要属性,所有未列出的原生属性都会透传到根元素。

属性类型默认值说明
stepsnumber | { duration?; label? }[]4步骤数量或步骤定义。
valuenumber—受控当前步骤。
onValueChange(value: number) => void—步骤变化回调。
playingboolean—受控播放状态。
defaultPlayingboolean—非受控初始播放状态。
durationnumber—每一步的时长(秒)。
loopboolean—播放结束后是否循环。
onComplete() => void—全部播完回调。
sizenumber—轨道高度。
showControlbooleantrue是否显示控制按钮。
controlPosition"left" | "right"—控制按钮位置。
seekablebooleantrue是否可点击跳转步骤。