material-design

Google Material Design 3 实战参考。涵盖 Material You 动态色彩、排版系统、组件规格、Shape 系统、Motion 规范、Dark Theme 适配和 Jetpack Compose/Flutter 对照。适用于 Android 应用、Web 应用和跨平台应用的 UI 设计决策。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "material-design" with this command: npx skills add bingfoon/material-design

Google Material Design 3 实战参考

Material Design 3(Material You)的实战速查,覆盖色彩、排版、组件和动效。

适用场景

  • Android 应用 UI 设计(Jetpack Compose / XML Views)
  • Flutter 跨平台应用
  • Web 应用使用 Material 组件库(MUI / Angular Material)
  • 审计现有 UI 是否符合 Material 3 规范

不适用

  • macOS / iOS 原生应用(参考 apple-hig)
  • Windows 原生应用(参考 fluent-design)

1. 核心设计原则

Material 3 的三大支柱:

原则含义实践
Personal(个性化)适应用户偏好Dynamic Color 从壁纸取色
Adaptive(自适应)适应各种设备响应式布局、折叠屏支持
Expressive(表达力)丰富的视觉表达大圆角、色彩层次、motion

与 Apple HIG / Fluent 的区别

Apple:   做减法,克制,内容优先
Fluent:  融入环境(Mica/Acrylic),层次丰富
Material: 做加法,表达力强,色彩大胆,圆角更大

2. 色彩系统(Dynamic Color)

Material 3 色彩方案

M3 使用 色调调色板(Tonal Palette) 生成完整配色:

Source Color(种子色)
  → Primary Palette(主色调 13 级)
  → Secondary Palette(辅色调 13 级)
  → Tertiary Palette(第三色调 13 级)
  → Neutral Palette(中性色 13 级)
  → Neutral Variant Palette(中性变体 13 级)
  → Error Palette(错误色 13 级)

关键色槽(Key Color Roles)

角色LightDark用途
PrimaryTone 40Tone 80主要交互元素(FAB、按钮)
On PrimaryTone 100Tone 20Primary 上的文字/图标
Primary ContainerTone 90Tone 30次要强调容器
On Primary ContainerTone 10Tone 90容器上的内容
SecondaryTone 40Tone 80次要交互元素
TertiaryTone 40Tone 80对比/强调
SurfaceTone 99Tone 6页面主背景
Surface VariantTone 90Tone 30卡片/区块背景
On SurfaceTone 10Tone 90主文字
On Surface VariantTone 30Tone 80辅助文字
OutlineTone 50Tone 60边框
Outline VariantTone 80Tone 30弱边框/分隔线
Error#B3261E#F2B8B5错误状态
BackgroundTone 99Tone 6窗口背景

Dynamic Color(Material You)

Android 12+ 支持从壁纸自动提取 Source Color:

// Jetpack Compose
val colorScheme = if (dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
    dynamicLightColorScheme(context) // 或 dynamicDarkColorScheme
} else {
    lightColorScheme(primary = Purple40, ...)
}

手动生成配色

使用 Google 官方工具:


3. 排版

字体栈

Android: Roboto(系统默认)
Web:     'Roboto', system-ui, sans-serif
iOS:     SF Pro(Flutter 自动适配)

Type Scale

角色字号字重行高间距用途
Display Large57pxRegular64px-0.25px极大数字/英雄标题
Display Medium45pxRegular52px0大标题
Display Small36pxRegular44px0次大标题
Headline Large32pxRegular40px0页面标题
Headline Medium28pxRegular36px0区块标题
Headline Small24pxRegular32px0卡片标题
Title Large22pxRegular28px0Top App Bar 标题
Title Medium16pxMedium24px0.15pxTab / Navigation 标签
Title Small14pxMedium20px0.1px小标题
Body Large16pxRegular24px0.5px默认正文
Body Medium14pxRegular20px0.25px次要正文
Body Small12pxRegular16px0.4px辅助文字
Label Large14pxMedium20px0.1px按钮文字
Label Medium12pxMedium16px0.5pxBadge
Label Small11pxMedium16px0.5px时间戳

与其他平台对比

Material Body Large = 16px → Apple Body = 13px (macOS) / 17px (iOS)
Material 偏大偏宽松,Apple 偏紧凑
Material 大量用 Medium 字重,Apple 偏 Regular

4. 组件规格

按钮

类型高度圆角用途
Filled40px20px(全圆角)主要操作
Outlined40px20px次要操作
Text40px20px低优先级操作
Tonal40px20px介于 Filled 和 Outlined 之间
FAB (Mini)40px12px次要浮动操作
FAB56px16px主要浮动操作
Extended FAB56px16px带文字的 FAB
Icon Button40×40px20px图标操作

输入

控件高度圆角特征
Text Field (Filled)56px顶部 4px底部下划线
Text Field (Outlined)56px4px四周边框
Checkbox18×18px2px
Radio20×20px50%
Switch32×52px16px大尺寸拨动
Slider4px 轨道2px圆形 thumb 20px

容器

组件圆角阴影
Card (Filled)12px无(底色区分)
Card (Elevated)12pxelevation 1
Card (Outlined)12px无(边框区分)
Dialog28pxelevation 3
Bottom Sheet28px (顶部)elevation 1
Chip8px
Navigation Bar0elevation 2

触控目标

最小触控目标:48×48dp
推荐触控目标:56×56dp(FAB)
间距:至少 8dp

5. Shape 系统

M3 的圆角规则(使用 dp):

Shape 级别圆角值适用组件
None0dp
Extra Small4dpText Field, Menu
Small8dpChip, Snackbar
Medium12dpCard, Search Bar
Large16dpFAB, Navigation Drawer
Extra Large28dpDialog, Bottom Sheet
Full50%(圆形)FAB Mini, Icon Button

与其他平台对比

Material: 大圆角风格(Dialog 28dp, Button 20dp)
Apple:    中等圆角(Dialog ~12px, Button 5-7px)
Fluent:   小圆角(Dialog 8px, Button 4px)

Material 3 的圆角是三者中最大的,视觉上最柔和、最有表达力。


6. Elevation(海拔系统)

M3 使用 Surface Tint 而非纯阴影来表达层次:

LevelTint Opacity阴影用途
00%Surface 基础
15%微弱Card, Navigation Bar
28%轻微Elevated Card
311%中等FAB, Snackbar
412%较少使用
514%明显Navigation Drawer

Surface Tint 实现

/* 用 Primary 色做 overlay,opacity 按 level 递增 */
.elevation-1 {
  background: linear-gradient(
    rgba(var(--md-primary-rgb), 0.05),
    rgba(var(--md-primary-rgb), 0.05)
  ), var(--md-surface);
}

Dark 模式下 Surface Tint 更重要——阴影在深色背景上几乎不可见,用 tint 区分层次。


7. Motion(动效系统)

Duration

类型时长用途
Short 150ms选中/取消选中
Short 2100ms简单状态切换
Short 3150ms小组件出现
Short 4200ms标准交互
Medium 1250ms面板展开
Medium 2300ms标准转场
Medium 3350ms复杂转场
Medium 4400ms全屏转场
Long 1450ms强调动画
Long 2500ms复杂强调
Extra Long 1-4700-1000ms极少使用

Easing

/* Standard — 不离开屏幕的移动 */
--md-standard: cubic-bezier(0.2, 0, 0, 1);
--md-standard-decelerate: cubic-bezier(0, 0, 0, 1);
--md-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);

/* Emphasized — 更有表达力的移动 */
--md-emphasized: cubic-bezier(0.2, 0, 0, 1);
--md-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
--md-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);

转场模式

模式用途示例
Container Transform元素展开为页面卡片 → 详情页
Shared Axis同层级导航Tab 切换
Fade Through无关联页面切换Bottom Nav 切换
Fade简单出现/消失Dialog、Snackbar

8. 导航模式

按设备选择

设备推荐导航组件
手机(竖屏)底部导航Navigation Bar(3-5 项)
手机(横屏)侧边导航Navigation Rail
平板侧边导航Navigation Rail / Drawer
桌面/大屏侧边导航Navigation Drawer(常驻)
折叠屏自适应Rail(折叠)→ Drawer(展开)

Navigation Bar(底部导航)

┌───────────────────────────────────┐
│                                   │
│          Content Area             │
│                                   │
├─────┬─────┬─────┬─────┬─────────┤
│  🏠  │  🔍  │  ➕  │  💬  │  👤    │
│ Home │Search│ Add │ Chat │Profile │
└─────┴─────┴─────┴─────┴─────────┘
  • 3-5 个目的地
  • 选中项显示 label + 指示器(pill 形状)
  • 高度:80dp
  • 指示器:64×32dp,圆角 16dp

Navigation Rail(侧边窄导航)

┌──┬──────────────────────┐
│🏠│                      │
│──│                      │
│🔍│    Content Area      │
│──│                      │
│💬│                      │
│──│                      │
│⚙️│                      │
└──┴──────────────────────┘
  • 宽度:80dp
  • 可选 FAB 在顶部
  • 选中项有 pill 指示器

9. Dark Theme

M3 Dark Theme 规则

Surface: 极深灰(#1C1B1F),不是纯黑 #000000
On Surface: 极浅灰(#E6E1E5),不是纯白 #FFFFFF
原则实践
避免纯黑Surface 用 #1C1B1F(Neutral Tone 6)
减少大面积白色用 Surface Tint 代替白色卡片
降低饱和度Primary 用更亮的色调(Tone 80)
反转容器关系Light: 容器比背景浅 → Dark: 容器比背景浅(tint 更高)

与 Apple Dark Mode 对比

Apple:    深灰 #1E1E1E,偏中性
Material: 极深灰 #1C1B1F,带紫色调(从 Neutral palette 来)
Apple:    不鼓励纯黑(但 OLED 用 #000000)
Material: 明确不推荐纯黑

10. 平台差异速查

差异点Material (Android)Apple (iOS)
主强调色Dynamic Color(壁纸取色)System Blue #007AFF
正文字号16dp (Body Large)17pt (Body)
按钮圆角20dp(全圆角)无标准(偏 8-12px)
对话框圆角28dp~14px
导航底部 Navigation Bar底部 Tab Bar
返回系统返回手势/按钮左上角 Back Button
主操作FAB(浮动操作按钮)Navigation Bar Button
下拉刷新有(Pull to Refresh)
Toast/提示Snackbar(底部,可操作)Alert / Toast(中间/顶部)
触控目标48dp44pt
标题栏Top App Bar(多样式)Navigation Bar(标准)

11. Checklist

设计审计

  • 使用 M3 Color Scheme(Primary/Secondary/Tertiary + Surface 系列)
  • 按钮用全圆角(20dp radius)
  • Card 用 12dp 圆角
  • Dialog 用 28dp 圆角
  • 触控目标 ≥ 48dp
  • 排版使用 M3 Type Scale
  • Elevation 用 Surface Tint 而非纯阴影
  • 导航选对设备模式(Bar / Rail / Drawer)
  • 动画使用 M3 标准 easing

Dark Theme

  • Surface 不用纯黑(用 Neutral Tone 6)
  • On Surface 不用纯白
  • Primary 用 Tone 80(更亮)
  • Surface Tint 可见
  • 对比度 ≥ 4.5:1

Android 开发

  • 支持 Dynamic Color(Android 12+)
  • 低版本 fallback 到静态配色
  • 使用 MaterialTheme(Compose)或 Theme.Material3(XML)

来源

Material Design 3 (m3.material.io) + Material Theme Builder + Jetpack Compose 官方组件参考。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Ai Competitor Analyzer

提供AI驱动的竞争对手分析,支持批量自动处理,提升企业和专业团队分析效率与专业度。

Registry SourceRecently Updated
General

Ai Data Visualization

提供自动化AI分析与多格式批量处理,显著提升数据可视化效率,节省成本,适用企业和个人用户。

Registry SourceRecently Updated
General

Ai Cost Optimizer

提供基于预算和任务需求的AI模型成本优化方案,计算节省并指导OpenClaw配置与模型切换策略。

Registry SourceRecently Updated