## 使用场景
Alert 组件用于展示卡片式的弹窗提示,适用于需要更丰富内容展示的通知场景,如操作反馈、系统通知等。
## 设计理念与场景区分
在 STDF 的反馈体系中,Toast、Alert、Modal、Dialog 都用于向用户传达信息,但侧重点不同。
- **Toast**:轻量、非阻断,关注短时提示与状态反馈,适合操作后即时反馈。
- **Alert**:卡片式通知,强调信息呈现与可读性,支持标题、图标、操作按钮,适合通知类提醒或较丰富的提示内容。
- **Modal**:强提醒、弱交互,通常是单按钮确认或阅读确认,适合需要用户明确知悉但交互简单的场景。
- **Dialog**:强提醒、强交互,通常需要用户做选择或确认,适合涉及决策的流程或风险操作。
## 提示类型
通过 `type` 属性设置不同的提示类型:
- `'success'`:成功提示,绿色图标
- `'error'`:错误提示,红色图标
- `'warning'`:警告提示,橙色图标
- `'info'`:信息提示,蓝色图标
- `null`:无类型,不显示默认图标
## 显示位置
默认从顶部滑入,设置 `position` 为 `'bottom'` 可从底部滑入。通过 `py` 属性调整距离顶部/底部的距离。
## 自动关闭
默认 3 秒后自动关闭,通过 `duration` 属性调整显示时长。设置为 `0` 则不自动关闭,需手动关闭。
## 过渡动画
通过 `transitionType` 属性设置过渡动画,支持 [svelte/transition](https://svelte.dev/docs/svelte/svelte-transition) 的所有适用于普通 DOM 元素的动画函数:
- `'fly'`:飞入动画(默认),从顶部/底部滑入
- `'scale'`:缩放动画
- `'fade'`:淡入动画
- `'slide'`:展开动画
- `'blur'`:模糊动画
- `null`:无动画
## 动画参数
通过 `transitionParams` 属性设置动画参数,其中 `duration` 表示进入的动画时间(默认 300ms)。
transitionParams 具体支持的参数请参考 [svelte/transition](https://svelte.dev/docs/svelte/svelte-transition)。
例如,可以自定义 fly 动画的 Y 值:
```svelte
```
考虑到用户体验,提示信息出现时有一个较短的动画(默认 300ms),能引起用户的注意力;而提示信息展示完后可以通过 `outDuration` 属性设置退出的动画时间(默认 300ms)。
退出动画只允许设置动画时长,其他参数会沿用进入动画的参数,保证动画效果「从哪里来回哪里去」。
## 缓动函数
通过 `easeType` 属性设置进入动画的缓动函数,`easeOutType` 设置退出动画的缓动函数,支持 [svelte/easing](https://svelte.dev/docs/svelte/svelte-easing) 的所有缓动函数:
- `'linear'`:线性
- `'cubicOut'`:三次方缓出(默认)
- `'bounceOut'`:弹跳缓出
- `'elasticOut'`:弹性缓出
- `'backOut'`:回弹缓出
- 更多缓动函数请参考 svelte/easing 文档
例如,使用弹性缓动效果:
```svelte
```
## 自定义卡片样式
通过 `card` 属性传递 Card 组件的配置,可自定义阴影、圆角、边框等样式。
## 自定义内容
通过 `children` Snippet 可完全自定义提示内容,实现更复杂的交互效果。
## 穿透点击
默认允许点击穿透(`clickable` 为 `true`),即提示显示时可以点击下方内容。设置为 `false` 可阻止穿透。
## injClass
通过 `injClass` 参数可以向组件外层容器注入 CSS 名称。
若注入的 class 没生效,请在注入的 class 名称前添加"!",可参考 [Tailwind Important modifier](https://tailwindcss.com/docs/configuration#important-modifier)。