diff options
author | 2024-04-08 13:56:38 +0200 | |
---|---|---|
committer | 2024-04-08 13:56:38 +0200 | |
commit | 6ea763c2a79292e5b10be2240b4b57b920223616 (patch) | |
tree | 44bdcecf1aa08ab43cbb95223edddd8fe00b3823 | |
parent | 288f62bfb691a91e01b9ddbce9dbdc560ee9036a (diff) | |
parent | 72b975ec82660b39f27b6cb015b763caf20e6483 (diff) | |
download | iced-6ea763c2a79292e5b10be2240b4b57b920223616.tar.gz iced-6ea763c2a79292e5b10be2240b4b57b920223616.tar.bz2 iced-6ea763c2a79292e5b10be2240b4b57b920223616.zip |
Merge branch 'master' into wgpu/better-architecture
-rw-r--r-- | DEPENDENCIES.md | 2 | ||||
-rw-r--r-- | core/src/theme/palette.rs | 26 |
2 files changed, 16 insertions, 12 deletions
diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md index 809371cb..5d738d85 100644 --- a/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -20,7 +20,7 @@ pkgs.mkShell rec { freetype freetype.dev libGL - pkgconfig + pkg-config xorg.libX11 xorg.libXcursor xorg.libXi diff --git a/core/src/theme/palette.rs b/core/src/theme/palette.rs index 91543567..e0ff397a 100644 --- a/core/src/theme/palette.rs +++ b/core/src/theme/palette.rs @@ -612,19 +612,16 @@ fn mix(a: Color, b: Color, factor: f32) -> Color { fn readable(background: Color, text: Color) -> Color { if is_readable(background, text) { - return text; - } - - let fallback = if is_dark(background) { - Color::WHITE + text } else { - Color::BLACK - }; + let white_contrast = relative_contrast(background, Color::WHITE); + let black_contrast = relative_contrast(background, Color::BLACK); - if is_readable(background, fallback) { - fallback - } else { - fallback.inverse() + if white_contrast >= black_contrast { + Color::WHITE + } else { + Color::BLACK + } } } @@ -639,6 +636,13 @@ fn is_readable(a: Color, b: Color) -> bool { a_srgb.has_enhanced_contrast_text(b_srgb) } +fn relative_contrast(a: Color, b: Color) -> f32 { + let a_srgb = Rgb::from(a); + let b_srgb = Rgb::from(b); + + a_srgb.relative_contrast(b_srgb) +} + fn to_hsl(color: Color) -> Hsl { Hsl::from_color(Rgb::from(color)) } |