kitseed.
组件

Skeleton 内容占位

让等待保留布局,让实际内容进入时不惊扰阅读。

Skeleton 适合已知大致结构、正在首次加载的内容。按最终文本和图片尺寸安排占位,避免用大量随机骨架制造虚假的进度。

安装

pnpm dlx shadcn@4.22.1 add http://127.0.0.1:3040/r/v0.3.0/skeleton.json

首次使用请先完成 Registry 与主题接入。

组合与状态

组件使用轻量脉冲效果,在减少动态效果偏好下停止动画。高度和宽度通过 className 配置;完整列表占位可以直接使用 States 中的 ListSkeleton。

<div role="status" aria-label="正在加载文章" aria-busy="true">
  <Skeleton className="h-4 w-3/5" />
  <Skeleton className="mt-2 h-3 w-2/5" />
</div>

Props

属性类型默认值说明
classNamestring—必须配置实际占位尺寸
aria-hidden原生 span 属性true视觉占位不被逐项朗读
其他属性原生 span 属性—布局和数据属性

键盘与约束

占位元素不应进入焦点顺序。父区域提供一个清晰的加载名称;内容到达后替换占位,避免加载状态长期残留。

避免这样使用

不要用 Skeleton 表示空数据或错误;刷新已有内容时通常保留内容并显示轻量刷新反馈;不要让骨架尺寸与最终布局完全不同。

来源与版本

0.1.0,来自 Subtic apps/web/components/ui/skeleton.tsx。保留原生 span 与减少动态效果支持。

本页内容