骨架屏 · skeleton

加载态是移动端最高频的状态。形状不统一的加载态会让页面看起来"没做完"。

1 · 文本骨架(多行)

最后一行不带下边距(用 :last-child),列表尾部不会多一块空白。

2 · 块状骨架(图片/卡片占位)

3 · 列表骨架(最常用形态)

4 · 减少动态效果时

系统开启「减少动态效果」后,微光动画会停掉, 但骨架屏本身仍然显示 —— 用户依然知道正在加载。

反例 · 不该这样用

别把骨架屏当"灰条"用在一段很短的文字上(< 12px)。 短文字用骨架屏会读成"渲染坏了",而且屏幕阅读器会念出一堆空白。 短文案直接给 spinner 或干脆不给反馈。

对比:错写法 vs 本库写法

❌ 常见写法:有确切进度却用骨架屏

上传 素材包.zip(3.1 MB)

文件大小是已知的、进度是算得出来的,却只给一片灰条:用户等了 40 秒也不知道还差 3 秒还是 3 分钟。

✅ 本库:确定进度用 progress,不确定才用 skeleton

上传 素材包.zip(3.1 MB)

已传 1.9 MB / 3.1 MB

skeleton 的语义是"不知道要多久"。知道比例就用 progress —— 两者的区别不是好看,是诚实。