Material Color Utilities
Rust 实现的 Material Design 3 颜色生成工具库,提供 HCT 颜色空间和动态主题系统。
快速开始
[]
= "0.1"
# 可选:启用 iced 框架支持
= { = "0.1", = ["iced"] }
基本用法
use generate_theme_from_color;
// 生成主题
let theme = generate_theme_from_color?;
let light_scheme = theme.schemes.get.unwrap;
// 获取颜色(多种格式)
let primary_argb = light_scheme.get_argb.unwrap; // u32 ARGB
let = light_scheme.get_rgb.unwrap; // RGB 元组
let rgba = light_scheme.get_rgba.unwrap; // [u8; 4]
// 导出 JSON
let json = to_string_pretty?;
iced 框架集成
// 启用 features = ["iced"]
let primary = light_scheme.get_iced.unwrap;
container
.style
可用颜色角色
主色: primary, onPrimary, primaryContainer, onPrimaryContainer
次要色: secondary, onSecondary, secondaryContainer, onSecondaryContainer
第三色: tertiary, onTertiary, tertiaryContainer, onTertiaryContainer
表面色: surface, onSurface, surfaceVariant, onSurfaceVariant
容器色: surfaceContainer, surfaceContainerLow, surfaceContainerHigh, ...
其他: error, outline, shadow, scrim, inverseSurface, ...
架构设计
项目采用双层数据结构设计:
- 核心层:
MaterialTheme使用 u32 ARGB 格式存储,提供极致性能 - 序列化层:
MaterialThemeJson用于 JSON 导入/导出
这种设计确保内部操作零开销,同时保持灵活的数据交换能力。
License
MIT License - 详见 LICENSE 文件