这个项目能做什么
MaterialKolor 是一个 Compose Multiplatform 库,用于从任意种子颜色构建动态 Material Design 3 调色板。它支持 Android、iOS、JVM 桌面端以及 JavaScript/wasm,并已发布到 Maven Central,坐标为 com.materialkolor:material-kolor。
其核心思想源自 Google 的 material-color-utilities(原为 Java 专用);MaterialKolor 将其移植到 Kotlin Multiplatform,并添加了受 m3color 项目启发的 Compose 辅助工具。另一个独立构件 com.materialkolor:material-color-utilities 则提供不含 Compose 依赖的移植版本。
用法主要围绕 dynamicColorScheme() 和 rememberDynamicColorScheme(),它们接收种子颜色和深色/浅色标志,并返回 ColorScheme。PaletteStyle 参数(例如 Expressive)可调整生成的调色板,而 ColorSpec.SpecVersion.SPEC_2025 可启用更新的 Material 3 Expressive 颜色规范;默认值为 SPEC_2021。两个便捷组合函数封装了 MaterialTheme:DynamicMaterialTheme 可在配色方案之间进行动画过渡,而 DynamicMaterialExpressiveTheme 默认使用 Expressive 调色板样式和 SPEC_2025,以获得更鲜艳的效果。
除主题生成外,该库还提供颜色工具:harmonize() 用于使颜色与另一颜色协调(可选 matchSaturation 标志)、harmonizeWithPrimary()、lighten() 和 darken(),以及 isWarm()/isCold() 温度检查。它还可以通过 themeColors()、themeColor()、rememberThemeColors() 和 rememberThemeColor() 从 ImageBitmap 推导合适的种子颜色,适用于根据个人资料图片或背景图片进行主题化,但 README 指出此操作可能较慢,最好预先执行。
设置通过 Gradle 完成,可在多平台项目的公共源集中或仅 Android 项目的应用级构建文件中进行,并提供了版本目录示例。托管构建器位于 materialkolor.com,可演示该库并导出 MaterialKolor 或纯 Material 3 代码;KDoc 发布在 docs.materialkolor.com。material-color-utilities 模块采用 Apache-2.0 许可证,而项目其余部分采用 MIT 许可证。
评论
0 评分人数达到10人后显示
登录后参与讨论。