Android Compose开发疑问:如何正确选用Material颜色体系中的颜色命名?
Android Compose 主题颜色选择指南
核心逻辑:按「角色」选颜色,而非固定色值
Compose的Material Design颜色体系核心是功能角色优先,不是记“primary对应蓝色”,而是看颜色在UI里承担的作用:
primary:应用主色调,用于按钮、选中状态、核心标题等关键交互元素onPrimary:在primary背景上显示的内容(文字/图标),保证和背景的对比度达标background:页面的基础背景色onBackground:在background上显示的常规正文内容surface:卡片、弹窗这类“浮层容器”的背景色onSurface:在surface容器上显示的内容
文本框的颜色选择示例
拿文本框场景举例:
- 输入框背景:常规输入框用
surface(和页面背景区分开的浮层感);强调型输入框可选用primaryContainer(Material 3新增的柔和主色调变体) - 输入文字:用
onSurface(因为文本框属于surface类容器);禁用状态下改用onSurfaceVariant(低对比度的弱化色) - 光标/下划线:用
primary(主色调强调交互状态)
快速上手的学习资料推荐
- 官方Material 3 Compose颜色角色文档:直接看官方整理的角色定义表格,每个颜色的适用场景列得直白,重点关注「Color roles」板块
- Compose官方示例项目:参考Jetpack Compose Samples里的表单、登录页实现,看成熟项目里的颜色搭配逻辑,直接复用比啃理论高效
- Material 3颜色生成工具:用官方颜色生成器输入主色,自动生成全套角色色,直观看到每个角色的色值和对应场景,辅助理解角色差异
内容的提问来源于stack exchange,提问作者Sebastian Lore
相关产品推荐
相关产品推荐

