Artefact UI

Search

博客

文档

关于

演练场

编辑

菜单Chevron Down

博客

文档

关于

演练场

编辑

Skeleton 骨架屏 - Docs - Artefact

Skeleton 骨架屏

Feedback
展示型

Introduction

Skeleton 组件是一个高性能占位元素,用于指示内容当前正在加载。通过渲染模拟布局的几何占位符,它能在远程数据加载时防止内容突然跳动(CLS)。

该组件支持通过视觉配置直接呈现不同的几何形态(包括文本列、方形块和圆形头像),以及响应式动画循环(如发光或脉冲过渡)。


Usage

你可以像下面这样为卡片、个人资料和列表构建模拟状态:

1. 多行文本块占位符

在等待文章文本加载时模拟段落或描述字段。这会渲染多个堆叠列,并自动呈现微妙的脉冲循环。

{
  "type": "skeleton",
  "shape": "text",
  "noOfLines": 3,
  "variant": "pulse"
}

2. 头像圆形占位符

渲染与资料图片或用户头像图标匹配的圆形。可与文本骨架组合以模拟用户头部。

{
  "type": "skeleton",
  "shape": "circle",
  "variant": "pulse"
}

3. 高光矩形容器(卡片模拟)

具有矩形盒容器与高光对角线微光反射动画,非常适合媒体卡片或横幅模拟。

{
  "type": "skeleton",
  "shape": "box",
  "variant": "shine"
}

4. 已加载状态内容切换

一旦客户端数据加载完成,将 loaded 设为 true 会立即显示嵌套的子区块(如标题或真实卡片),并停止渲染占位背景。

{
  "type": "skeleton",
  "loaded": true,
  "children": [
    {
      "blockType": "heading",
      "text": "Account Connected",
      "size": "sm"
    },
    {
      "blockType": "text",
      "content": "API key sync complete."
    }
  ]
}

Account Connected

API key sync complete.


Props

属性CMS 字段类型默认值描述 / 支持的选项
形状 (shape)select"box"代表正在加载资源的几何形态。
• 选项:"box"(卡片/图片)、"circle"(头像)、"text"(段落列)。
动画变体 (variant)select"pulse"动画样式。
• 选项:"pulse"(渐变发光循环)、"shine"(对角线微光反射)、"none"(静态中性填充)。
行数 (noOfLines)number3shape 设为 "text" 时显示的列行总数。
已加载状态 (loaded)booleanfalse为 true 时跳过骨架遮罩,直接显示子组件。
子区块 (children)list-嵌套的页面构建器组件,在 loaded 变为 true 前保持隐藏。

Architecture Notes

  • 零布局跳动: 几何尺寸参数(如 CSS grid 高度和宽度)在客户端注水前于服务器解析。这保留了比例布局边界,避免累积布局偏移(CLS)。
  • GPU 加速微光: 高光反射与发光脉冲循环利用高性能 CSS 变换。即使在低端移动设备上也保证 60fps 动画。
  • 动态内容映射: 用 Skeleton 包裹组件,开发者可以异步获取客户端数据流,安全地将元素从占位符无缝过渡到可见状态。