diff options
Diffstat (limited to '')
| -rw-r--r-- | core/src/theme/palette.rs | 26 | 
1 files changed, 21 insertions, 5 deletions
diff --git a/core/src/theme/palette.rs b/core/src/theme/palette.rs index b4acaa83..3f30326b 100644 --- a/core/src/theme/palette.rs +++ b/core/src/theme/palette.rs @@ -207,7 +207,7 @@ impl Palette {      pub const KANAGAWA_WAVE: Self = Self {          background: color!(0x363646), // Sumi Ink 3          text: color!(0xCD7BA),        // Fuji White -        primary: color!(0x2D4F67),    // Wave Blue 2 +        primary: color!(0x7FB4CA),    // Wave Blue          success: color!(0x76946A),    // Autumn Green          warning: color!(0xff9e3b),    // Ronin Yellow          danger: color!(0xC34043),     // Autumn Red @@ -231,7 +231,7 @@ impl Palette {      pub const KANAGAWA_LOTUS: Self = Self {          background: color!(0xf2ecbc), // Lotus White 3          text: color!(0x545464),       // Lotus Ink 1 -        primary: color!(0xc9cbd1),    // Lotus Violet 3 +        primary: color!(0x4d699b),    // Lotus Blue          success: color!(0x6f894e),    // Lotus Green          warning: color!(0xe98a00),    // Lotus Orange 2          danger: color!(0xc84053),     // Lotus Red @@ -453,22 +453,30 @@ impl Pair {  pub struct Background {      /// The base background color.      pub base: Pair, +    /// The weakest version of the base background color. +    pub weakest: Pair,      /// A weaker version of the base background color.      pub weak: Pair,      /// A stronger version of the base background color.      pub strong: Pair, +    /// The strongest version of the base background color. +    pub strongest: Pair,  }  impl Background {      /// Generates a set of [`Background`] colors from the base and text colors.      pub fn new(base: Color, text: Color) -> Self { -        let weak = mix(base, text, 0.15); -        let strong = mix(base, text, 0.40); +        let weakest = deviate(base, 0.03); +        let weak = muted(deviate(base, 0.1)); +        let strong = muted(deviate(base, 0.2)); +        let strongest = muted(deviate(base, 0.3));          Self {              base: Pair::new(base, text), +            weakest: Pair::new(weakest, text),              weak: Pair::new(weak, text),              strong: Pair::new(strong, text), +            strongest: Pair::new(strongest, text),          }      }  } @@ -627,10 +635,18 @@ fn deviate(color: Color, amount: f32) -> Color {      if is_dark(color) {          lighten(color, amount)      } else { -        darken(color, amount) +        darken(color, amount * 0.7)      }  } +fn muted(color: Color) -> Color { +    let mut hsl = to_hsl(color); + +    hsl.saturation = hsl.saturation.min(0.5); + +    from_hsl(hsl) +} +  fn mix(a: Color, b: Color, factor: f32) -> Color {      let a_lin = Rgb::from(a).into_linear();      let b_lin = Rgb::from(b).into_linear();  | 
