(deepseek )Md设计方案标签对应的组件场景

Material Design 3(Material You)的 colorScheme 通过语义化颜色角色为组件提供系统化的配色方案。以下是 MaterialTheme.colorScheme 中核心颜色角色及其典型应用场景的详细说明:


1. 主要品牌色组

▶ primary(主品牌色)

  • 应用目标:核心交互元素
  • 典型组件 :
    • 主要按钮(Button)
    • 导航栏背景(BottomAppBar)
    • 选中标签页指示器
    • 重要图标(如 FAB)
  • 设计原则:界面中最突出的视觉焦点

▶ onPrimary(主品牌色上的内容色)

  • 应用目标 :显示在 primary 色上的内容
  • 典型组件 :
    • 主按钮文字/图标
    • 导航栏图标和文字
    • 浮动操作按钮(FAB)图标

▶ primaryContainer(主品牌容器色)

  • 应用目标:次级重要容器
  • 典型组件 :
    • 进度条背景
    • 强调标签背景
    • 中等重要程度的卡片容器

▶ onPrimaryContainer(主容器上的内容色)

  • 应用目标 :primaryContainer 上的内容
  • 典型组件 :
    • 进度条标签文字
    • 强调标签文字
    • 次级卡片内的文本

2. 次要品牌色组

▶ secondary(次要品牌色)

  • 应用目标:补充性交互元素
  • 典型组件 :
    • 次要按钮(OutlinedButton)
    • 滑块(Slider)的激活部分
    • 开关(Switch)的选中状态
    • 信息提示条(Snackbar)背景

▶ onSecondary(次要色上的内容色)

  • 应用目标 :显示在 secondary 色上的内容
  • 典型组件 :
    • 次要按钮边框/文字
    • 滑块激活状态标签
    • 开关选中状态图标

▶ secondaryContainer(次要容器色)

  • 应用目标:低强调度容器
  • 典型组件 :
    • 下拉菜单背景
    • 次级进度条
    • 非活跃标签背景

▶ onSecondaryContainer(次要容器上的内容色)

  • 应用目标 :secondaryContainer 上的内容
  • 典型组件 :
    • 下拉菜单项文字
    • 非活跃标签文字
    • 次级进度条标签

3. 表面色组

▶ surface(表面基准色)

  • 应用目标:界面容器的基底色
  • 典型组件 :
    • 卡片(Card)背景
    • 对话框(Dialog)背景
    • 导航抽屉(NavigationDrawer)背景
    • 菜单(Menu)背景

▶ onSurface(表面上的内容色)

  • 应用目标:常规文本和图标
  • 典型组件 :
    • 大部分正文文字(Text)
    • 列表项图标
    • 未激活的导航栏项

▶ surfaceVariant(表面变体色)

  • 应用目标:区分表面层级
  • 典型组件 :
    • 次级卡片背景
    • 输入框(TextField)未激活状态背景
    • 分割线(Divider)颜色

▶ onSurfaceVariant(表面变体上的内容色)

  • 应用目标:次级内容
  • 典型组件 :
    • 输入框提示文字(placeholderText)
    • 禁用状态图标
    • 低对比度文本

4. 背景与错误色

▶ background(全局背景色)

  • 应用目标:屏幕基底色
  • 典型组件 :
    • Scaffold 背景
    • 全屏容器背景

▶ onBackground(背景上的内容色)

  • 应用目标:背景上的主要内容
  • 典型组件 :
    • 大标题文字
    • 背景上的高对比度图标

▶ error(错误状态色)

  • 应用目标:错误提示相关
  • 典型组件 :
    • 错误提示文本(Text 的 color = MaterialTheme.colorScheme.error)
    • 错误边框(TextField 的 isError 状态)
    • 错误图标(如 Icons.Default.Error)

▶ onError(错误色上的内容色)

  • 应用目标 :显示在 error 色上的内容
  • 典型组件 :
    • 错误提示按钮文字
    • 错误 toast 中的关闭图标

5. 特殊状态色

▶ tertiary(第三强调色)

  • 应用目标:需要额外强调的次要元素
  • 典型组件 :
    • 徽章(Badge)背景
    • 高亮标签
    • 特殊状态指示器

▶ onTertiary(第三色上的内容色)

  • 应用目标 :tertiary 容器上的内容
  • 典型组件 :
    • 徽章文字
    • 高亮标签内的图标

▶ outline(轮廓色)

  • 应用目标:划分视觉边界
  • 典型组件 :
    • 输入框(TextField)未激活边框
    • 分割线(Divider)
    • 卡片(Card)边框

使用示例(Jetpack Compose)

kotlin 复制代码
Button(
    onClick = { /* ... */ },
    colors = ButtonDefaults.buttonColors(
        containerColor = MaterialTheme.colorScheme.primary,
        contentColor = MaterialTheme.colorScheme.onPrimary
    )
) {
    Text("主要操作")
}

Card(
    colors = CardDefaults.cardColors(
        containerColor = MaterialTheme.colorScheme.surfaceVariant
    )
) {
    Text(
        text = "次级内容",
        color = MaterialTheme.colorScheme.onSurfaceVariant
    )
}

设计原则

  1. 对比度保证 :onXxx 颜色需与对应容器保持至少 4.5:1 的对比度(WCAG AA 标准)
  2. 语义化覆盖 :通过 colorScheme 自动适配亮/暗主题,避免硬编码颜色值
  3. 层级表达 :使用 surface → surfaceVariant 的渐变表现界面深度

掌握这些颜色角色的语义,可以确保界面在保持品牌一致性的同时,符合 Material Design 的可访问性规范。

相关推荐
alexhilton2 天前
模块化Jetpack Compose架构
android·kotlin·android jetpack
hai_android2 天前
InputStage 责任链核心执行流程
android·android studio·android jetpack
传奇开心果编程4 天前
【现代声明式UI学与练】第4课 列表渲染与 key——如何高效渲染列表、key 的作用、列表重排时的状态保持
学习·flutter·react native·ui·swiftui·android jetpack
传奇开心果编程4 天前
【现代声明式UI学与练】第7课 组件通信——父传子、子传父、跨层级通信、状态提升与 Context
学习·flutter·react native·ui·swiftui·android jetpack
传奇开心果编程5 天前
【现代声明式UI学与练】第9课 性能优化——渲染优化、列表优化、内存优化、启动优化
学习·flutter·react native·ui·性能优化·swiftui·android jetpack
天空之城--7 天前
Android一周动态:Android 18首次官宣、Compose Material3 1.4转正(5趋势+5资讯)
android·人工智能·flutter·架构·android jetpack
传奇开心果编程7 天前
【现代声明式UI学与练】第1课 从命令式UI到声明式UI
学习·flutter·ui·swiftui·react·android jetpack
传奇开心果编程11 天前
【用案例学Material 3 Expressive】第1课:从一封邮件开始,感受安卓设计新语言的表现力
android·学习·ui·kotlin·android jetpack
传奇开心果编程11 天前
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向
android·学习·ui·kotlin·android jetpack
hai_android12 天前
子 View 被压小时,如何向父容器"告状"?——MEASURED_STATE_TOO_SMALL 向上传递机制
android·kotlin·android jetpack