VOCABULARY / 词条
骨架屏
Skeleton Screen
内容加载完成前,用与预期内容结构相近的占位形状表示正在加载。
可操作示例 · 虚构产品 FIELDNOTES
载入手记
准备载入内容。
先开始加载,再选择模拟完成或失败。等待由你控制。
识别特征
- 接近最终内容结构
- 占位而非假数据
- 加载完成后替换
概念边界
占位形状不提供完成百分比,也不能把未获取的数据伪装成真实内容。
什么时候考虑它
- 内容结构已知,但完成比例不可用
- 需要为即将出现的内容保留空间
什么时候慎用
- 最终内容结构完全不确定
- 已经失败却继续无限展示加载占位
取舍
可以预示结构,但需要超时、错误和重试出口。
条件规则 · 编辑建议
当启用减少动态效果必须使用静态占位,继续提供文字加载状态。
当加载失败必须停止加载状态,提供原因和重试。
查询前提:known_structure = true
需要知道即将加载的内容结构,才能有意义地占位。
相关词条
确定进度条 ↗条件替代 · 选择等待反馈方式
以是否有真实完成量与内容结构判断。
平静技术 ↗可以配合 · 采用静态占位
状态可见而不持续争夺注意力。
来源与支持范围
定义参考以上来源;数字界面示例、选择建议、条件关系及配方由本样例编辑,尚未经用户研究验证。
类型扩展与实现说明
能力标签只描述本演示;应用到产品时仍须重新验证。
{
"states": [
"idle",
"loading",
"success",
"error"
],
"a11y": [
"占位装饰对读屏隐藏",
"容器提供 busy 状态和文字消息"
],
"motion": "默认静态占位"
}完整 Agent 条目 JSON
{
"id": "skeleton",
"type": "micro",
"name": {
"zh": "骨架屏",
"en": "Skeleton Screen"
},
"aliases": [
"Skeleton Loading",
"加载占位",
"骨架加载"
],
"granularity": "state",
"intents": [
"wait-for-content"
],
"tags": [
"加载",
"未知进度",
"占位",
"异步",
"loading"
],
"definition": "内容加载完成前,用与预期内容结构相近的占位形状表示正在加载。",
"boundary": "占位形状不提供完成百分比,也不能把未获取的数据伪装成真实内容。",
"signature": [
"接近最终内容结构",
"占位而非假数据",
"加载完成后替换"
],
"when": [
"内容结构已知,但完成比例不可用",
"需要为即将出现的内容保留空间"
],
"when_not": [
"最终内容结构完全不确定",
"已经失败却继续无限展示加载占位"
],
"tradeoff": "可以预示结构,但需要超时、错误和重试出口。",
"comparison": {
"focus": "告诉用户内容正在到来",
"mechanism": "结构占位",
"cost": "不表达完成比例"
},
"sources": [
{
"id": "carbon-loading",
"title": "Carbon · Loading patterns",
"url": "https://carbondesignsystem.com/patterns/loading-pattern/",
"claim": "骨架是初始加载时尚未完成内容的简化组件形状。",
"checkedAt": "2026-09-15",
"archive": {
"lookupUrl": "https://web.archive.org/web/20260915*/https://carbondesignsystem.com/patterns/loading-pattern/",
"status": "available",
"checkedAt": "2026-09-15T16:50:44.269Z",
"jobId": "spn2-3b0dc711f48ca28755724206ac848b795d3b387d",
"url": "https://web.archive.org/web/20260915165155/https://carbondesignsystem.com/patterns/loading-pattern/",
"timestamp": "20260915165155"
}
}
],
"relations": [
{
"target": "determinate-progress",
"kind": "alternative",
"condition": "选择等待反馈方式",
"reason": "以是否有真实完成量与内容结构判断。",
"basis": "editorial"
},
{
"target": "calm-technology",
"kind": "composes_with",
"condition": "采用静态占位",
"reason": "状态可见而不持续争夺注意力。",
"basis": "editorial"
}
],
"rules": [
{
"when": "启用减少动态效果",
"instruction": "使用静态占位,继续提供文字加载状态。",
"strength": "must",
"basis": "editorial"
},
{
"when": "加载失败",
"instruction": "停止加载状态,提供原因和重试。",
"strength": "must",
"basis": "editorial"
}
],
"requirements": [
{
"fact": "known_structure",
"value": true,
"reason": "需要知道即将加载的内容结构,才能有意义地占位。"
}
],
"behavior": {
"states": [
"idle",
"loading",
"success",
"error"
],
"a11y": [
"占位装饰对读屏隐藏",
"容器提供 busy 状态和文字消息"
],
"motion": "默认静态占位"
},
"demo": "skeleton",
"version": "0.1.0",
"editorialStatus": "sample-reviewed",
"demoCapabilities": [
"keyboard",
"reduced_motion"
],
"implementationNote": "能力标签只描述本演示;应用到产品时仍须重新验证。",
"searchTerms": [
"loading",
"unknown progress",
"placeholder",
"asynchronous",
"loading"
]
}