跳转到内容

加载指示器 spinner

反馈与浮层组件。三层同源:无头内核给出解剖与状态机,Vue 组件与自定义元素只是它的两层外壳,行为完全一致。

示例

基础用法

root 是 role=status 的活区,转圈图形由皮肤画在伪元素上;label 给出这一处在等什么

尺寸

size 只换直径,缺省档 md 不输出 data-size

可见文案

label 部件不写内容时显示解析后的 label,屏幕上看到的与读屏念的因此是同一段字

正在加载数据正在提交表单

语气

tone 只换圆环起始边那一段颜色,轨道留在中性描边上,转到哪儿才看得出来

brandneutralsuccesswarningdangerinfo

盖住等待中的内容

转圈浮在内容上方,容器同时报 aria-busy,看得见的与念得出的是同一件事

本季新增客户 128 家,环比增长 12%。

换掉转圈图形

内置圆环画在伪元素上,把直径与描边归零它就不占位;自绘的图形写进默认插槽

正在同步仓库正在生成摘要

产物

自定义元素<xh-spinner>
Vue 组件XhSpinner XhSpinnerLabel
状态机无,connect 直接由 props 算属性
皮肤@xihan-ui/styles/spinner.css

解剖

部件名即 data-part 属性值,也是皮肤的选择器。加粗的是必备部件,不渲染它组件不工作(Web Components 适配器会在诊断通道上报 wc.missing-part)。

data-scope="spinner"root · label

Props

属性类型必填说明
labelstring这一处的可及名字,写在 root 上。 label 部件显示的应当是同一段文案:aria-label 会盖过节点里的文字,两者不一致时 读屏念的与屏幕上看到的就对不上了。
sizeSize直径档位,缺省 md;缺省档不输出 data-size。
toneTone语气:brand / neutral / success / warning / danger / info,决定用哪族颜色
translationsPartial<SpinnerTranslations>

connect API

connect 产出的对象。getXxxProps() 铺到对应部件的宿主元素上,其余是可读状态与操作入口。

成员类型说明
labelstring解析后的文案:label → translations.label → 内置默认值。
getRootProps() => T['element']
getLabelProps() => T['element']

键盘

规格出处:W3C APG

无键盘交互(不接收焦点,或焦点行为完全由原生元素提供)。

Released under The MIT License