Material Design 质感设计(Material Design)
Material Design is Google's physics-based design language: UIs are digital paper layered along a z-axis, each surface resting at a measured elevation that casts a soft shadow, the main action hovering as a circular FAB, every touch answered with an ink ripple. Bold brand color, white cards, and Roboto type align to an 8dp grid, and motion expresses hierarchy. Shipped with Android 5.0 in 2014, it became Android's default look — the systematic rebuttal to flat design's shadowless austerity.
质感设计是 Google 基于物理隐喻的设计语言:界面是沿 z 轴叠放的数字纸张,每个表面停在一个可测量的 elevation 上、投下与高度对应的柔和阴影,主操作悬浮成一枚圆形 FAB,每次点按都用墨涟漪回应。大胆的品牌色、白色卡片和 Roboto 字体对齐在 8dp 网格上,动效负责表达层级。2014 年随 Android 5.0 发布,从此成为 Android 的默认观感 —— 对扁平设计「零阴影」美学的一次系统化回应。
Scope: Covers Google's design language across its generations — 2014's paper-and-ink system, 2018 Material Theming, and 2021's Material You. The generic 'flat with one soft shadow' SaaS look it inspired is not this entry: without the elevation scale, the FAB, and ripple physics, that is just Flat Design 2.0.
范围:涵盖 Google 这套设计语言的各代 —— 2014 年的纸墨体系、2018 年的 Material Theming、2021 年的 Material You。被它带火的那种「扁平加一层柔影」通用 SaaS 观感不在本条:没有 elevation 标尺、FAB 和涟漪物理,那只是 Flat Design 2.0。
标本可交互 —— 点点看。Specimen is live — try it.
If you called it…如果你管它叫……
Full style DNA完整风格 DNA
-
Stepped z-axis elevation分级的 z 轴 elevation depth defining定义特征
Every surface rests at a measured height — 2dp cards, 4dp app bars, 6dp FABs, 8dp raised menus, 16dp drawers — and the soft shadow beneath it encodes exactly that height; press, and the shadow grows as the surface lifts toward you.
每个表面停在一个可测量的高度上 —— 2dp 卡片、4dp 应用栏、6dp FAB、8dp 弹出菜单、16dp 抽屉 —— 底下的柔和阴影精确编码了这个高度;按下时表面抬起,阴影随之变大。
-
Layered digital paper叠放的数字纸张 surface defining定义特征
The UI is sheets of paper sliding over each other: white cards with crisp 2–4px corners floating on a light gray ground, their edges cut by shadow rather than by borders.
界面就是互相滑过的纸张:白色卡片带着利落的 2–4px 圆角浮在浅灰底上,边缘靠阴影「裁」出来,而不是靠描边。
-
Floating action button悬浮操作按钮(FAB) geometry defining定义特征
One circular button (56dp diameter, 6dp elevation) in the accent color hovers above the content — the screen's single promoted action, often straddling the seam between header and content.
一枚圆形按钮(直径 56dp、6dp elevation)用强调色悬浮在内容之上 —— 它是全屏唯一被主推的操作,常常骑在头部与内容的接缝上。
-
Ink ripple touch feedback墨涟漪触控反馈 motion defining定义特征
Touch answers with a ripple of ink spreading from the exact contact point across the surface — feedback is rendered as a physical event, not a hover-color swap.
点按的回应是一滴墨从接触点向整个表面荡开的涟漪 —— 反馈被渲染成一次物理事件,而不是换个 hover 颜色。
-
Bold primary, hot accent大胆主色 + 高亮强调色 color defining定义特征
A saturated primary (Indigo 500 #3F51B5 class) owns bars and large areas; a contrasting accent (Pink A200 #FF4081 class) is reserved for the FAB and key controls against white cards.
饱和主色(Indigo 500 #3F51B5 这一档)占据应用栏和大面积区域;对比强烈的强调色(Pink A200 #FF4081 这一档)只留给 FAB 和关键控件,衬在白色卡片上。
-
Motion explains hierarchy表达层级的动效 motion supporting辅助特征
Transitions run 200–300ms on the standard curve cubic-bezier(0.4, 0, 0.2, 1); new surfaces grow out of the element that spawned them, so animation shows cause, not decoration.
过渡跑 200–300ms 的标准曲线 cubic-bezier(0.4, 0, 0.2, 1);新表面从催生它的那个元素里长出来,动效表达的是因果,不是装饰。
-
8dp square grid8dp 方形网格 layout supporting辅助特征
Components align to an 8dp baseline grid — spacing in 8/16/24px multiples, 16px screen margins — so unrelated screens share the same rhythm.
组件对齐到 8dp 基线网格 —— 间距取 8/16/24px 的倍数,屏幕边距 16px —— 互不相干的页面也共享同一套节奏。
-
Shadowless color blocks无阴影色块 depth avoid避免
Pure 2D fills where hierarchy comes from color alone — zero elevation, zero ripple physics — is Flat Design; Material's entire point is the restored, measurable z-axis.
纯 2D 填充、层级只靠颜色 —— 零 elevation、零涟漪物理 —— 那是扁平设计;质感设计的全部意义就在于那条被恢复、可测量的 z 轴。
Often confused with: Flat Design最容易混淆:扁平设计
Material Design质感设计(Material Design)
Flat Design扁平设计
This is Material Design because depth is restored as a physics system — every surface sits at a measured z-axis elevation casting a shadow that encodes its height, and motion expresses where elements come from.
这是质感设计,因为纵深被恢复成了一套物理系统 —— 每个表面在 z 轴上都有一个可测量的 elevation,投下编码其高度的阴影,动效则表达元素从哪里来。
It would become Flat Design if the z-axis were collapsed back to zero — shadows deleted, the FAB flattened into a solid color block, hierarchy left to color and type alone.
如果把 z 轴重新压回零 —— 删掉阴影、FAB 拍扁成色块、层级全交给颜色和字体 —— 就变成扁平设计了。
In code — optional starting points代码写法 —— 可选起点
The workhorse: 2dp resting card
border-radius: 2px; background: #fff; box-shadow: 0 2px 2px rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.2), 0 1px 5px rgba(0,0,0,.12);
FAB: 6dp resting, standard motion curve
border-radius: 50%; background: #FF4081; box-shadow: 0 6px 10px rgba(0,0,0,.14), 0 1px 18px rgba(0,0,0,.12), 0 3px 5px -1px rgba(0,0,0,.2); transition: box-shadow .28s cubic-bezier(.4, 0, .2, 1);
Same construction as utilities
bg-white rounded-sm shadow-[0_2px_2px_rgba(0,0,0,.14),0_3px_1px_-2px_rgba(0,0,0,.2),0_1px_5px_rgba(0,0,0,.12)] /* card */ + rounded-full bg-[#FF4081] w-14 h-14 shadow-[0_6px_10px_rgba(0,0,0,.14),0_1px_18px_rgba(0,0,0,.12),0_3px_5px_-1px_rgba(0,0,0,.2)] /* fab */
Style brief — paste into your agent风格 Brief —— 粘贴给你的代理
Build the surface in classic Material Design (2014 paper-and-ink generation). Canvas: light gray #FAFAFA ground, white #FFFFFF cards floating on a stepped dp elevation scale — 2dp card: box-shadow 0 2px 2px rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.2), 0 1px 5px rgba(0,0,0,.12); 8dp raised: 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12), 0 5px 5px -3px rgba(0,0,0,.2). Palette: primary Indigo 500 #3F51B5 for bars and large areas, accent Pink A200 #FF4081 for the FAB and key controls; text #212121 / #757575. Type: Roboto (fallback system sans), medium titles. Geometry: cards 2–4px radius; one circular FAB (56px, 6dp, lifts to 12dp pressed) in the accent. Interaction: ink ripples spread from the touch point; transitions 200–300ms cubic-bezier(0.4, 0, 0.2, 1), surfaces growing from their parent. Layout on an 8dp grid — 8/16/24px spacing. Do not drift into Flat Design: elevation shadows, the FAB, and ripples are mandatory — hierarchy by color alone with zero shadows is the neighbor style. Keep text on accent fills at 4.5:1 and honor prefers-reduced-motion.
用经典质感设计(2014 年纸墨一代)创建这个界面。画布:浅灰 #FAFAFA 底,白色 #FFFFFF 卡片按分级 dp elevation 标尺浮起 —— 2dp 卡片:box-shadow 0 2px 2px rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.2), 0 1px 5px rgba(0,0,0,.12);8dp 抬起:0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12), 0 5px 5px -3px rgba(0,0,0,.2)。配色:主色 Indigo 500 #3F51B5 给应用栏和大面积区域,强调色 Pink A200 #FF4081 给 FAB 和关键控件;文字 #212121 / #757575。字体:Roboto(回退系统无衬线),标题用 medium 字重。几何:卡片 2–4px 圆角;一枚圆形 FAB(56px、6dp、按下抬到 12dp),用强调色。交互:每个控件上的墨涟漪从触点荡开;过渡 200–300ms cubic-bezier(0.4, 0, 0.2, 1),表面从父元素里长出来。布局对齐 8dp 网格 —— 间距取 8/16/24px。不要滑向扁平设计:elevation 阴影、FAB 和涟漪都是必需品 —— 零阴影、只靠颜色分层级的是隔壁风格。强调色填充上的文字保持 4.5:1 对比度,并响应 prefers-reduced-motion。
Accessibility & misuse可访问性与误用
Elevation alone is a weak affordance: a white card on a #FAFAFA ground can fail the 3:1 boundary ratio for controls, and shadows vanish entirely in forced-colors mode — interactive elements must read as interactive by color, label, and shape, not by lift alone.
只靠 elevation 是微弱的可供性:#FAFAFA 底上的白色卡片可能过不了控件边界的 3:1 对比,而且在 forced-colors 模式下阴影会整个消失 —— 可交互元素必须靠颜色、文字和形状认出「能点」,不能只靠浮起。
White ink on hot accent colors is the classic trap: white on Pink A200 #FF4081 measures roughly 3.3:1 — acceptable for the FAB's icon, too weak for text; white on Indigo 500 #3F51B5 passes at about 6.9:1. Check every pair against 4.5:1, or step down to a 700 shade.
强调色上压白字是经典翻车点:白字配 Pink A200 #FF4081 实测约 3.3:1 —— 给 FAB 图标可以,给正文太弱;白字配 Indigo 500 #3F51B5 约 6.9:1 能过。每一对颜色都按 4.5:1 检查,不行就降一档用 700 色号。
Motion is load-bearing here — surfaces grow and travel to explain where things came from — so prefers-reduced-motion needs a real fallback: replace growing and traveling transitions with instant cuts or simple crossfades, and drop the ripple animation.
动效在这个风格里是承重墙 —— 表面靠生长和移动解释自己从哪来 —— 所以 prefers-reduced-motion 需要真正的降级方案:把生长、位移的过渡换成瞬切或简单淡入淡出,并关掉涟漪动画。
Origin起源
Unveiled by Google at its I/O conference in June 2014 — led by design VP Matías Duarte and developed under the internal codename Quantum Paper — and shipped that year with Android 5.0 Lollipop as the company's first unified cross-platform design language. Its paper-and-ink metaphor and the Roboto typeface (designed by Christian Robertson) became the visual identity of Android; Google extended the system with Material Theming at I/O 2018 and with the wallpaper-tinted, personalized Material You alongside Android 12 in 2021.
2014 年 6 月由 Google 在 I/O 大会上发布 —— 由设计副总裁 Matías Duarte 主导,内部代号 Quantum Paper —— 同年随 Android 5.0 Lollipop 出厂,成为该公司首个跨平台统一设计语言。纸墨隐喻和 Roboto 字体(Christian Robertson 设计)从此成为 Android 的视觉身份;Google 在 I/O 2018 扩展出 Material Theming,2021 年又随 Android 12 带来能从壁纸取色的个性化 Material You。