LOG · 日志
oxide-ui
oxide-ui
给需要高密度、硬边缘控制界面的桌面工具提供的 egui UI 基座:定制氧化铁暗色调色板、强制 CJK 字体后备、零圆角硬边框与抗羽化 1 物理像素锐化。
状态:可用(v0.35 适配,组件与调色板基座已就绪;无外部消费者);入口:cargo run --example probe(度量探针);仓库:本地工程(未配置远程 Git)
本质
把 egui 的默认圆角软边控件收敛为硬朗紧凑氧化铁质感与 CJK 完备排版的 UI 样式库。
选型
基于 egui / eframe 的纯 Rust 静态样式配置库,无需额外渲染引擎,作为子 crate 或路径依赖引入。
- 语言与运行时
- Rust 1.80+ (2021 Edition)
- GUI 框架
- egui 0.35
- eframe 0.35
- 字体系统
- 系统 CJK 字体自动装载器(优先思源黑体/微软雅黑)
功能
- 氧化铁暗色调色板:沥青黑底(
#14110E)、骨白字(#E4DCCE,对比度 13.8:1)、铁锈红(#B4573A)与铜绿(#5F9086)。 - 像素级硬化抗羽化:关闭 feathering,1pt 描边严格对应物理屏幕 1 像素硬边,消除半透明脏边。
- 极限紧凑布局:控件高度从原生 18pt 压至 14–16pt(以正文行高为底线,紧凑不裁字)。
- 一键装载与即时回退:提供
oxide_ui::setup(ctx)单行初始化与快照切回原生样式 A/B 对比。 - 专属硬边组件:
hard_button、primary_button、hard_frame、badge。 - 未完成:SVG 矢量图标的一体化硬边栅格化管道。
启动流程
cargo check # 语法检查
cargo test # 单元测试
cargo run --example probe # 运行控件尺寸与排版微距探针
在外部工程中引入:
[dependencies]
oxide-ui = { path = "../oxide-ui" }
egui = "0.35"
eframe = "0.35"
边界与已知问题
- 架构假设:纯客户端样式基座,不持有全局状态,所有样式注入到
egui::Context。 - 字体依赖:系统若完全缺失 CJK 字体,汉字将无法渲染(需在目标机安装思源黑体或 Noto Sans CJK)。
- 版本绑定:严格绑定
egui 0.35的 Visuals 与 Style API,低版本 egui 无法直接编译。
文档索引
- src/palette.rs — 颜色 Token 与对比度常量表
- src/style.rs — 控件尺寸与栅格硬化逻辑
- src/fonts.rs — 系统 CJK 字体扫描与装载器
- examples/probe.rs — 控件高度与像素跨度对比测试