跳到主要内容
ContainersLevel 1

Modal

模态框 / 对话框

WebMobileDesktop上手难度: 中等

点了一下之后,屏幕中间冒出一个窗口,不处理它就别想继续用后面的页面。

01

Live Demo

真的可以点
点「删除照片」,弹窗会拦住你。试试 Tab 键(焦点被困在弹窗内)和 Esc(关闭)。

你刚才看到的这个:点「删除照片」后屏幕中间弹出的小窗、写评论时从屏幕中间展开的输入框、登录注册页那个居中的表单面板。

02

它到底是什么

Modal 会「拦住」用户:底层页面变灰、不可点击、不响应滚动。它的正当用途只有两个——必须立即做决定,或者需要一个专注的输入环境。其余情况基本都能用非模态方案替代。

对话框弹窗modaldialog弹出窗口模态
03

Anatomy · 它由什么组成

  1. Scrim遮罩

    半透明黑,点击通常关闭

  2. Dialog Surface对话框

    白底,圆角 12px,max-width 480px

  3. Title标题

    写明后果而非「提示」

  4. Body内容

    不超过 3 行

  5. Actions操作区

    右对齐,取消 + 确认

  6. Close关闭

    右上角 ✕ 或按 Esc

04

When to Use

什么时候该用 / 不该用
Modal 使用场景建议
情况推荐
必须立即做决定才能继续(二次确认)用
需要一个专注的输入环境(登录、评论)用
需要打断用户注意力的严重错误用
只是想展示一条信息不用
承载多层任务(表单很长)不用

每点一次按钮就弹一个框,是最常见的体验灾难。

Modal 里再放 Modal 是设计事故——改用 Breadcrumb 或 Stepper。

05

Similar Patterns

别搞混
完整对比Dialog vs Bottom Sheet vs Drawer我需要在当前页面上弹出一层界面,用哪个?查看表格
06

怎么告诉 AI

三层 Prompt

补上组件名和具体内容

点「删除」后弹出确认 Dialog:标题写明后果,正文不超过两行,底部右对齐「取消」和红色「删除」,支持 Esc 和点击遮罩关闭。

07

不要只对 AI 说

Bad → Better

不要这样对 AI 说

点一下弹个框出来。

改成这样说

弹出确认 Dialog(role=dialog aria-modal):标题写明后果不用「提示」,正文 ≤2 行,底部右对齐「取消 + 红色删除」,Esc 和点击遮罩关闭,打开时 focus trap 并锁 body 滚动。

08

分享这张卡

社交平台友好

把这个 Pattern 做成 3:4(小红书)或 1:1(X / Reddit)的知识卡片,在浏览器里直接导出 PNG,不需要后端。