fix(app-iced): 复审 r1 的四条 p2 + 三条小事(M250)
- p2-1 删死状态:`Accent::scheme` 字段 / `scheme()` 取值口 / `set_flavor` 重派生全仓零读者,
且注释谎称「Ui 的唯一入口」。色值 `color` 与深浅无关,`Ui` 由 `rebuild_ui` 重算,
所以整条删掉,`new/set/reset` 也不再收 `flavor`
- p2-2 规则只定义一次:新增 `theme::tokens(flavor, accent, scheme, families) -> (Ui, Colors)`,
`App::rebuild_ui` 与出图 harness 都调它(harness 传 scheme=None,如实说明不覆盖 D38 分支);
README 改成「同一条规则、不是同一个调用点」
- p2-3 逐键不闪红:`Accent` 区分「显示中的错」与 `pending`。只有**不可能再变合法**(非 hex / 超 6 位)
才立刻亮;位数不足先挂 pending,等 `commit()`(点到别的外观控件)或配置读回才亮
- p2-4 订正 `app/state.rs:151` 那句反话(强调色现在是 UI 写入字段)
- 小事:hint 文案改「中性表面与错误色不随强调色变」;`Digit{ch}` 里的不可见字符显示成 U+XXXX;
8 颗色块补 tooltip(hex 原文,Overlay 底)
判据:新用例 `accent_errors_only_appear_when_they_are_actionable` 覆盖「输入中不亮 / 提交后亮 /
配置读回立刻亮」三态;gallery 出图逐字节与重构前相同(规则搬迁没改像素)。
This commit is contained in:
1 parent
c609827c49
commit
14282f3325
10 files changed
+261
-78
No files matched your search
@@ -18,7 +18,6 @@ use crate::fonts;
|
||||
use crate::pages::appearance;
|
||||
use crate::probe::{self, Probe};
|
||||
use crate::renderer;
|
||||
use crate::theme::Ui;
|
||||
|
||||
use super::{demo_model, Harness, Message, Request, CAPTURE_POSITION};
|
||||
|
||||
@@ -153,14 +152,18 @@ pub fn run(request: Request) -> Result<(), String> {
|
||||
if boot.screenshot.is_some() {
|
||||
model.forced = Some(Interaction::Enabled);
|
||||
}
|
||||
// M250:gallery 出图也要能看见强调色。**规则不在这里抄** —— 调产品用的同一个
|
||||
// `theme::tokens`(优先级只定义一次)。如实补一句:harness 不建 `App`,所以这里
|
||||
// 没有 D38 取色方案(第三个实参恒 `None`),出图**不覆盖**那条分支。
|
||||
let (ui, _) = crate::theme::tokens(
|
||||
boot.flavor,
|
||||
appearance.as_ref().and_then(|state| state.accent.color()),
|
||||
None,
|
||||
families,
|
||||
);
|
||||
(
|
||||
Harness {
|
||||
// M250:gallery 出图也要能看见强调色 —— 与产品路径同一条规则(显式强调色 >
|
||||
// 出厂板),来源是 `ULL_APPEARANCE_ACCENT`(`State::apply_env` 灌进来的)。
|
||||
ui: match appearance.as_ref().and_then(|state| state.accent.color()) {
|
||||
Some(accent) => Ui::with_accent(boot.flavor, accent, families),
|
||||
None => Ui::new(boot.flavor, families),
|
||||
},
|
||||
ui,
|
||||
model,
|
||||
appearance: appearance.clone(),
|
||||
form: crate::pages::demo_launch_form(),
|
||||
|
||||
Reference in new issue
Block a user