feat(design): M70 r2 —— 出厂默认定为 ④ 天蓝 #3C8DBC(用户 2026-11-01 拍板)

- `palettes::DEFAULT_SEED`:`#87CEEB`(③ 浅冷蓝)→ `#3C8DBC`(④ 天蓝,主色 `#236488`);
  `DEFAULT_NEUTRAL_CHROMA` 保持 12
- `tests/skyseed_candidates.rs`:`product_default_is_the_recommended_candidate` →
  `product_default_is_the_adopted_candidate`,绑定 `CANDIDATES[3]`(④);四档 pin 不变
- 文档:`color/mod.rs` / `palettes.rs` 的「临时默认 ③ / 待用户确认」全部换成
  「出厂默认 ④(用户 2026-11-01 拍板)」,③ 标注为备选(值仍 pin 住,可一行换回)
- 文档新增定位(D38):这两个常量只定义「**莫奈关闭时的出厂预选色卡**」(配色来源第三级),
  不再代表唯一配色来源;背景图/壁纸取色与内置色卡库都不在本 crate、尚未实现
This commit is contained in:
AskaEth committed 2026-11-01 18:09:14 +08:00
1 parent 9519a89472
commit e37b452345
3 files changed
+36 -23

No files matched your search

+12 -13
View File
@@ -9,8 +9,8 @@
//! |---|---|---|---|---|---|
//! | ① 保守蓝 | `#2196F3` | 253.7° | 6(官方) | 近白/近黑,几乎无色 | 钢蓝 |
//! | ② 冷调蓝 | `#2196F3` | 253.7° | 12 | 冷白/冷黑,带淡蓝调 | 钢蓝 |
//! | ③ 浅冷蓝 | `#87CEEB`(CSS `skyblue`) | 225.7° | 12 | 浅天蓝 | 偏青(teal) |
//! | ④ 天蓝 | `#3C8DBC` | 239.5° | 12 | 浅天蓝 | 偏蓝的天蓝 |
//! | ③ 浅冷蓝(备选) | `#87CEEB`(CSS `skyblue`) | 225.7° | 12 | 浅天蓝 | 偏青(teal) |
//! | ④ 天蓝(**出厂默认,用户 2026-11-01 拍板**) | `#3C8DBC` | 239.5° | 12 | 浅天蓝 | 偏蓝的天蓝 |
//!
//! ③ 与 ④ 是同一件事的两种「蓝」:色相越低越偏青(teal),越高越偏钢蓝;
//! 239.5° 正好夹在中间,主色从 ③ 的 `#0C6780` 变成 `#236488`。
@@ -243,23 +243,22 @@ fn the_candidates_are_actually_distinguishable() {
}
#[test]
fn product_default_is_the_recommended_candidate() {
// ③ 是 M70 的**临时默认**(待用户确认)。第 4 档 ④ 加进来之后默认**故意不动**——
// 由用户看完四档再拍。拍板后改 `DEFAULT_SEED`/`DEFAULT_NEUTRAL_CHROMA` 这里会立刻红,
// 那条红就是在提醒你同步 pin 表(本用例就是那个提醒器)。
let recommended = &CANDIDATES[2];
fn product_default_is_the_adopted_candidate() {
// 用户 2026-11-01 拍板采用 **④ 天蓝**。这条用例就是「默认值 ↔ 候选表」的绑定器:
// 谁改了 `DEFAULT_SEED`/`DEFAULT_NEUTRAL_CHROMA` 却没同步这里(或反过来),它会立刻红。
let adopted = &CANDIDATES[3];
assert_eq!(
DEFAULT_SEED,
Color::from_hex(recommended.seed_hex).expect("合法 hex"),
"DEFAULT_SEED 与推荐档 {}",
recommended.tag
Color::from_hex(adopted.seed_hex).expect("合法 hex"),
"DEFAULT_SEED 与已采用的档 {}",
adopted.tag
);
assert_eq!(DEFAULT_NEUTRAL_CHROMA, recommended.neutral_chroma);
assert_eq!(DEFAULT_NEUTRAL_CHROMA, adopted.neutral_chroma);
for flavor in [SchemeFlavor::Light, SchemeFlavor::Dark] {
assert_eq!(
Scheme::baseline(flavor),
scheme(recommended, flavor),
"产品默认(Scheme::baseline)必须等于推荐档的派生结果({})",
scheme(adopted, flavor),
"产品默认(Scheme::baseline)必须等于已采用档的派生结果({})",
flavor.name()
);
}