Angular 骨架屏加载组件 | ng-hub-ui-skeleton

Angular 骨架屏加载占位符,提供可复用预设、内联 DSL 模板、响应式取值以及用于微光状态的 CSS 变量。

API 参考

这里是 skeleton 的完整契约:你可以绑定、监听、投影和设置主题的一切,都集中在一处。接入你需要的部分,自定义你想要的样式——它是 standalone 的,且对 signal 友好。

输入

通过 7 个输入项精细调校 skeleton。像绑定任意 Angular @Input 一样绑定它们。

名称类型默认值描述
presetstring | nullnull已捆绑或已注册预设的名称。提供后,组件将从预设注册表解析默认值、变体和别名组合。
templatestring | HubSkeletonTemplateDefinition | nullnull类 Emmet 的内联 DSL 字符串或模板定义对象,可选地包含响应式断点覆盖。
paramsHubSkeletonParams{}可序列化的参数,会在解析和预设展开之前插值到 `{{param}}` 占位符中。
variantstring | nullnull可选的预设变体名称,例如 `compact`,用于切换模板默认值或覆盖基础预设模板。
animatedbooleantrue在保持相同占位布局的同时,启用或禁用微光动画。
appearance'default' | 'subtle' | 'contrast''default'在不改变已解析布局的前提下,改变骨架屏表面的视觉强度。
ariaLabelstring'Loading placeholder'应用于容器元素的无障碍标签,供辅助技术使用。

输出

尚未记录任何输出项。

模板

打造你自己的样式——3 个模板插槽让你可以投影自定义标记。

名称描述示例
Bundled Presets初始目录中可用的预设名称:card、list-item、table-row、detail-view、form-section、dashboard-widget、stat-card、chart-panel、profile-summary、master-detail、kanban-card、feed-item、search-result、table-toolbar、filter-bar 和 empty-state-skeleton。<hub-skeleton preset="table-row" [params]="{ columns: 4 }"></hub-skeleton>
Preset DSL紧凑的字符串语法,支持节点名称、修饰符、用 `+` 组合兄弟节点、用 `>` 嵌套子节点,以及用 `*N` 重复。<hub-skeleton template="stack(gap:12)>circle(size:40)+stack(gap:8)>line(width:42%)+line(width:72%)"></hub-skeleton>
provideHubSkeletonPresets在 Angular 依赖注入中注册自定义预设,使任何组件都能按名称渲染它们。providers: [provideHubSkeletonPresets([{ name: 'profile-card', template: 'stack(gap:16)>circle(size:72)+line(width:48%)' }])]

CSS 变量

用 5 个 CSS 变量为每一个像素设置主题。在 :root 处覆盖它们,或将其限定到某个容器范围内。

视觉 tokens

宿主组件暴露的核心 CSS 自定义属性。

变量默认值类型描述
--hub-skeleton-bgrgba(148, 163, 184, 0.18)color 用于可见骨架屏表面的基础占位颜色。
--hub-skeleton-highlightrgba(255, 255, 255, 0.52)color 微光渐变所使用的高亮颜色。
--hub-skeleton-radius12pxlength block 和 line 节点的默认边框圆角。
--hub-skeleton-gap12pxlength 当未被修饰符覆盖时,stack 和 grid 节点使用的默认间距。
--hub-skeleton-animation-duration1.35stransition 微光动画循环的持续时间。

样式与主题

尚未记录任何样式示例。本节将包含自定义方案和主题示例。