更新记录
1.2.0(2025-12-18)
下载此版本
- 新增:颜色方案缓存,
- 新增:颜色方案缓存相关方法
1.1.0(2025-12-17)
下载此版本
-
移除颜色:
- background:旧版颜色,使用 onSurface 颜色代替
- onBackground:旧版颜色,使用 onSurface 颜色代替
- surfaceTintColor:命名规则与其他不一致,改为使用 surfaceTint
- surfaceTint:此标记已不再使用,其功能/用途已被 primary 颜色所取代
-
新增组件相关颜色:
- addonsPrimaryFixed
- addonsOnPrimaryFixed
- addonsPrimaryFixedDim
- addonsOnPrimaryFixedVariant
- addonsInversePrimary
- addonsSecondaryFixed
- addonsOnSecondaryFixed
- addonsSecondaryFixedDim
- addonsOnSecondaryFixedVariant
- addonsTertiaryFixed
- addonsOnTertiaryFixed
- addonsTertiaryFixedDim
- addonsOnTertiaryFixedVariant
- addonsSurfaceBright
- addonsSurfaceDim
- addonsScrim
- addonsShadow
1.0.0(2025-12-15)
下载此版本
- 移植 Material Design 3 颜色系统,生成系列颜色。
查看更多
平台兼容性
uni-app(3.6.15)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
- |
√ |
√ |
uni-app x(3.6.15)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| √ |
√ |
√ |
√ |
√ |
√ |
其他
kh-material-color
插件说明:
移植 Material Design 的颜色插件
使用种子颜色生成一系列颜色,观感更舒适。
Material Design 颜色系统
支持的颜色:
| Key |
描述 |
| 主色 |
Primary colors |
| primary |
应用的主要品牌色,常用于按钮、选中状态等关键交互元素。 |
| onPrimary |
应用在 primary 颜色之上的文字、图标等元素,确保清晰可读。 |
| primaryContainer |
用于需要突出但面积较小的容器,如高亮标签、提示条等。 |
| onPrimaryContainer |
应用在 primaryContainer 颜色之上的文字、图标等元素。 |
| 辅助色 |
Secondary colors |
| secondary |
应用的次要品牌色,用于不那么重要的操作或作为主色的补充。 |
| onSecondary |
应用在 secondary 颜色之上的文字、图标等元素。 |
| secondaryContainer |
用于次要或中性强调的容器,如过滤按钮、弱提示区域。 |
| onSecondaryContainer |
应用在 secondaryContainer 颜色之上的文字、图标等元素。 |
| 强调色 |
Tertiary colors |
| tertiary |
用于需要特别引起注意的强调色,通常与主色、辅助色形成对比。 |
| onTertiary |
应用在 tertiary 颜色之上的文字、图标等元素。 |
| tertiaryContainer |
用于强调内容的容器,如输入框激活状态、进度指示器等。 |
| onTertiaryContainer |
应用在 tertiaryContainer 颜色之上的文字、图标等元素。 |
| 错误色 |
Error colors |
| error |
用于表示错误状态、危险操作或验证失败的元素。 |
| onError |
应用在 error 颜色之上的文字、图标等元素。 |
| errorContainer |
用于包裹错误信息的背景容器,比直接使用 error 更柔和。 |
| onErrorContainer |
应用在 errorContainer 颜色之上的文字、图标等元素。 |
| 表面色 |
Surface colors |
| surface |
大多数组件(如卡片、对话框、底部动作条)的背景颜色。 |
| onSurface |
应用在 surface 颜色之上的主要文字和图标颜色。 |
| surfaceVariant |
surface 的变体,用于区分同一层级的不同区域或表示激活状态。 |
| onSurfaceVariant |
应用在 surfaceVariant 之上的、重要性稍低的文字和图标颜色。 |
| surfaceContainerHighest |
表面容器系列中层级最高的颜色,离用户“最近”,阴影最明显。 |
| surfaceContainerHigh |
表面容器系列中层级较高的颜色。 |
| surfaceContainer |
表面容器系列中默认/标准的层级颜色。 |
| surfaceContainerLow |
表面容器系列中层级较低的颜色。 |
| surfaceContainerLowest |
表面容器系列中层级最低的颜色,通常最接近背景。 |
| inverseSurface |
在需要反转UI的部分(如顶部应用栏)使用的表面色,与常规 surface 形成对比。 |
| inverseOnSurface |
应用在 inverseSurface 颜色之上的文字、图标等元素。 |
| 轮廓色 |
Outline colors |
| outline |
用于组件边框、分割线等,以创建细微的视觉分离。 |
| outlineVariant |
对比度更低的边框或分割线颜色,用于不需要强边界的次要区域。 |
| 附加组件 - 主色 |
Add-on primary colors |
| addonsPrimaryFixed |
固定的主色,不随浅色/深色主题变化。用于需要颜色恒定的特定组件。 |
| addonsOnPrimaryFixed |
应用在 addonsPrimaryFixed 颜色之上的文字、图标等元素。 |
| addonsPrimaryFixedDim |
addonsPrimaryFixed 的暗化版本,同样不随主题变化。用于悬停、按下等状态。 |
| addonsOnPrimaryFixedVariant |
应用在 addonsPrimaryFixedDim 之上的文字、图标等元素。 |
| addonsInversePrimary |
用于显示在 inverseSurface 等深色背景上的主色元素。 |
| 附加组件 - 辅助色 |
Add-on secondary colors |
| addonsSecondaryFixed |
固定的辅助色,不随浅色/深色主题变化。 |
| addonsOnSecondaryFixed |
应用在 addonsSecondaryFixed 颜色之上的文字、图标等元素。 |
| addonsSecondaryFixedDim |
addonsSecondaryFixed 的暗化版本,不随主题变化。 |
| addonsOnSecondaryFixedVariant |
应用在 addonsSecondaryFixedDim 之上的文字、图标等元素。 |
| 附加组件 - 强调色 |
Add-on tertiary colors |
| addonsTertiaryFixed |
固定的强调色,不随浅色/深色主题变化。 |
| addonsOnTertiaryFixed |
应用在 addonsTertiaryFixed 颜色之上的文字、图标等元素。 |
| addonsTertiaryFixedDim |
addonsTertiaryFixed 的暗化版本,不随主题变化。 |
| addonsOnTertiaryFixedVariant |
应用在 addonsTertiaryFixedDim 之上的文字、图标等元素。 |
| 附加组件 - 表面色 |
Add-on surface colors |
| addonsSurfaceBright |
一个始终明亮的表面色变体,用于浅色主题下提亮,或深色主题下创建浅色卡片。 |
| addonsSurfaceDim |
一个始终较暗的表面色变体,用于深色主题下加深,或浅色主题下创建深色卡片。 |
| addonsScrim |
半透明的遮罩层颜色,用于模态对话框、抽屉栏背后,以减弱背景内容。 |
| addonsShadow |
应用于组件(如悬浮按钮、卡片)的投影颜色。 |
支持的方法
// 传入 种子颜色及是否为暗色模式 生成颜色方案
export type GenerateMaterialScheme = (options: MaterialOptions) => MaterialScheme
// 传入 种子颜色 移除 对应颜色方案缓存
export type RemoveMaterialScheme = (seedColor: string) => boolean
// 清空颜色方案缓存
export type ClearMaterialScheme = () => void
使用方法:
1. 引入插件
import { generateMaterialScheme } from '@/uni_modules/kh-material'
2. 设置 Material Design 颜色方案(可选)
// 设置 Material Design 颜色方案的种子颜色
const seedColor = ref('#6750A4')
// 是否为暗色模式
const isDark = ref(false)
3. 生成 Material Design 颜色方案
// 生成 Material Design 颜色方案
const materialScheme = generateMaterialScheme({
seedColor: seedColor.value,
isDark: isDark.value
})
// 动态计算 Material Design 颜色方案
const scheme = computed(() => {
return generateMaterialScheme({
seedColor: seedColor.value,
isDark: isDark.value
})
})
参数说明:
| 参数 |
可空 |
说明 |
| seedColor |
是 |
种子颜色,默认值为 #6750A4 |
| isDark |
是 |
暗色模式,默认值为 false |
4. 使用 Material Design 颜色方案
<!-- 使用.操作符 -->
<view :style="{ backgroundColor: scheme.surface }"></view>
<!-- 或者[""]下标 -->
<view :style="{ backgroundColor: scheme['surface'] }"></view>
支持与赞赏
如果你觉得本插件解决了你的问题,可以考虑支持作者:
| 支付宝赞助 |
微信赞助 |
 |
 |