diff options
author | 2024-04-07 19:32:49 +0200 | |
---|---|---|
committer | 2024-04-07 19:32:49 +0200 | |
commit | ee86aea7f298c0bdc72733b47c40270ff38c2ba6 (patch) | |
tree | ce1e2f533544eb2ecd8ac4158de104ab0e6c2869 /core/src/theme | |
parent | efa75607baa073aba333ab0bfdee1e490a016097 (diff) | |
download | iced-ee86aea7f298c0bdc72733b47c40270ff38c2ba6.tar.gz iced-ee86aea7f298c0bdc72733b47c40270ff38c2ba6.tar.bz2 iced-ee86aea7f298c0bdc72733b47c40270ff38c2ba6.zip |
Use `Lch` to choose white text when not readable in `theme::palette`
Diffstat (limited to 'core/src/theme')
-rw-r--r-- | core/src/theme/palette.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/src/theme/palette.rs b/core/src/theme/palette.rs index ca91c248..aca72eb0 100644 --- a/core/src/theme/palette.rs +++ b/core/src/theme/palette.rs @@ -4,7 +4,7 @@ use crate::{color, Color}; use once_cell::sync::Lazy; use palette::color_difference::Wcag21RelativeContrast; use palette::rgb::Rgb; -use palette::{FromColor, Hsl, Mix}; +use palette::{FromColor, Hsl, Lch, Mix}; /// A color palette. #[derive(Debug, Clone, Copy, PartialEq)] @@ -613,7 +613,7 @@ fn mix(a: Color, b: Color, factor: f32) -> Color { fn readable(background: Color, text: Color) -> Color { if is_readable(background, text) { text - } else if is_dark(background) { + } else if to_lch(background).l < 70.0 { Color::WHITE } else { Color::BLACK @@ -635,6 +635,10 @@ fn to_hsl(color: Color) -> Hsl { Hsl::from_color(Rgb::from(color)) } +fn to_lch(color: Color) -> Lch { + Lch::from_color(Rgb::from(color)) +} + fn from_hsl(hsl: Hsl) -> Color { Rgb::from_color(hsl).into() } |