Skeleton 骨架屏

在内容结构已知而数据未就绪时提供低干扰占位。

Beta

示例

直接操作示例,查看组件在具体任务中的状态与反馈。

占位形状应接近最终布局;加载语义由相邻容器或 LoadingState 负责。
列表占位
内容块占位
圆形、文本行和内容块分别对应不同的最终内容轮廓。
占位形状
多行占位保持最终表格的列节奏,同时由容器宣告加载状态。
成员表加载中

使用建议

形状接近最终布局

用 line、block 和 circle 组合出稳定结构,减少内容到达时的布局跳动。

只占位,不伪造内容

Skeleton 不应显示看似真实的姓名或数据,避免用户误把占位当成已加载结果。

尊重减少动态效果

默认动画会响应 reduced motion;静态占位可显式设置 animated 为 false。

引入方式

从已验证的公开子路径导入组件;全局样式接入方式见安装指南。

import { BaseSkeleton } from '@inf-monkeys-tech/monkeys-design/components/base';

当前限制

  • Skeleton 本身对辅助技术隐藏,不会宣告加载状态;宿主需要在容器提供 aria-busy 或配合 LoadingState。
  • Deterministic visual evidence and final packed React 18/19 checks are pending T17/T23.
export interface BaseSkeletonProps
  extends Omit<
    HTMLAttributes<HTMLDivElement>,
    'children' | 'className' | 'style'
  > {
  variant?: 'line' | 'block' | 'circle';
  animated?: boolean;
  appearance?: BaseAppearance;
  className?: string;
  classNames?: BaseSkeletonClassNames;
  style?: CSSProperties;
}
属性说明类型默认值
variant骨架占位使用的形状样式。'line' | 'block' | 'circle''line'
animated是否播放加载或状态变化动画。booleantrue
appearance覆盖组件使用的外观令牌或局部样式配置。BaseAppearance
className追加到组件根元素的 CSS 类名。string
classNames按组件公开的结构插槽分别追加 CSS 类名。BaseSkeletonClassNames
style追加到组件根元素的内联样式。CSSProperties