ICEN UI 轻提示
Docs ⌘K
Core · 稳定

轻提示

及时确认操作结果,也给撤销与重试留出时间。键盘焦点、鼠标停留和异步操作都会暂停倒计时。

Preview
基础 toast

异步示例首次模拟失败,重试后成功。

html
<div class="demo-row">  <button class="icen-btn" id="toast-demo-ok">成功提示</button>  <button class="icen-btn" id="toast-demo-err">错误提示</button>  <button class="icen-btn" id="toast-demo-warn">警告提示</button>  <button class="icen-btn" id="toast-demo-close">可关闭提示</button>  <button class="icen-btn" id="toast-demo-async">撤销与重试</button></div><p class="demo-label"><bdi>异步示例首次模拟失败,重试后成功。</bdi></p>

特性

反馈族边界:瞬时反应用 toast;需要持久、进度与多按钮的用通知中心;内嵌页面警示用 alert。

接口

导出
toast
类型
dist/behaviors/toast.d.mts(随 npm 包发布,含全部 JSDoc 约束)

安装

bun add @icen.ai/ui

一行引入该组件(CSS 与 behavior 自动带上,无需关心内部 CSS 文件名):

js
import '@icen.ai/ui/kit/toast';

也可以用脚手架直接打印引入行:

bash
bunx --bun @icen.ai/ui add toast

Astro 项目注意:kit 入口里的 CSS import 在页面 <script> 里会被 Astro 的 client bundle 摇掉——请改在布局 frontmatter 里引 CSS(import '@icen.ai/ui/components/toast.css';),JS 行为仍可走 kit。Vite SPA / webpack 项目无此问题。

用法

js
import { toast } from '@icen.ai/ui/behaviors/toast';toast.success('已保存');toast.error('保存失败');toast.warn('配额将尽');toast.success('内容已更新', { closable: true, ms: 10000 });const h = toast.action('文档已删除', '撤销', async (signal) => {  await restoreDocument({ signal }); // 等待完成再关闭;reject 后保留重试}, { closable: true, progress: true, iconName: 'trash' });h.pause(); h.resume(); h.dismiss(); // hover / focus 的暂停彼此独立