UI Design System
build dev

Alert

在内容上下文中持续显示提示。中文惯用名:警告提示。
稳定本期新增已接入

元信息

字段值
规范 IDcomponent.alert
名称Alert
二级分类反馈(feedback)
用途在内容上下文中持续显示提示
描述中文惯用名:警告提示。

预览

静态结构:根节点 <div data-slot="alert" role="alert"> 为两列网格(grid-cols-[0_1fr],带图标时经 has-[>svg] 让出图标列),border + rounded-lg + 语义色边框与文字(success / warning / info 读语义令牌,error 映射 vendored destructive);message 渲染标题行(data-slot="alert-title",font-medium),description 渲染说明行(data-slot="alert-description",text-muted-foreground);showIcon 或 icon 提供时前置 16px 图标(variant 映射 check-circle / info / warning / x-circle)。

DSL 结构

DslNode
{
  "type": "Alert",
  "props": {
    "variant": "success",
    "showIcon": true,
    "message": "保存成功",
    "description": "所有更改已同步至云端。"
  }
}

何时用

何时使用

  • 在内容上下文中持续显示提示:表单顶部、区块内的常驻说明,用户需要时它仍在原地(不自动消失)。
  • 语义明确的四态提示:success / info / warning / error,用图标与语义色区分轻重。
  • 需要标题 + 补充说明的静态提示:message 概括结论,description 展开原因。

何时不用

  • 操作完成后的瞬时反馈:使用 Message(自动消失,不占版面)。
  • 需要标题 + 正文、停留更久或可关闭的系统通知:使用 Notification。
  • 需要用户确认或处理后才能继续的阻断提示:使用 Dialog;Alert 无交互区。
  • 需要用户主动关闭的强提醒:使用 Notification,Alert 只做就地陈述。

变体

变体视觉形态适用场景
info 信息(默认)info 图标 + info 语义色边框文字中性说明、版本更新提示;variant 缺省即 info
success 成功check-circle 图标 + success 语义色操作成功后的就地确认(如「保存成功」)
warning 警告warning 图标 + warning 语义色配额将满、配置即将过期等需留意但不阻断的提示
error 错误x-circle 图标 + destructive 语义色提交失败、校验不通过等阻断性说明
仅标题 / 标题 + 说明省略 description 仅一行;或 message + description 两行一句话提示用仅标题;需要展开原因时补说明
自定义图标icon 指定 Icon 白名单图标名语义需更具体时替代默认四态图标(如「锁」「时钟」)

API 属性

属性类型默认值说明
messagestring—提示主文案,渲染为 AlertTitle
descriptionstring—辅助说明文案,渲染为 AlertDescription
variant`'success''info''warning'
showIconbooleanfalse是否显示图标;true 时按 variant 显示默认图标(check-circle / info / warning / x-circle)
iconstring—自定义图标名(Icon 白名单,kebab-case / PascalCase 均可);提供时隐含 showIcon
className / stylestring / CSSProperties—通用:根节点 class 合并 / 内联样式

使用规范

  • 标题写结论、说明写细节:message 一句话说清结果,description 补充原因或下一步。
  • 语义色含义固定:error 只用于阻断性问题,warning 用于可继续但需留意,避免同页语义漂移。
  • 图标仅强化识别、不替代文案:showIcon 打开时正文不必再写「错误:」之类的冗余前缀。
  • Alert 常驻不自动消失:内容已处理完的提示要及时从数据源移除,避免陈旧提示长期占版。
  • 与 Message / Notification 的分工:操作反馈用 Message(自动消失),系统通知用 Notification,常驻说明用 Alert。

正例

  • ✓ 表单顶部常驻校验失败说明:variant=error、message「提交失败」、description 列出未通过字段。
  • ✓ 配额提醒:variant=warning、message「本月 API 调用已达 90%」,常驻到配额恢复。
  • ✓ 页面内版本公告:variant=info、message + description 说明变更内容与影响范围。

反例

  • ✕ 用 Alert 做「保存成功」这类瞬时反馈(Alert 会一直占着版面,应使用 Message)。
  • ✕ error 与 warning 混用表达同一含义,削弱语义色的预警效果。
  • ✕ 把需要用户确认的操作写进 Alert(Alert 无按钮与交互,应使用 Popconfirm / Dialog)。

Design Token 映射

不适用:组件 tokenRefs 为空:样式 Token 数据尚未接入,三层映射(Primitive → Semantic → Component)待样式 Token 接入后回填。