From 04d7c76e2f3e10503fa5c8bc185f9557dd0900b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Thu, 15 Jan 2026 13:02:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(baseline):=20=E7=A1=AE=E4=BF=9D=20neutral?= =?UTF-8?q?=5Flightest=20=E7=9A=84=E4=BA=AE=E5=BA=A6=E9=AB=98=E4=BA=8E=20n?= =?UTF-8?q?eutral=5Fdarkest=EF=BC=8C=E5=BF=85=E8=A6=81=E6=97=B6=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=BA=A4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- color-module/src/schemes/q_style_2/baseline.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/color-module/src/schemes/q_style_2/baseline.rs b/color-module/src/schemes/q_style_2/baseline.rs index b076bbb..1fd498d 100644 --- a/color-module/src/schemes/q_style_2/baseline.rs +++ b/color-module/src/schemes/q_style_2/baseline.rs @@ -147,6 +147,13 @@ impl Baseline { settings: &Arc, is_dark: bool, ) -> Self { + // Ensure neutral_lightest has higher lightness than neutral_darkest, swap if necessary + let (neutral_lightest, neutral_darkest) = if neutral_lightest.l >= neutral_darkest.l { + (*neutral_lightest, *neutral_darkest) + } else { + (*neutral_darkest, *neutral_lightest) + }; + let (final_secondary, final_tertiary, final_accent) = match settings.expand_method { ColorExpand::Complementary => { let sec_color = secondary.cloned().or(Some(primary.complementary())); @@ -209,7 +216,7 @@ impl Baseline { } else { neutral_lightest.l }; - let neutral_swatch = Arc::new(NeutralSwatch::new(*neutral_lightest, *neutral_darkest)); + let neutral_swatch = Arc::new(NeutralSwatch::new(neutral_lightest, neutral_darkest)); let outline_color = neutral_swatch.get(if is_dark { 0.25 } else { 0.7 }); let outline_variant_color = neutral_swatch.get(if is_dark { 0.2 } else { 0.8 }); let shadow_color = neutral_swatch.get(0.1); @@ -308,13 +315,13 @@ impl Baseline { let (foreground, background) = if is_dark { // Dark mode: foreground = neutral_lightest, background = neutral_darkest with +10% lightness let background_darkest = Oklch { - l: (neutral_darkest.l * 1.2).min(1.0), - ..*neutral_darkest + l: (neutral_darkest.l * 1.3).min(1.0), + ..neutral_darkest }; - (*neutral_lightest, background_darkest) + (neutral_lightest, background_darkest) } else { // Light mode: foreground = neutral_darkest, background = neutral_lightest - (*neutral_darkest, *neutral_lightest) + (neutral_darkest, neutral_lightest) }; Self {