summaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-04-07 19:32:49 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-04-07 19:32:49 +0200
commitee86aea7f298c0bdc72733b47c40270ff38c2ba6 (patch)
treece1e2f533544eb2ecd8ac4158de104ab0e6c2869 /core/src
parentefa75607baa073aba333ab0bfdee1e490a016097 (diff)
downloadiced-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')
-rw-r--r--core/src/theme/palette.rs8
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()
}