# Toast 更新日志 先阅读 [完整 LICENSE](https://snowui.dev/LICENSE);同任务、同版本、同范围去重。 ### v2.3.3 (2026-10-23) - 通知内部图文和独立文字区域的有效间距至少4 CSS px,根字号及间距缩小时仍保留下限;已有更大间距保持。短标签组合可通过继承的 `singleLine` 与 `Text lines={1}` 保持单行并提供截断全文;rich 的复杂多行正文不自动转成单行。 - 2026-09-21:统一使用文档、源码属性表与 Site / AI 阅读入口;仅文档修订,不改变组件行为。 ### v2.3.2 (2026-07-05) #### 修复 - 按外置 Icon 替换协议检测 Toast 的直系 `leading` 子项;存在外置 `as="leading"` 时不再渲染内置 CheckCircle / Warning,修复 TS-04 同时显示两个图标的问题。 ### v2.3.0 (2026-06-18) #### 样式调整 - default 变体新增 `backdrop-filter: blur(var(--size-10))` 与 WebKit 前缀,背景模糊档位与共享浮层面板一致。 - rich 变体在 Toaster 的 idle 层不再覆盖为不透明 `Background/1`,统一保留 `.snowui-quick-action-panel` 提供的 `Background/3 + blur(var(--size-10))`。该调整选择玻璃效果优先,允许堆叠后层内容通过半透明背景产生轻微透出。 - Toaster 不再使用独立 slot / measure 包装层承接动效。Toast 根元素自身同时承接堆叠 `translate` / `scale`、生命周期 `transform`、组合 opacity、背景与 `backdrop-filter`,避免外置 blur plate 在内容淡入淡出时单独暴露为灰色层。 - 单层结构中的透明度直接合并进 Frame fade 配置:appear 为 `[80% × stackOpacity, stackOpacity]`,disappear 为 `[stackOpacity, 80% × stackOpacity]`。默认第 2 层稳定态 `0.8`、第 3 层 `0.6`,退场终值分别为 `0.64 / 0.48`;不复用会与 Frame blur motion 冲突的 `filter` 属性。 - 移除已无消费方的 `--snowui-toast-idle-background-override`。 ### v2.2.0 (2026-05-15) #### 新增 - **内嵌模式 `as="toast"`**:Toast 作为宿主子节点(如 Button),自动发现父元素并绑定 click 事件触发,无需 id 与手动 `showToast`。遵循 ComponentGuidelines.md §5 浮层组件三激活模式规范。Toast 三模式齐备:面板 / 内嵌 / 模版。 - 新增 TS-30 / TS-31 示例覆盖 Inline 模式 default / rich 变体。 ### v2.1.0 (2026-05-11) #### 修复 - Toast 可见栈任一层 hover 时暂停同位置所有可见层自动消失计时,离开 hover 后按剩余时间恢复;后层仍不显示 X。 - Toaster measure 层显式承接 `--su-motion-transform` / `--su-motion-opacity`,修复普通退场缺少位移动效的问题。 - Toaster idle 层 rich 背景曾改为不透明 `--background-1`,用于避免后层 Toast 内容透出;该历史策略已在 v2.3.0 撤回。 - 超过 `maxVisible` 时,当前最后一层 Toast 进入 `pushed-out` 状态,沿入场方向继续位移并渐隐,形成“被新层挤出”的专属退出动效。 - Toaster 移除 `document.startViewTransition` 更新包装,避免浏览器级过渡队列在动效过程中阻塞按钮连续触发。 - Toaster 将外层槽位用于堆叠 transform / opacity,内层 Frame 用于出现与退场,避免 appear/disappear transform 覆盖堆叠位移。 - 退场残影修复采用“双层 transform”方案:内层 Frame 保持 `translateY(±100%)` 的稳定退场动效,外层 slot 在 `exiting / pushed-out` 时额外平移 `index * gap + offset + 20px`,不要把 `calc(±100% ± offset ± 20px)` 写进内层 `whileDisappear`。 - 将 Toaster 堆叠槽位从普通 `div + animate:flip` 改为 `Frame/Frame`,堆叠 transform / opacity 过渡统一消费 Frame motion。 - `dismissToast()` 改为先标记 `exiting` 并进入 `Disappear` 状态,退出动效结束后再移除队列项,避免 Toast 瞬间消失。 - Frame 新增 `currentState` 受控状态入口,并让 `Appear` / `Disappear` 状态在 Frame inline motion 中实际输出动效样式。 - 默认停留时长、区域宽度、堆叠 gap、缩放系数、隐藏规则与 top/bottom 滑入滑出方向对齐 HeroUI。 - 新增通用动效原子与组合预设,不使用 Toast 专属命名:`slide` / `fade` / `scale` / `stackTranslate`;Toast 侧按需组合为 `slideFromTop` / `slideToTop` 等具体用法。 ### v2.0.0 (2026-05-11) #### 破坏性变更 - 移除 `` 的 `title` / `description` / `icon` 三个 prop;所有文字与槽位结构改为 children 外置 - 新增 `` 的 `positive?: boolean` prop:`true`=CheckCircle(积极)、`false`=Warning(问题)、`undefined`=不显示内置图标 - `toast()` 命令式 API 同步:`title`/`description`/`icon` → `text` + `positive`;字符串语法仍可用,等价 `{ text }` - 移除 `ToastIconKind` 类型导出 #### 修复 - 修复 `.snowui-toast-builtin-icon` 选择器从未匹配的问题:Icon 组件 class 落在内层 `.snowui-icon` 上(不是直接子代),选择器由 `>` 改为后代;且改用 Icon 暴露的 `--snowui-icon-width/height-override` 闭环覆盖默认 1rem 尺寸 → sm/md 现在正确区分(16/20) - 修复"外置 Icon 替换内置图标"规则失效:按 LayoutProtocol §4.1.5 重写为 `:has(~) + :has(.builtin)` 形式(对齐 SearchInput),精准命中内置 wrapper ### v1.0.0 (2026-05-10) #### 新功能 - 初始实现:`` 视觉单元 + `` 全局 Portal + `toast()` 命令式 API - 三槽位 Leading / Content / Trailing;内置 CheckCircle / Warning 支持外置 Icon 替换 - default(深色玻璃 pill,sm / md)与 rich(白底卡片,复用 `.snowui-quick-action-panel`)两个变体 - 6 个出现位置(top / top-left / top-right / bottom / bottom-left / bottom-right),默认 top;距边缘 40px - 自动消失(默认 3 秒)+ 同位置堆叠 + `animate:flip` 平滑前移(历史实现,已在 v2.1.0 被 Frame 槽位方案替代) - 出入场动效使用显式组合的 `slide + fade + scale`;生命周期状态仍由 Frame 的 `Appear / Disappear` 承接