跳转到内容

警告提示 alert

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

示例

基础用法

各部件按需摆放,标题与描述都是可选的

部署已排队
构建完成后会自动发布。

语气

tone 只改配色,语义仍由内容与 role 决定

保存成功
配额即将用尽
发布失败

可关闭

closable 开启后才渲染关闭按钮;open 受控时由宿主决定去留

点右侧关闭

图标

icon 部件排在标题前面,颜色取当前语气的强调色;内容由作者塞,字形与内联 svg 都行

发布完成
三个节点都已切到新版本。
发布失败
第 2 个节点健康检查未通过。

自定义外观

描边、底色、标题色、圆角各是一个组件令牌;描边槽位换成透明就只剩淡底,尺寸不变

无描边
底色与内边距都还在。
无底色
剩一圈线,衬在页面本来的底色上。
自定配色
底色、描边、标题色、圆角各占一个槽位。

产物

自定义元素<xh-alert>
Vue 组件XhAlertCloseTrigger XhAlertDescription XhAlertIcon XhAlertRoot XhAlertTitle
状态机alertMachine
皮肤@xihan-ui/styles/alert.css

解剖

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

data-scope="alert"root · icon · title · description · close-trigger

Props

属性类型必填说明
toneTone语气:brand / neutral / success / warning / danger / info,决定用哪族颜色,默认 info。 danger / warning 走 role="alert",其余走 role="status"。
closableboolean关闭按钮是否可用,默认 true。false 时该按钮同时被禁用与收起。
openboolean受控显隐;缺省该 prop 即非受控。
defaultOpenboolean非受控初始显隐,默认显示。
onOpenChange(details: AlertOpenChangeDetails) => voidopen 变化意图回调;受控时是唯一出口,非受控随内部转移一并通知。
translationsPartial<AlertTranslations>

状态机

状态open · closed

事件OPEN · CLOSE · CONTROLLED.OPEN · CONTROLLED.CLOSE

判据isOpenControlled

connect API

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

成员类型说明
openboolean
tonestring
closableboolean
setOpen(next: boolean) => void
getRootProps() => T['element']
getIconProps() => T['element']
getTitleProps() => T['element']
getDescriptionProps() => T['element']
getCloseTriggerProps() => T['button']

键盘

规格出处:W3C APG

按键生效条件行为
Enter / Spacefocus 在 close-trigger 上且 closable收起提示并通知 open=false

Released under The MIT License