Skeleton
用于在加载时预留最终内容的形状与空间,减少页面跳动。
预览
加载内容卡片
在命名的加载区域内预留封面、头像、标题与多行文字的位置。
安装
首次使用此 Registry?请先完成 基础配置与共享样式安装 。
npx shadcn@latest add @neumorphism-ui/skeleton先安装一次共享 base,然后使用 CLI 添加组件及其依赖。
用法
让占位尺寸与最终内容对应。将外层区域标记为 busy,并提供一条简短加载提示,无需为每个装饰形状命名。
import { Skeleton } from "@/components/ui/skeleton";
export default function Example() {
return (
<div aria-busy="true">
<span className="sr-only">Loading profile</span>
<Skeleton className="h-4 w-40" />
</div>
);
}API 参考
一个基于 div 的简单 pulse placeholder。它只提供视觉加载轮廓,并通过 aria-hidden=true 对辅助技术隐藏。
| 组件 | 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
Skeleton | className必填 | string | — | 设置 placeholder 的宽度、高度和 radius。 |
Skeleton | aria-hidden | boolean | true | 将装饰性 placeholder 从无障碍树中隐藏。 |
无障碍
- 01
Skeleton 本身设置了 aria-hidden,因此应在周围另行提供 sr-only 状态文案或 role=status。
- 02
加载区域可按需设置 aria-busy=true,并在加载完成后移除。
- 03
pulse 动画会依据全局 prefers-reduced-motion 规则基本停用。