JGuang

进度条

Progress · Ant Design

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

进度条

展示操作的当前进度。

何时使用

在操作需要较长时间才能完成时,为用户显示该操作的当前进度和状态。

  • 当一个操作会打断当前界面,或者需要在后台运行,且耗时可能超过 2 秒时;
  • 当需要显示一个操作完成的百分比时。

代码演示

  • 进度条 · line
  • 进度圈 · circle
  • 小型进度条 · line-mini
  • 响应式进度圈 · circle-micro
  • 小型进度圈 · circle-mini
  • 动态展示 · dynamic
  • 自定义文字格式 · format
  • 仪表盘 · dashboard
  • 分段进度条 · segment
  • 边缘形状 · linecap
  • 自定义进度条渐变色 · gradient-line
  • 步骤进度条 · steps
  • 步骤进度圈 · circle-steps
  • 尺寸 · size
  • 改变进度数值位置 · info-position
  • 自定义语义结构的样式和类 · style-class

API

通用属性参考:通用属性

各类型共用的属性。

属性说明类型默认值版本全局配置
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-6.0.06.0.0
format内容的模板函数function(percent, successPercent)(percent) => percent + %-×
percent百分比number0-×
railColor未完成的分段的颜色string--×
showInfo是否显示进度数值或状态图标booleantrue-×
status状态,可选:success exception normal active(仅限 line)string--×
strokeColor进度条的色彩string--×
strokeLinecap进度条的样式round | butt | square,区别详见 stroke-linecapround-×
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-6.0.06.0.0
success成功进度条相关配置{ percent: number, strokeColor: string }--×
trailColor未完成的分段的颜色。已废弃,请使用 railColorstring--×
type类型,可选 line circle dashboardstringline-×
size进度条的尺寸number | [number | string, number] | { width: number, height: number } | "small" | "medium""medium"5.3.0, Object: 5.18.0×

type="line"

属性说明类型默认值版本
steps进度条总共步数number--
rounding用于四舍五入数值的函数(step: number) => numberMath.round5.24.0
strokeColor进度条的色彩,传入 object 时为渐变。当有 steps 时支持传入一个数组。string | string[] | { from: string; to: string; direction: string }-4.21.0: string[]
percentPosition进度数值位置,传入对象,align 表示数值的水平位置,type 表示数值在进度条内部还是外部{ align: string; type: string }{ align: "end", type: "outer" }5.18.0

type="circle"

属性说明类型默认值版本
steps进度条总共步数,传入 object 时,count 指步数,gap 指间隔大小。传 number 类型时,gap 默认为 2。number | { count: number, gap: number }-5.16.0
strokeColor圆形进度条线的色彩,传入 object 时为渐变string | { number%: string }--
strokeWidth圆形进度条线的宽度,单位是进度条画布宽度的百分比number6-

type="dashboard"

属性说明类型默认值版本
steps进度条总共步数,传入 object 时,count 指步数,gap 指间隔大小。传 number 类型时,gap 默认为 2。number | { count: number, gap: number }-5.16.0
gapDegree仪表盘进度条缺口角度,可取值 0 ~ 295number75-
gapPlacement仪表盘进度条缺口位置top | bottom | start | endbottom-
gapPosition仪表盘进度条缺口位置,请使用 gapPlacement 替换top | bottom | left | rightbottom-
strokeWidth仪表盘进度条线的宽度,单位是进度条画布宽度的百分比number6-

Semantic DOM

语义节点原生说明版本
root根元素,设置相对定位和基础容器样式—
body主体元素,设置进度条的布局和尺寸样式—
rail导轨元素,设置背景轨道的颜色和圆角样式,steps 模式下没有该元素—
track轨迹元素,设置进度填充部分的颜色和过渡动画样式—
indicator指示器元素,设置百分比文本或图标的位置和字体样式—

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

主题变量(Design Token)

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

令牌类型原生说明
defaultColorstring进度条默认颜色
remainingColorstring进度条剩余部分颜色
circleTextColorstring圆形进度条文字颜色
lineBorderRadiusnumber条状进度条圆角
circleTextFontSizestring圆形进度条文本大小
circleIconFontSizestring圆形进度条图标大小

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

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

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

import { resetComponent } from '../../style';

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

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

export interface ComponentToken {
  /**
   * @desc 进度条默认颜色
   * @descEN Default color of progress bar
   */
  defaultColor: string;
  /**
   * @desc 进度条剩余部分颜色
   * @descEN Color of remaining part of progress bar
   */
  remainingColor: string;
  /**
   * @desc 圆形进度条文字颜色
   * @descEN Text color of circular progress bar
   */
  circleTextColor: string;
  /**
   * @desc 条状进度条圆角
   * @descEN Border radius of line progress bar
   */
  lineBorderRadius: number;
  /**
   * @desc 圆形进度条文本大小
   * @descEN Text size of circular progress bar
   */
  circleTextFontSize: string;
  /**
   * @desc 圆形进度条图标大小
   * @descEN Icon size of circular progress bar
   */
  circleIconFontSize: string;
}

/**
 * @desc Progress 组件的 Token
 * @descEN Token for Progress component
 */
interface ProgressToken extends FullToken<'Progress'> {
  /**
   * @desc 进度步骤最小宽度
   * @descEN Minimum width of progress step
   */
  progressStepMinWidth: number | string;
  /**
   * @desc 进度步骤右间距
   * @descEN Right margin of progress step
   */
  progressStepMarginInlineEnd: number | string;
  /**
   * @desc 进度条动画持续时间
   * @descEN Duration of progress bar animation
   */
  progressActiveMotionDuration: string;
}

原生通用属性

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/progress/Circle.tsx
  • vendor/components/progress/Line.tsx
  • vendor/components/progress/Steps.tsx
  • vendor/components/progress/progress.tsx
  • vendor/components/progress/style/index.ts

来源与许可

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

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