SuperAPI AI 工具集

solidcraft-ui

设计与创作

查看项目

更新于 11-04 01:21

技能介绍

用途

solidcraft-ui 是一份针对 SolidCraft 项目 UI 层的开发技能说明,用于在 crates/ui-egui 中新增或修改对话框、面板、菜单、浮层、画布、相机输入、滑块、图标和颜色时遵循统一规范。其核心思路是保持 UI 层“薄”:UI 只读取引擎状态,并通过 app.run(id, params) 或 app.start(id) 执行动作;对话框被定义为构建命令参数的表单。

主要能力与约束

统一外层容器

所有面板、浮动面板、菜单、浮层和平台 UI 窗口都应通过 ui_kit::Container 实现,可直接使用,也可经由 Panel、Window、Confirm 和 Menu 使用。需要声明语义化的 Surface;工作区面板使用其共享布局策略和外框。系统窗口与报告窗口使用 ui_kit::Window,其底层宿主构建器为 kit 私有。功能模块中不得构造原始 egui 宿主、外层弹出框、窗口框架或阴影。cargo xtask ui-containers 会递归检查当前及未来所有 crate 和应用的源码与示例,并在快速仓库 CI 任务与 cargo xtask ci 中运行,不允许调用方豁免;清单及合法内容与原生例外记录在 docs/ui-container-audit.md。

控件与颜色

颜色、字体、尺寸和间距均来自 theme::Tokens(crates/ui-egui/src/theme.rs),功能代码中不得出现字面颜色。滑块只能通过 ui_kit::slider 使用。表单行使用 crate::ui_kit(crates/ui-egui/src/ui_kit/)中的 row、expr_row、text_row、choice_row 和 count_row。确认操作使用 ui_kit::Confirm,旧的 Prompt 元素已移除。

相机控制

每个带相机的页面或画布(视口、渲染预览、平面图案或绘图页面)都调用 navigation::handle(crates/ui-egui/src/navigation.rs)并传入对应的 NavCaps;平面 2D 页面关闭轨道旋转。禁止根据拖拽、滚轮或捏合手势手写相机输入;若页面这样做,hand_rolled_camera_input_is_rejected 会失败。

图标

命令图标为原创 SVG 源文件,通过 crates/ui-egui/src/icon_svg.rs 编译。处理图标前需先阅读 assets/AGENTS.md、assets/icons/ui/AGENTS.md 和 assets/icons/ui/STYLE_GUIDE.md,添加 ATTRIBUTION.md 行,并运行 cargo xtask icons 与 cargo xtask assets。另参见 skills/solidcraft-ground-rules/SKILL.md。

文本

所有标签、工具提示和消息都通过文本目录管理,详见 skills/solidcraft-ui-text/SKILL.md。新增默认开启的行为参见 skills/solidcraft-preferences/SKILL.md。

使用方式

该技能以文档与检查任务的形式使用:开发者在修改 UI 前阅读对应说明,按规范实现后运行 cargo xtask 检查任务。验证结果时,运行应用、操作并查看截图(参见 skills/solidcraft-agent-tools/SKILL.md);UI 场景测试位于 crates/ui-egui/tests/scenarios/*.json,覆盖点击操作,参见 skills/solidcraft-tests/SKILL.md。耗时较长的工作不得阻塞窗口,参见 skills/solidcraft-performance/SKILL.md。

适用场景

适用于 SolidCraft 项目内 crates/ui-egui 的 UI 开发,包括对话框、面板、菜单、浮层、画布相机输入、滑块、图标和颜色相关的增改工作。

限制

该技能面向 SolidCraft 项目内部代码库,依赖其 crate 结构、ui_kit、theme::Tokens 与 cargo xtask 工具链。其规则属于项目约定,不一定适用于其他项目。具体收费、价格、平台支持等信息暂未提供。