diff options
author | 2025-02-22 00:34:55 +0100 | |
---|---|---|
committer | 2025-02-22 00:34:55 +0100 | |
commit | 954f49d4d73d040ef9367800a662031cd92d9e09 (patch) | |
tree | d7a9429e73f79884dfaa3f2e56d8b9b3496be34b /widget | |
parent | f1ed99cb47997e1d194a41e7cdf2846f8eb5f8fa (diff) | |
download | iced-954f49d4d73d040ef9367800a662031cd92d9e09.tar.gz iced-954f49d4d73d040ef9367800a662031cd92d9e09.tar.bz2 iced-954f49d4d73d040ef9367800a662031cd92d9e09.zip |
Add `weakest` and `strongest` to `Background` palette
... and tweak background shade generation logic.
Diffstat (limited to 'widget')
-rw-r--r-- | widget/src/button.rs | 4 | ||||
-rw-r--r-- | widget/src/checkbox.rs | 27 | ||||
-rw-r--r-- | widget/src/container.rs | 4 | ||||
-rw-r--r-- | widget/src/progress_bar.rs | 5 | ||||
-rw-r--r-- | widget/src/slider.rs | 8 | ||||
-rw-r--r-- | widget/src/text_input.rs | 4 |
6 files changed, 33 insertions, 19 deletions
diff --git a/widget/src/button.rs b/widget/src/button.rs index 1b51065d..d4500888 100644 --- a/widget/src/button.rs +++ b/widget/src/button.rs @@ -591,12 +591,12 @@ impl Catalog for Theme { /// A primary button; denoting a main action. pub fn primary(theme: &Theme, status: Status) -> Style { let palette = theme.extended_palette(); - let base = styled(palette.primary.strong); + let base = styled(palette.primary.base); match status { Status::Active | Status::Pressed => base, Status::Hovered => Style { - background: Some(Background::Color(palette.primary.base.color)), + background: Some(Background::Color(palette.primary.strong.color)), ..base }, Status::Disabled => disabled(base), diff --git a/widget/src/checkbox.rs b/widget/src/checkbox.rs index 6ed3e080..3c1ef276 100644 --- a/widget/src/checkbox.rs +++ b/widget/src/checkbox.rs @@ -555,18 +555,21 @@ pub fn primary(theme: &Theme, status: Status) -> Style { match status { Status::Active { is_checked } => styled( palette.primary.strong.text, + palette.background.strongest.color, palette.background.base, - palette.primary.strong, + palette.primary.base, is_checked, ), Status::Hovered { is_checked } => styled( palette.primary.strong.text, + palette.background.strongest.color, palette.background.weak, - palette.primary.base, + palette.primary.strong, is_checked, ), Status::Disabled { is_checked } => styled( palette.primary.strong.text, + palette.background.weak.color, palette.background.weak, palette.background.strong, is_checked, @@ -581,18 +584,21 @@ pub fn secondary(theme: &Theme, status: Status) -> Style { match status { Status::Active { is_checked } => styled( palette.background.base.text, + palette.background.strongest.color, palette.background.base, palette.background.strong, is_checked, ), Status::Hovered { is_checked } => styled( palette.background.base.text, + palette.background.strongest.color, palette.background.weak, palette.background.strong, is_checked, ), Status::Disabled { is_checked } => styled( palette.background.strong.color, + palette.background.weak.color, palette.background.weak, palette.background.weak, is_checked, @@ -607,18 +613,21 @@ pub fn success(theme: &Theme, status: Status) -> Style { match status { Status::Active { is_checked } => styled( palette.success.base.text, + palette.background.weak.color, palette.background.base, palette.success.base, is_checked, ), Status::Hovered { is_checked } => styled( palette.success.base.text, + palette.background.strongest.color, palette.background.weak, - palette.success.base, + palette.success.strong, is_checked, ), Status::Disabled { is_checked } => styled( palette.success.base.text, + palette.background.weak.color, palette.background.weak, palette.success.weak, is_checked, @@ -633,18 +642,21 @@ pub fn danger(theme: &Theme, status: Status) -> Style { match status { Status::Active { is_checked } => styled( palette.danger.base.text, + palette.background.strongest.color, palette.background.base, palette.danger.base, is_checked, ), Status::Hovered { is_checked } => styled( palette.danger.base.text, + palette.background.strongest.color, palette.background.weak, - palette.danger.base, + palette.danger.strong, is_checked, ), Status::Disabled { is_checked } => styled( palette.danger.base.text, + palette.background.weak.color, palette.background.weak, palette.danger.weak, is_checked, @@ -654,6 +666,7 @@ pub fn danger(theme: &Theme, status: Status) -> Style { fn styled( icon_color: Color, + border_color: Color, base: palette::Pair, accent: palette::Pair, is_checked: bool, @@ -668,7 +681,11 @@ fn styled( border: Border { radius: 2.0.into(), width: 1.0, - color: accent.color, + color: if is_checked { + accent.color + } else { + border_color + }, }, text_color: None, } diff --git a/widget/src/container.rs b/widget/src/container.rs index da5b436f..82774186 100644 --- a/widget/src/container.rs +++ b/widget/src/container.rs @@ -703,10 +703,10 @@ pub fn bordered_box(theme: &Theme) -> Style { let palette = theme.extended_palette(); Style { - background: Some(palette.background.weak.color.into()), + background: Some(palette.background.weakest.color.into()), border: Border { width: 1.0, - radius: 0.0.into(), + radius: 5.0.into(), color: palette.background.strong.color, }, ..Style::default() diff --git a/widget/src/progress_bar.rs b/widget/src/progress_bar.rs index 554e8a44..a9b4eb65 100644 --- a/widget/src/progress_bar.rs +++ b/widget/src/progress_bar.rs @@ -288,10 +288,7 @@ impl Catalog for Theme { pub fn primary(theme: &Theme) -> Style { let palette = theme.extended_palette(); - styled( - palette.background.strong.color, - palette.primary.strong.color, - ) + styled(palette.background.strong.color, palette.primary.base.color) } /// The secondary style of a [`ProgressBar`]. diff --git a/widget/src/slider.rs b/widget/src/slider.rs index 1908abc9..1a2f8b9d 100644 --- a/widget/src/slider.rs +++ b/widget/src/slider.rs @@ -670,14 +670,14 @@ pub fn default(theme: &Theme, status: Status) -> Style { let palette = theme.extended_palette(); let color = match status { - Status::Active => palette.primary.strong.color, - Status::Hovered => palette.primary.base.color, - Status::Dragged => palette.primary.strong.color, + Status::Active => palette.primary.base.color, + Status::Hovered => palette.primary.strong.color, + Status::Dragged => palette.primary.weak.color, }; Style { rail: Rail { - backgrounds: (color.into(), palette.secondary.base.color.into()), + backgrounds: (color.into(), palette.background.strong.color.into()), width: 4.0, border: Border { radius: 2.0.into(), diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index 697d0d64..5b6ee9e0 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -1802,10 +1802,10 @@ pub fn default(theme: &Theme, status: Status) -> Style { border: Border { radius: 2.0.into(), width: 1.0, - color: palette.background.strong.color, + color: palette.background.strongest.color, }, icon: palette.background.weak.text, - placeholder: palette.background.strong.color, + placeholder: palette.background.strongest.color, value: palette.background.base.text, selection: palette.primary.weak.color, }; |