反馈
Alert
用于向用户传达重要信息或反馈的提示组件
提示(Alert)用于在页面中展示简短的提示信息,向用户传达操作结果、系统状态或需要关注的内容。
import { Alert, AlertRoot, AlertTitle, AlertDescription, AlertWrapper } from '@skyroc/web-ui';何时使用
- 需要向用户反馈操作结果时(如成功、失败、警告)。
- 展示系统级消息或状态变化(如网络错误、版本更新)。
- 在表单或流程中给予用户必要的提示信息。
- 相比 Toast,Alert 更适合需要持续展示在页面中、不会自动消失的场景。
颜色
Alert 提供 8 种主题颜色,每种颜色都有其语义含义:
| 颜色 | 语义 | 适用场景 |
|---|---|---|
primary | 主要提示 | 常规信息、引导操作 |
destructive | 危险警告 | 错误信息、不可逆操作警告 |
success | 成功提示 | 操作成功、流程完成 |
warning | 警告提示 | 需要注意的潜在问题 |
info | 信息提示 | 中性信息、辅助说明 |
carbon | 中性深色 | 不带语义倾向的通用提示 |
secondary | 次级提示 | 低优先级信息、辅助性提示 |
accent | 强调提示 | 需要特殊视觉关注的信息 |
Preview
Code
Loading...
变体
通过 variant 控制 Alert 的视觉强度,从高到低依次为:
| 变体 | 视觉强度 | 适用场景 |
|---|---|---|
solid | 最强 | 紧急信息,填充背景色 |
pure | 较强 | 中性卡片风格,标题 + 描述场景 |
outline | 中等 | 常规提示,实线边框 |
soft | 低 | 轻量提示,淡色背景无边框 |
ghost | 最低 | 带边框的淡色背景(默认) |
Preview
Code
Loading...
描述文本
通过 title 和 description 组合展示标题与补充说明,适合需要更多上下文的提示场景。
Preview
Code
Loading...
图标
通过 icon 插槽在 Alert 起始位置放置图标,增强信息的可识别性。图标会自动继承当前颜色主题。
Preview
Code
Loading...
完整示例
结合 icon、title、description 和 trailing 插槽,构建功能完整的提示组件。trailing 可放置关闭按钮或其他操作。
Preview
Code
Loading...
尺寸
通过 size 调整 Alert 的字号与间距,从 xs 到 2xl 共 6 个尺寸。
| 尺寸 | 字号 | 内间距 | 适用场景 |
|---|---|---|---|
xs | 10px | px-2 py-1.75 | 紧凑嵌套、辅助信息 |
sm | 12px | px-3 py-2.5 | 侧边栏、次级面板 |
md | 14px | px-4 py-3 | 常规场景(默认) |
lg | 16px | px-5 py-3.5 | 强调内容、重要通知 |
xl | 18px | px-6 py-4 | 突出信息面板 |
2xl | 20px | px-7 py-4.5 | 首屏公告、大幅展示 |
Preview
Code
Loading...
API
Alert
通用属性参考:支持原生 div 元素的所有属性。
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| color | 主题颜色 | 'primary' | 'destructive' | 'success' | 'warning' | 'info' | 'carbon' | 'secondary' | 'accent' | 'primary' |
| variant | 视觉样式 | 'solid' | 'pure' | 'outline' | 'soft' | 'ghost' | 'ghost' |
| size | 尺寸,影响字号与间距 | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'md' |
| title | 标题文本 | ReactNode | - |
| description | 描述文本,显示在标题下方 | ReactNode | - |
| icon | 图标,显示在 Alert 起始位置 | ReactNode | - |
| leading | 前置插槽,位于图标之前 | ReactNode | - |
| trailing | 后置插槽,位于内容区之后 | ReactNode | - |
| classNames | 各 slot 的自定义 class(root / wrapper / title / description / icon / close / action) | AlertClassNames | - |
| titleProps | 传递给 AlertTitle 的额外 props | AlertTitleProps | - |
| descriptionProps | 传递给 AlertDescription 的额外 props | AlertDescriptionProps | - |
| wrapperProps | 传递给 AlertWrapper 的额外 props | AlertWrapperProps | - |
类型
AlertClassNames
各 slot 的自定义 class,用于精细化控制 Alert 各部分的样式。
| 字段 | 类型 | 说明 |
|---|---|---|
| root | ClassValue | 根容器的 class。 |
| wrapper | ClassValue | 内容包裹区的 class。 |
| title | ClassValue | 标题的 class。 |
| description | ClassValue | 描述文本的 class。 |
| icon | ClassValue | 图标的 class。 |
| close | ClassValue | 关闭按钮的 class。 |
| action | ClassValue | 操作区域的 class。 |
AlertTitleProps
标题子组件的属性,继承原生 div 元素的所有属性。
| 字段 | 类型 | 说明 |
|---|---|---|
| className | ClassValue | 自定义 class。 |
| size | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 尺寸,影响标题字号。 |
AlertDescriptionProps
描述子组件的属性,继承原生 div 元素的所有属性。
| 字段 | 类型 | 说明 |
|---|---|---|
| className | ClassValue | 自定义 class。 |
| size | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 尺寸,影响描述字号。 |
AlertWrapperProps
内容包裹区子组件的属性,继承原生 div 元素的所有属性。
| 字段 | 类型 | 说明 |
|---|---|---|
| className | ClassValue | 自定义 class。 |
| size | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 尺寸,影响内容区间距。 |