用途:这是 Warp GUI 桌面前端(app/ crate,基于 WarpUI 像素/GPU 框架)UI 代码编写准则的汇总,用于在写 UI 代码前通读,减少重复造组件、偏离设计系统或绕过共享抽象的问题。仅适用于 GUI 桌面端;不适用于无头 TUI 前端(crates/warp_tui 及 crates/warpui_core/src/elements/tui 下的 cell-grid TuiElement 库),后者有自己的组件、测试与变更验证流程,对应参考 tui-ui-guidelines、tui-testing、tui-verify-change。
主要能力:每条准则独立收录,记录一条否则会在评审中重新学到的经验。主要示例为按钮主题复用:按钮颜色来自 app/src/view_components/action_button.rs 中一组共享的 ActionButtonTheme 实现,以及 crates/ui_components/src/button/themes.rs 中对应的 Theme 实现(PrimaryTheme、SecondaryTheme、NakedTheme、DangerPrimaryTheme 等),它们编码设计系统并保持全场按钮颜色一致。
使用方式:在 UI 任务开始时通读准则并全程留意;按需判断适用性,适用则遵循;存疑时优先复用已有抽象而非新造。若涉及设置弹窗(app/src/settings_view/)的设置页、SettingsWidget 或影响设置搜索的内容,还需阅读 gui-settings-ui 技能。新准则会持续补充;若发现本可由成文规则避免的重复 UI 错误,可加入。
限制:不要自行修改共享主题,因其影响全应用所有按钮,可能静默影响其他界面;仅在用户明确确认设计系统组件本身需要改动时才修改。若确有主题不适用,应先向用户反映,而非单方面编辑或用一次性主题掩盖。需警惕的危险信号包括:新建 FooPrimaryTheme 并委托给 PrimaryTheme 只改一个方法;硬编码 ColorU::new(...) 而不用 appearance.theme() 访问器;为强制标签颜色而将 should_opt_out_of_contrast_adjustment 设为 true;以功能或视图名(FooPrimaryTheme、BarSubmitTheme)而非设计系统角色命名主题。