Toaster 使用手册
v1.0.3 · @snowui-design-system/components
许可阅读:首次阅读组件文档、源码或 npm 使用流程,先读完整 LICENSE;同任务同版本去重。公开 API 配置与内部实现修改分别按许可处理;全部组件使用统一运行包,源码权益以许可为准。
组件介绍
集中展示通过 toast() 触发的全局通知,支持六个屏幕位置、堆叠动效与可见数量控制,让连续反馈保持有序。
使用选择
作为 Toast 的展示宿主,协调通知队列与布局。普通页面通知列表由业务页面组织,不把历史消息全部转成瞬时 Toast。
挂载为通知展示宿主,使用 toast 创建消息;maxVisible 限制同时可见数量。
同一运行实例的命令式通知共用队列,在应用根部挂载一个 Toaster,让多个页面区域复用;重复挂载会重复展示同一条通知。
offset / gap 控制位置与堆叠间隔;parts 配置默认 Toast 及字符串通知生成的 Text,单条消息的显式外观优先。
快速开始
以下示例展示推荐的基本组合。更多场景与组合限制见后文。
API
未重新声明的继承能力请查所属基础组件文档;本表只列本组件源码具名公开属性。
使用边界与详细说明
内置组件双模式
parts.Toast:统一配置 Toaster 直接生成的全部 Toast;parts.Text只配置 text 字符串生成的标签,默认单行并提供截断全文。Toast 队列数据、position、关闭事件和堆叠动效由 Toaster 控制,不能由 part 覆盖。
parts 只作用于 Toaster 直接创建的 Toast 与 text 标签,不递归进入 Toast 内部,也不接管显式 leading / children / trailing。
Toast 实例显式 Prop 高于
parts.Toast;class 合并,style 按 parts 在前、显式 style 在后合并。
示例
完整 Toast API 见 Toast.md。
定位规则
top / bottom 的区域占据视口左右 offset 之间的可用空间,通知按自身宽度在区域内居中;通知宽度仍由内容或 width 决定。
区域不依赖绝对定位子项提供内禀宽度,避免空区域宽度为 0 时通知从视口中线向右展开。
Toaster 样式覆盖
先阅读 完整 LICENSE;同任务、同版本、同范围去重。
优先用组件公开 Props 匹配合适样式,尽可能保留原有视觉。确需改写时按 样式选择与改写顺序 使用自己的 class(含项目已有 Tailwind)或实例 style。以下名称来自源码实际消费的公开 override;先核对目标作用域,不修改私有 DOM。采用 SnowUI Token 时选择正确类别,外部应用不被要求安装一方 utilities。
本组件源文件没有直接消费已登记的专属 override。组合子组件的样式通过公开 parts 或显式 child 配置;不要凭名称猜测变量。
Toaster 类型与状态
必填属性:无具名必填属性。
可双向绑定:本组件未声明具名双向绑定属性;状态更新通过公开回调或所属宿主处理。
继承声明:无接口继承。继承能力以基类公开文档为准;Omit 中的字段已排除,不能按基类原样使用。
以下为公开属性实际引用的类型声明,来自源码;Svelte Snippet 表示内容片段,ComponentProps 表示对应组件的 Props。
ComponentPartsOf
来源:components/src/logic/component-parts.svelte.ts
ConfigurableComponentPartProps
来源:components/src/logic/component-parts.svelte.ts
ComponentPartControlledKey
来源:components/src/logic/component-parts.svelte.ts