更新记录

1.2.0(2025-12-18) 下载此版本

  1. 新增:颜色方案缓存,
  2. 新增:颜色方案缓存相关方法

1.1.0(2025-12-17) 下载此版本

  1. 移除颜色:

    • background:旧版颜色,使用 onSurface 颜色代替
    • onBackground:旧版颜色,使用 onSurface 颜色代替
    • surfaceTintColor:命名规则与其他不一致,改为使用 surfaceTint
    • surfaceTint:此标记已不再使用,其功能/用途已被 primary 颜色所取代
  2. 新增组件相关颜色:

    • addonsPrimaryFixed
    • addonsOnPrimaryFixed
    • addonsPrimaryFixedDim
    • addonsOnPrimaryFixedVariant
    • addonsInversePrimary
    • addonsSecondaryFixed
    • addonsOnSecondaryFixed
    • addonsSecondaryFixedDim
    • addonsOnSecondaryFixedVariant
    • addonsTertiaryFixed
    • addonsOnTertiaryFixed
    • addonsTertiaryFixedDim
    • addonsOnTertiaryFixedVariant
    • addonsSurfaceBright
    • addonsSurfaceDim
    • addonsScrim
    • addonsShadow

1.0.0(2025-12-15) 下载此版本

  1. 移植 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>

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助 微信赞助
支付宝赞助 微信赞助

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。