跳到主要内容
界面图谱Interface Atlas
☰
EN
基础Borders / Foundation

边框与描边

Borders & Strokes

别名:边框描边线框边界线给元素加个框点击时那圈高亮borderoutlinering

这是什么

用线条勾出元素的边界与状态:border 占据盒模型空间、outline 画在盒外不挤动布局、box-shadow 的 ring 用透明阴影描一圈。 普通态用低对比 border 静默分界,悬停加深、聚焦用 outline、报错换色;三者各司其职,边界才既清楚又不抖动。

交互实验室

试一试,再决定怎么用

正在加载实验室…

✓ 适用场景

  • 输入框、卡片、按钮需要用细线勾出可点区域
  • 悬停、聚焦、报错需要可感知但不重排布局的状态差
  • 扁平风格里没有投影,靠描边区分相邻表面

✕ 不适用场景

  • 用粗彩色边框装饰每个区块,页面像被框满的表格
  • 在 border 与 outline 之间反复切换同一元素,宽度突跳
  • 拿描边替代留白和分隔线来组织信息层级

常见形式

实体边框

Solid border

计入盒模型尺寸,稳定但会占位;配 box-sizing: border-box 不撑破容器

轮廓描边

Outline

画在盒外,可 outline-offset 拉开距离,不参与布局;聚焦态首选

阴影环

Shadow ring

用 0 0 0 Npx 的 box-shadow 模拟描边,不占空间、可叠多层

实现要点

border: 1px solid var(--color-line)box-sizing: border-boxoutline: 2px solid var(--color-accent)outline-offset: 2pxbox-shadow: 0 0 0 3px var(--color-accent-soft)

全局设 box-sizing: border-box,让边框算进声明宽度,加粗描边不会把相邻元素挤走。默认态用 1px 的 --color-line 静默分界; 悬停换成 --color-line-strong;聚焦用 outline(不占位、可 offset),不要用 border 代替,否则元素会跳 2px; 报错换语义色并加一条 error 文案,别只靠颜色。需要无位描边时用 box-shadow: 0 0 0 3px var(--color-accent-soft)。

平台 API

borderoutlinebox-shadowbox-sizingborder-radius

代码里叫什么

同一控件在不同体系里的叫号——用对名字,Prompt 和检索才准。

体系名称
CSSborder
CSSoutline
Tailwind CSSborder / ring

相关概念

焦点环Focus Ring

用可见轮廓标记当前键盘焦点位置,让用户知道下一个按键会落在哪里。鼠标点击往往不需要它,但键盘与辅助技术用户必须始终看见焦点在哪,否则只能盲操作。通常用 :focus-visible 控制——键盘聚焦才显示,鼠标点击不打扰。

无障碍搭配使用
输入框Input

用一条带边框的水平输入区收集单行文本,是表单的基本单元。 占位符提示期望格式,聚焦时高亮边框引导视线,校验失败时切换错误色 并附提示文案;可内嵌前后缀图标与清除按钮,受控管理输入值。

组件搭配使用
卡片Card

用圆角边框或底色围出一块自包含内容的矩形容器,一块卡片聚合一组相关信息: 封面图、标题、摘要与操作。是内容流、仪表盘与电商列表的通用显示单元。

组件搭配使用
层级Elevation

用阴影的深浅表达元素离纸面的远近:0 贴平、1~2 浮起、3 以上成浮层。一套阴影由本影、半影、环境三层叠加而成,档位越高投影越大越淡。层级只用来表达叠放关系,不要拿它当装饰。

基础相似概念
新粗野主义Neobrutalism

用粗黑描边、高饱和撞色与生硬的偏移实心阴影构成的高对比视觉语言:元素像彩色 贴纸一样直接砸在页面上,配合夸张的圆角与醒目标签。它刻意拒绝精致与圆滑, 以"丑得理直气壮"的态度换取强烈的记忆点与年轻个性。

风格搭配使用

参考来源

Markdown 版(给 Agent) · JSON