跳转至

UI 平台矩阵

CCB 的 UI 由同一语义 action/view-model 层通过多条 renderer/input 路径呈现。每个 UI 修改 都必须说明实际覆盖了哪些路径。

路径

路径 构建/运行边界 应收集证据
Curses terminal cell、颜色与 keyboard terminal 类型/尺寸、locale、key path
SDL2 tiles fallback desktop renderer 与 SDL2 input/audio OS、renderer、scale、font、device
SDL3 tiles SDL3 renderer/GPU shader 与 recovery GPU/backend、artifact format、recovery
Native UI ui_adaptor、input_context、curses-compatible window resize/redraw 与 input action
Lua UI/ImGui capability-gated Lua page 与 native ImGui 集成 manifest、API v5、native fallback
Android Java HUD/touch/text input 与 SDL3 native runtime device/API、UI mode、orientation、touch

共同不变量

语义 action ID 稳定;cell/pixel coordinate 只在显式边界转换;resize 先建立 layout 再 redraw;renderer recreation 失效 GPU resource;翻译文本/font fallback 不能假设固定 byte/glyph width;新 UI 在窄尺寸仍可操作。

验证矩阵

至少覆盖 keyboard navigation、cancel/confirm、resize、窄 viewport、translation 与直接 修改路径。renderer/coordinate 修改在分支不同处需要 SDL2/SDL3 与 Android;Lua UI 还要 验证 disabled/native fallback build。

可访问性与失败证据

保持可见 focus、可理解 action name、非纯颜色状态、可读 contrast 和 keyboard 操作。 收集 route、mode、resolution/scale、locale、input device、截图/录屏,以及 stale frame、 错误坐标或 input 丢失附近首段 debug log。

生成与本地数据

screenshot、recording、renderer capture 与 local UI profile 默认是证据 artifact,除非任务 明确新增 checked fixture。没有政策审查,不要把用户 keybinding 或设备布局作为项目默认。