feat(design): 内置色卡改用固定中性色相,切卡只换强调色(D43)
色卡路径原先走 TonalSpot「中性色也跟种子染色」,八张卡的中性色相 = 种子色相, 浅色档 surface 的实测 CAM16 彩度从 1.29(rose)跨到 12.03(teal)——tone 98 处 暖相色域装不下彩度 12,同一个请求值在暖相上只兑现 1.29。9 倍的底色跳变让用户在 设置页逐张试色时觉得「每张卡都像换了个应用」。 - `color::palettes::NEUTRAL_HUE_DEG`(新常量)= 出厂默认种子 `#3C8DBC` 的 CAM16 色相 239.51420577630955°,出处与「换默认色时要复核什么」写在常量文档里; `neutral_hue_is_the_default_seed_hue` 用位相等钉住它与 `DEFAULT_SEED` 的绑定。 - `Palettes::accent_on_fixed_neutral(accent, neutral_hue, neutral_chroma)`:强调三族 跟 accent 色相,中性两族固定在给定色相;其余常数(36/16/24/25°/84、tone 表、 gamut 映射)一行未动。私有 `tonal_spot_with_neutral` 承载实现,`tonal_spot` 只是 它的「中性色相 = 种子色相」特例。 - `Card::scheme` 改走上述入口(`NEUTRAL_HUE_DEG` + 卡自己的中性彩度)。默认档天蓝的 49 个角色**逐值不变**(固定在等于它自己中性色相的那个值上,属「沿用」而非「另选」)。 - 动态取色路径**刻意不动**:`resolve::try_level` 仍按图像种子逐色染色、只借色卡的中性 彩度定浓淡;两处注释都写明「两条路径不同,别统一处理」。 - 订正 `palette/card.rs` 的模块文档:原文把「请求值相同」当成「观感相同」,现在改成 可直接当契约读的三条(表面与描边八卡逐值相同 / 只有强调族跟卡走 / 天蓝卡 == baseline)。 门禁:fmt 干净、clippy -D warnings 通过、`cargo test -p unlucky-design` 全绿、 `cargo tree -p unlucky-design --edges normal` 仍是单行(零第三方依赖)。
This commit is contained in:
1 parent
e377989327
commit
de9d5337ac
4 files changed
+140
-25
No files matched your search
@@ -178,7 +178,9 @@ fn try_level(input: Option<ImageInput<'_>>, card: Card, flavor: SchemeFlavor) ->
|
||||
Err(failure) => return Attempt::Failed(Skip::from(failure)),
|
||||
};
|
||||
|
||||
// 取色方案的表面色温沿用当前色卡的中性彩度:换壁纸不该让窗口底色「冷热乱跳」。
|
||||
// 取色方案的表面色**跟着图像种子染色**,只借当前色卡的中性彩度定浓淡(D43):
|
||||
// 这是与色卡路径刻意不同的一处——色卡固定中性色相、只换强调色,取色保留整幅染色
|
||||
// (那是用户要的 Monet 体验)。别把两条路径「统一处理」,`tests/card_neutral.rs` 有反证。
|
||||
let (scheme, adjustments) = converge(seed.scheme(flavor, card.neutral_chroma));
|
||||
let report = check(&scheme);
|
||||
if !report.is_clean() {
|
||||
|
||||
Reference in new issue
Block a user