summaryrefslogtreecommitdiffstats
path: root/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2025-02-22 00:34:55 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2025-02-22 00:34:55 +0100
commit954f49d4d73d040ef9367800a662031cd92d9e09 (patch)
treed7a9429e73f79884dfaa3f2e56d8b9b3496be34b /widget
parentf1ed99cb47997e1d194a41e7cdf2846f8eb5f8fa (diff)
downloadiced-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.rs4
-rw-r--r--widget/src/checkbox.rs27
-rw-r--r--widget/src/container.rs4
-rw-r--r--widget/src/progress_bar.rs5
-rw-r--r--widget/src/slider.rs8
-rw-r--r--widget/src/text_input.rs4
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,
};