Skip to content

Toast 轻提示 ​

命令式全局轻提示,支持成功/错误/警告/信息/加载态、操作按钮、promise 链、队列治理与键盘/读屏无障碍,默认 3 秒自动关闭。

基础用法 ​

五种类型

成功错误警告信息加载

自定义时长 ​

自定义时长

2 秒5 秒不自动关闭(0)手动关闭

操作按钮 ​

操作按钮(多按钮 + noDismiss + 变体)

单操作按钮多按钮 + noDismiss不可关闭

位置 ​

位置(9 方向)

top-righttop-lefttop-centerleftcenterrightbottom-centerbottom-leftbottom-right

Promise 链 ​

Promise 链

模拟成功模拟失败

生命周期与 onClose ​

生命周期与 onClose 回调

onClose(自动关闭)onClose(手动关闭)触发关闭

按 id 更新与关闭 ​

按 id 更新与关闭

开始上传更新进度完成关闭

通知风暴治理 ​

max 队列与同内容去重

连点触发(max=3 排队)关闭第 N 条(补位)同内容连点(去重计数)清空全部

「连点触发」超出 3 条排队,关闭后自动补位;优先级 priority 可让高优先级抢占可见位。

阅读宽限 ​

hover/聚焦暂停计时 + 剩余时间进度条

暂停计时 + 进度条进度环关闭按钮顶部进度条

窗口失焦(切走标签页/窗口)同样暂停;`pauseOnHover`/`pauseOnFocus`/`pauseOnWindowBlur` 可单独关闭。

键盘与读屏 ​

Esc 关闭与屏幕阅读器敏感度

Esc 关闭polite 读屏assertive 读屏

滑动关闭 ​

滑动关闭(swipe)

双向滑动仅左滑

折叠堆叠 ​

折叠堆叠(+N 收纳 / hover 展开)

连续触发(折叠)

折叠后最新一条全显,其余 peek 层叠并出现 +N 徽标;悬停/聚焦展开,点击 +N 持久展开。

变体与动画 ​

变体(plain/translucent)与动画配置

solidplaintranslucent弹性慢速动画恢复默认动画

动画时长/曲线走 CSS 变量 `--oas-toast-enter-duration` / `--oas-toast-leave-duration` / `--oas-toast-ease`,无需 JS 配置。

全局默认配置 ​

全局默认配置(toast.config)

应用全局默认恢复默认

挂载点与命名实例 ​

挂载点控制与命名实例

指定容器console 实例清空 console 实例

声明式用法 ​

声明式用法(受控 open)

切换显隐(open)

API ​

方法 ​

方法说明
toast.info(options)信息提示,返回 { close, update }
toast.success(options)成功提示,返回 { close, update }
toast.warning(options)警告提示,返回 { close, update }
toast.error(options)错误提示,返回 { close, update }
toast.loading(options)加载提示(不可关),返回 { close, update }
toast.promise(promise, opts)promise 链:loading → success/error
toast.update(id, options)按 id 原位更新;id 不存在则新建
toast.dismiss(id)按 id 关闭(可见或排队中)
toast.config(options)全局默认配置(调用参数优先)
toast.toaster(name)命名实例:独立栈/队列/配置
destroyAllToast()清空全部实例

options ​

字段说明类型默认值
title标题(string 或 Node)string | Node—
description描述string—
action / actions操作按钮(多按钮 + noDismiss + variant)ToastAction | ToastAction[]—
duration自动关闭时长(ms),0 不关闭number3000
closable是否可手动关闭(loading 恒关)booleantrue
position位置(9 方向)ToastPositiontop-right
id唯一标识:供 update / dismiss 定位string—
onClose关闭回调(自动/手动/按钮/dismiss/destroyAll 均触发一次)() => void—
priority优先级:与 max 队列配合,高优先级抢占可见位number0
max该位置栈最大可见数,超限排队numberInfinity
politeness读屏敏感度:assertive / politestring按类型
showProgress剩余时间进度条(duration>0 时显示)booleanfalse
progressRing进度环式关闭按钮(duration>0 时显示)booleanfalse
grouping同内容去重:同栈同内容合并并递增计数徽标booleanfalse
swipeDirection滑动关闭方向:both/right/left/up/downstringboth
stacked折叠堆叠模式(+N 收纳 / peek 层叠)booleanfalse
variant变体:solid/plain/translucentstringsolid
container挂载点(元素或函数),覆盖默认宿主HTMLElement | () => HTMLElement—
pauseOnHover / pauseOnFocus / pauseOnWindowBlur暂停计时开关(默认全开)booleantrue

oas-toast ​

属性 ​

属性说明类型默认值
closable是否显示关闭按钮(loading 态强制不可关)boolean—
count同内容去重计数徽标:命令式 grouping 开启时同签名重复派发递增计数(标题行旁 ×N,>1 才显示)并重置计时string0
description描述文案string—
duration自动关闭时长(ms),0 表示不自动关闭string3000
id实例标识:命令式 show/update/dismiss 按 id 命中既有实例原位更新/关闭而非新建;同时作为 DOM id——
open受控开关(声明式用法):open="false" 整卡隐藏且自动关闭计时暂停;缺省/其他值视为打开stringtrue
pause-on-focus焦点进入时暂停自动关闭计时(默认开;"false" 关闭)——
pause-on-hover悬停时暂停自动关闭计时(默认开;"false" 关闭)——
pause-on-window-blur窗口失焦/页面隐藏时暂停自动关闭计时(默认开;"false" 关闭)——
politeness读屏敏感度:polite(role=status)/ assertive(role=alert 立即打断);显式设置优先,缺省按 type(error 走 assertive,其余 polite)string—
progress-position进度条位置:bottom(默认)/ top,配合 show-progressstringbottom
progress-ring关闭按钮进度环形态:✕ 外圈 SVG 圆环表示剩余时间(duration > 0 时随时长走完)boolean—
show-progress显示自动关闭剩余时间进度条(时长随 duration,暂停时定格)boolean—
swipe-direction滑动关闭方向:both(默认)/ right / left / up / down;非配置方向 0.2 阻尼跟随stringboth
title标题文案(渲染进可见标题区;读取后即从宿主移除,不残留原生悬浮提示;清空传空串);富内容用 slot="title"string—
type提示类型:info/success/warning/error/loadingstringinfo
variant视觉变体:默认卡片 / plain(无边框无底纹文本直出)/ translucent(半透明毛玻璃)——

事件 ​

事件说明
oas-close关闭时派发,detail: { trigger }(trigger: auto/manual/action/close-button/esc/swipe/preempt/external);离场动画后移除节点
oas-destroy节点从 DOM 移除后派发(含外部 remove 兜底),detail: { trigger };promise 链收尾用
oas-open展示时派发,detail: { trigger }

插槽 ​

名称说明
title标题富内容插槽,有内容时覆盖 title 属性文案

CSS 变量 ​

CSS 变量说明默认值
--oas-glass-blur—none
--oas-glass-refraction液态玻璃边缘折射滤镜(data-glass 生效,默认 none);局部停用覆盖为空值(--oas-glass-refraction: ;)——不得用 none(与 button 态的 brightness() 混排会使整条 filter 声明非法)none
--oas-glass-ring—transparent
--oas-toast-ease—ease
--oas-toast-enter-duration—0.2s
--oas-toast-leave-duration—0.2s
  • error 类型默认 role="alert" + aria-live="assertive",其余 role="status" + aria-live="polite";politeness 可覆盖。
  • 多个 toast 共用一个栈容器,同一方向按位置堆叠;duration 计时器在关闭/卸载时清理,无泄漏。
  • 动画时长/曲线经 CSS 变量 --oas-toast-enter-duration / --oas-toast-leave-duration / --oas-toast-ease 配置。

基于 MIT OR Apache-2.0 双许可发布