---
id: "progress"
title: "进度条与骨架屏"
category: "反馈组件"
document_type: "component-specification"
spec_status: "local-current-draft"
element_ui: "2.15.6"
vue: "2.6.14"
page: "../index.html#spec-progress"
source_data: "../component-data.json"
official_components: ["progress", "skeleton", "skeleton-item"]
template_components: ["el-progress"]
scenario_count: 6
verification: "scenario-checklist-not-full-test-pass"
---

# 进度条与骨架屏

专题 `progress` · 反馈组件 · Element UI 2.15.6

## 适用范围与组件映射

公共色板及字体基线适用于整个运营后台。本库整理基础组件、组件状态和可复用的组合模式；本轮补齐表单整体验证、页面布局和导航组合；具体业务字段与跨页流程仍在业务场景中说明。专题验收清单包含接入要求，不表示当前示例已实现或已验证全部场景。

官方条目映射：`progress`、`skeleton`、`skeleton-item`。

本页模板直接使用的 Element UI 标签：`el-progress`。

## 通用基线

- 组件库：Element UI **2.15.6**；运行样例 Vue **2.6.14**。
- 系统中文字体：macOS 优先苹方，Windows 通常微软雅黑；工程顺序固定为 `"PingFang SC", "Microsoft YaHei", sans-serif`。不要求安装或加载网络字体，兼容回退不是另一套可选样式。
- 后续仅采用经验证且固定版本的兼容 Element UI 2.x；Element Plus 属于独立迁移路线。
- 正文、数据值、输入及已选值：`14px / 400 / 21px`，`#303133`。
- 表头及组件分组标题：`14px / 600 / 21px`；弹窗标题：`16px / 600 / 24px`，均使用 `#303133`。
- 辅助说明：`12px / 400 / 18px`，`#595959`；错误、链接、状态、禁用与占位按各自语义处理。
- 适用组件的默认尺寸为 `small / 32px`；不得将这一高度机械应用于表格、文本域、浮层等全部组件。
- 规范正文与场景说明使用 `14px / 400 / 24px`、`#303133`，不降成灰蓝小字。
- 筛选文本输入占位统一“请输入”；未选择下拉统一“请选择”；默认全部的下拉显示“全部”。字段标签保留业务含义；日期保留开始/结束语义。
- 次级文字操作（查看更多、编辑、详情、数据中心、更多）：`12px / 400 / 18px`，`#3377BB`；保留点击热区。
- 本规范库的深色目录、蓝色展示区属于文档排版，不是业务组件颜色或业务导航规范。

## 本页用法与分类

默认用法：有真实可测量进度时使用带名称和数值的进度条；仅等待内容到达时使用结构骨架或不确定加载反馈。

| 区分什么 | 本页内容 | 选用或触发条件 |
| --- | --- | --- |
| 反馈用途 | 进度条表达任务完成程度，骨架屏占住即将到达的内容结构。 | 能够计算真实比例才显示百分比；只知道正在等待时使用骨架或不确定加载，不编造数值。 |
| 自动结果 | 进行中、完成、失败、暂停由任务结果决定。 | 本页60%和失败50%是固定对照；实际失败时停止递增，真实完成后才显示完成语义。 |
| 占位结构 | 骨架的标题、字段和行数应匹配将要展示的内容。 | 根据实际区域安排占位，内容到达后在同一区域替换；本页按钮只模拟骨架和内容切换。 |
| 动效设置 | 轻微动效是装饰配置，不代表加载速度或成功概率。 | 只有需要时开启，系统减少动态效果时保持静态；两种方式传达相同等待状态。 |
| 进度外观 | 线形、环形、仪表盘显示同一类可测进度。 | 默认线形；独立概览可环形；仅有明确弧形刻度语义才采用仪表盘。固定数值只供对照。 |

使用边界：不把正常进度、失败进度、骨架屏和加载完成作为任意挑选的皮肤；也不把演示比例当真实业务进度。

## 组件规则

- **PROGRESS-R01**：只有可测量进度才显示百分比；未知进度使用不确定 加载中，不生成假百分比。
- **PROGRESS-R02**：进度需包含名称、范围和当前值；失败不继续递增。骨架屏 只模拟结构，不展示虚假数据。
- **PROGRESS-R03**：这里定义基础视觉，不纳入任务中心、批处理或业务导出进度流程。动画遵循系统“减少动态效果”偏好。
- **PROGRESS-R04**：【公共用色】颜色仅从公共色值 引用：主色系 3 个基础色值、辅助功能色 3 个、中性色 10 个，共 16 个基础色值。角色可以多个，实际色值复用；不为每个组件、悬停 或不同字段再新增近似颜色。透明效果仅限遮罩 35% 与阴影 12%，从 外壳深色 派生。
- **PROGRESS-R05**：【统一字体】统一系统中文字体：macOS 优先苹方（PingFang SC），Windows 通常使用微软雅黑（Microsoft YaHei）；工程顺序固定为 "PingFang SC", "Microsoft YaHei", sans-serif。使用设备已有字体，不要求安装或加载网络字体；最后一项仅作兼容回退，不是供页面作者任选的另一套样式。正文 14px/400/21px；表头与分组标题 14px/600/21px，弹窗标题 16px/600/24px；次级文字操作和辅助说明 12px/400/18px。正文与标题同用 #303133；不通过额外加粗或透明度改变正文轻重。
- **PROGRESS-R06**：【叠加优先级】状态叠加规则：禁用阻断交互；输入类控件错误边框覆盖蓝色聚焦边框；输入框不叠加外圈或阴影，其他无边框操作保留键盘焦点提示；选中底覆盖悬停底；只读不等于禁用；加载不等于成功；业务启用/停用的文字结果不等于控件是否可点击。
- **PROGRESS-R07**：【进行中】进度轨道分隔灰、已完成部分主题蓝；条外与环形中心数值14px/400正文深灰。条内文字是反白例外，20px高轨道内使用12px/400白字；空间不足时采用条外数值，不挤小字号。一般进行中不用警告橙。
- **PROGRESS-R08**：【完成与异常】真实完成使用成功绿，失败使用错误红，确有警告才使用警告橙，均配明确状态文案。
- **PROGRESS-R09**：【骨架占位】骨架使用边框灰 #DCDFE6，只在内容等待时展示；真实内容到达后替换，不给骨架加选中或焦点状态。
- **PROGRESS-R10**：【暂停与未知进度】暂停或无法确定百分比时使用明确说明，数值保持正文深灰；不把未知值显示成已完成。
- **PROGRESS-R11**：【组件边界】进度条和骨架屏是被动反馈，没有可拖动手柄、键盘调值、半选或输入禁用轨道；这些属于滑块组件。
- **PROGRESS-R12**：骨架屏使用标题、字段和列表行的结构占位，白底上使用已有边框灰 #DCDFE6，不能只画难以辨认的一条浅线。占位不放虚假值、不接受焦点；完成后在同一区域替换，失败时退出为失败提示和重试入口。
- **PROGRESS-R13**：当前示例提供带名称的固定进度对照、结构骨架与加载完成内容切换、可选轻微动效。真实请求的超时、重试和进度来源由宿主接入。
- **PROGRESS-R14**：进度外观包含线形、环形和仪表盘；默认使用线形，独立进度概览可采用环形，弧形刻度语义明确时才采用仪表盘。三者都要求可测进度；本页固定数值仅作对照。
- **PROGRESS-R15**：文字内置、0%和100%为显示配置及数值边界；100%只有真实任务结束时才与成功结果关联。样例固定百分比不代表实际处理。

## 场景与验收清单

以下为需核对的场景组；`[ ]` 不代表已经测试通过。

- [ ] **PROGRESS-S01**：当前示例：固定60%用于说明可测量进度，失败50%用于说明任务中断。两者是状态对照，不是可选视觉样式，实际数值和结果必须来自真实任务。
- [ ] **PROGRESS-S02**：当前示例的切换入口仅模拟骨架与已加载内容；真实页面在等待时显示骨架、数据到达后自动替换。标题、字段和列表行应对应实际结构，骨架不接受焦点。
- [ ] **PROGRESS-S03**：当前示例：开启轻微动效；系统减少动态偏好下保持静态。
- [ ] **PROGRESS-S04**：宿主接入：真实加载完成替换内容；超时与失败退出为重试提示；不要用骨架掩盖接口错误。
- [ ] **PROGRESS-S05**：宿主接入：避免短请求闪烁；按真实内容尺寸占位，控制布局跳动；未知进度不显示假百分比。
- [ ] **PROGRESS-S06**：核对线形、环形、仪表盘、0%/100%边界及条内外文字；静态对照不伪报业务执行。

### 专题验收重点

核对骨架标题、字段、列表行清晰可辨；切换加载完成后占位消失；轻微动效可选，减少动态偏好下停用动画。确定进度与未知等待分开表达。

## 当前示例模板

以下来自本专题的结构化示例，使用 Vue 2 模板语法。`v-model`、事件方法、数据列表等依赖 [components.js](../components.js)；完整样式文件及加载顺序见 [通用基线](FOUNDATIONS.md)。自定义组合标签的内部实现由下方依赖文件提供，不能仅复制标签作为完整组件。

```html
<section class="specimen-block">
<div class="specimen-heading">
<h4>可测量进度</h4>
<span>有真实进度时使用</span>
</div>
<div class="specimen-stage">
<p>正在处理 · 60%</p>
<el-progress aria-label="示例处理进度" :percentage="60">
</el-progress>
<p>处理失败 · 停止在 50%</p>
<el-progress aria-label="失败进度示例" :percentage="50" status="exception">
</el-progress>
</div>
</section>
<section class="specimen-block">
<div class="specimen-heading">
<h4>内容加载占位 · 骨架屏</h4>
<span>结构先占位，内容到达后替换</span>
</div>
<div class="specimen-stage">
<skeleton-pattern>
</skeleton-pattern>
</div>
</section>
<official-progress-types>
</official-progress-types>
```

## 交付与使用边界

- 规范条款、示例代码与待验收场景分开理解；有示例不等于已覆盖所有样式、交互状态和使用场景。
- 业务接口、权限、时区、金额精度、数据规模等依赖应从实际项目读取，不使用演示值代替生产约定。
- 发生样式或文案变更时，同步专题数据、页面与 Markdown，避免规范和样例分离。

## 来源与关联

- 来源线索：本次补充。
- [打开本专题页面](../index.html#spec-progress)
- [通用基线](FOUNDATIONS.md)
- [规范总索引](README.md)
- [结构化规范数据](../component-data.json)（记录 id：`progress`）
- [原始历史样板](../original-20260621.html)
- [历史规范条目](../spec-notes.json)

自定义示例 `skeleton-pattern` 的实现：[feedback-patterns.js](../feedback-patterns.js)。

自定义示例 `official-progress-types` 的实现：[official-types.js](../official-types.js)。

## 本组件颜色状态表

| 状态 / 条件 | 统一规则 |
| --- | --- |
| 进行中 | 进度轨道分隔灰、已完成部分主题蓝；条外与环形中心数值14px/400正文深灰。条内文字是反白例外，20px高轨道内使用12px/400白字；空间不足时采用条外数值，不挤小字号。一般进行中不用警告橙。 |
| 完成与异常 | 真实完成使用成功绿，失败使用错误红，确有警告才使用警告橙，均配明确状态文案。 |
| 骨架占位 | 骨架块使用边框灰 #DCDFE6，容器白底，细分隔使用分隔灰 #EBEEF5；轻微动效仅在这两个中性色间变化，减少动态时停用。等待时展示，内容到达后替换。 |
| 暂停与未知进度 | 暂停或无法确定百分比时使用明确说明，数值保持正文深灰；不把未知值显示成已完成。 |

进度条和骨架屏是被动反馈，没有可拖动手柄、键盘调值、半选或输入禁用轨道；这些属于滑块组件。

[公共颜色与字体 token](../color-tokens.json) · [公共组件样式](../color-contract.css) · [系统字体合同（最后加载）](../font-contract.css)

## 业务落地场景

- [广告管理 · 选择图片 · 本地读取进度](../../showcase/index.html?example=upload-progress#adverts) · [场景文档](../../showcase/docs/adverts.md)；落地范围：仅覆盖 FileReader 本地图片读取进度，不是服务端上传，也没有业务骨架屏。

[竞品组件拆解](../../reference-review/竞品组件反推规范.html) · [业务场景分类](../../业务场景分类清单.md)
