Skip to content

材质、动效、图标与图像 ​

材质与圆角 ​

半透明的模糊材质在不遮挡内容的前提下为界面分层;连续的圆角与同心规则让形状保持柔和一致。

模糊材质 — 材质随阴影高度增厚。在其上叠加 saturate 以保持背景颜色鲜活。

材质模糊用途
Ultra Thin8微妙的覆盖层
Thin16浮层
Regular24导航栏
Thick40底部弹层

backdrop-filter: saturate(180%) blur(<n>px)。→ 组件 Material(thickness="ultraThin|thin|regular|thick")。

渐进模糊 — 模糊强度沿一个方向平滑递增,使内容溶入栏的边缘,而不是在一条硬边线上戛然而止。常见于底部标签栏和顶部导航。→ 带 progressive 的 Material。

圆角 — --radius-pill 980(按钮)、--radius-card 18、--radius-modal/--radius-sheet 20、--radius-input/--radius-inner 10、--radius-image 14。同心规则:内圆角 = 外圆角 − 内边距。

Liquid Glass(2025) ​

一种半透明的动态材质,带有实时折射与镜面高光;它会拾取其后内容的颜色与光线,让悬浮控件读起来像漂浮在 UI 之上的一片流动玻璃。→ 组件 LiquidGlass。

结构剖析

  • 半透明 — 白色 α 0.12 → 0.34(渐变)

  • 模糊 + 重新着色 — blur(8px) saturate(180%) brightness(1.06)

  • 镜面高光 — inset 0 1px 0 rgba(255,255,255,.9)

  • 边缘 + 阴影 — 1px 亮色内边缘 · 柔和投影 0 14px 44px

  • ✓ DO — 仅用于悬浮控件层(导航、工具栏、浮层);确保玻璃上的文本对比度达标;必要时叠加一层压暗底衬。

  • ✕ DON'T — 不要玻璃叠玻璃;不要全屏玻璃(会丢失层级);不要在玻璃上放低对比度文本。

动效 ​

动效是有目的的:它解释事物从何而来、向何而去,并保持上下文。曲线偏向 ease-out;时长短促。

曲线cubic-bezier时长用途
Standard.4, 0, .2, 1300ms页面内过渡
Enter0, 0, .2, 1250ms元素出现(ease-out)
Exit.4, 0, 1, 1200ms元素离开(ease-in)
Emphasized.2, 0, 0, 1500ms模态框、大幅位移

令牌:--ease-standard、--ease-enter、--ease-exit、--ease-emphasized;--dur-*。

  • ✓ DO — 短促、ease-out、有方向感;尊重"减弱动效"并提供降级路径。
  • ✕ DON'T — 不要线性缓动,日常过渡不要超过 500ms,不要为了动效而动效。

图标 ​

统一的描边宽度、视觉重量和圆角。图标绘制在 24×24 的关键线栅格上,2px 描边、圆角端点——跨平台保持一致,不使用 emoji。

  • 关键线栅格 — 所有图标都在 24×24 内构图,对齐到圆形 / 方形 / 横纵矩形关键线,以获得一致的视觉质量。
  • 光学尺寸 — 一套尺寸阶梯;描边宽度在各尺寸下保持光学一致。
  • ✓ DO — 统一描边与圆角,光学对齐到栅格,视觉重量一致。
  • ✕ DON'T — 不要在同一套图标中混用描边与填充;不要任意缩放导致描边宽度漂移。

在组件中,图标为内联 SVG:viewBox="0 0 24 24"、stroke="currentColor"、stroke-width="2"、圆角端点/连接。

图像 ​

真实、克制、光线一致。优先使用摄影而非插画。固定比例和圆角;当文本叠加时确保对比度。

  • 比例 — 16:9(主视觉)/ 4:3 / 1:1 / 3:4
  • 圆角 — 12–16,与卡片协调
  • 叠层 — 在叠加文本下方加一层约 40% 的渐变压暗层
  • ✓ DO — 统一的光线与色温,主体居中并留有呼吸空间,跨页面视觉一致。
  • ✕ DON'T — 不要混用风格不同的素材,不要过度滤镜,不要把深色文字压在低对比度图像上。

基于 MIT 许可发布。