summaryrefslogtreecommitdiffstats
path: root/style
diff options
context:
space:
mode:
Diffstat (limited to 'style')
-rw-r--r--style/src/slider.rs13
-rw-r--r--style/src/text_input.rs8
-rw-r--r--style/src/theme.rs39
3 files changed, 55 insertions, 5 deletions
diff --git a/style/src/slider.rs b/style/src/slider.rs
index 4b52fad3..d5db1853 100644
--- a/style/src/slider.rs
+++ b/style/src/slider.rs
@@ -5,11 +5,22 @@ use iced_core::Color;
#[derive(Debug, Clone, Copy)]
pub struct Appearance {
/// The colors of the rail of the slider.
- pub rail_colors: (Color, Color),
+ pub rail: Rail,
/// The appearance of the [`Handle`] of the slider.
pub handle: Handle,
}
+/// The appearance of a slider rail
+#[derive(Debug, Clone, Copy)]
+pub struct Rail {
+ /// The colors of the rail of the slider.
+ pub colors: (Color, Color),
+ /// The width of the stroke of a slider rail.
+ pub width: f32,
+ /// The border radius of the slider.
+ pub border_radius: f32,
+}
+
/// The appearance of the handle of a slider.
#[derive(Debug, Clone, Copy)]
pub struct Handle {
diff --git a/style/src/text_input.rs b/style/src/text_input.rs
index d97016dc..2616ad5a 100644
--- a/style/src/text_input.rs
+++ b/style/src/text_input.rs
@@ -12,6 +12,8 @@ pub struct Appearance {
pub border_width: f32,
/// The border [`Color`] of the text input.
pub border_color: Color,
+ /// The icon [`Color`] of the text input.
+ pub icon_color: Color,
}
/// A set of rules that dictate the style of a text input.
@@ -31,6 +33,9 @@ pub trait StyleSheet {
/// Produces the [`Color`] of the value of a text input.
fn value_color(&self, style: &Self::Style) -> Color;
+ /// Produces the [`Color`] of the value of a disabled text input.
+ fn disabled_color(&self, style: &Self::Style) -> Color;
+
/// Produces the [`Color`] of the selection of a text input.
fn selection_color(&self, style: &Self::Style) -> Color;
@@ -38,4 +43,7 @@ pub trait StyleSheet {
fn hovered(&self, style: &Self::Style) -> Appearance {
self.focused(style)
}
+
+ /// Produces the style of a disabled text input.
+ fn disabled(&self, style: &Self::Style) -> Appearance;
}
diff --git a/style/src/theme.rs b/style/src/theme.rs
index 0ebd82a4..b195940e 100644
--- a/style/src/theme.rs
+++ b/style/src/theme.rs
@@ -416,10 +416,14 @@ impl slider::StyleSheet for Theme {
};
slider::Appearance {
- rail_colors: (
- palette.primary.base.color,
- Color::TRANSPARENT,
- ),
+ rail: slider::Rail {
+ colors: (
+ palette.primary.base.color,
+ palette.primary.base.color,
+ ),
+ width: 2.0,
+ border_radius: 2.0,
+ },
handle: slider::Handle {
color: palette.background.base.color,
border_color: palette.primary.base.color,
@@ -1028,6 +1032,7 @@ impl text_input::StyleSheet for Theme {
border_radius: 2.0,
border_width: 1.0,
border_color: palette.background.strong.color,
+ icon_color: palette.background.weak.text,
}
}
@@ -1043,6 +1048,7 @@ impl text_input::StyleSheet for Theme {
border_radius: 2.0,
border_width: 1.0,
border_color: palette.background.base.text,
+ icon_color: palette.background.weak.text,
}
}
@@ -1058,6 +1064,7 @@ impl text_input::StyleSheet for Theme {
border_radius: 2.0,
border_width: 1.0,
border_color: palette.primary.strong.color,
+ icon_color: palette.background.weak.text,
}
}
@@ -1090,4 +1097,28 @@ impl text_input::StyleSheet for Theme {
palette.primary.weak.color
}
+
+ fn disabled(&self, style: &Self::Style) -> text_input::Appearance {
+ if let TextInput::Custom(custom) = style {
+ return custom.disabled(self);
+ }
+
+ let palette = self.extended_palette();
+
+ text_input::Appearance {
+ background: palette.background.weak.color.into(),
+ border_radius: 2.0,
+ border_width: 1.0,
+ border_color: palette.background.strong.color,
+ icon_color: palette.background.strong.color,
+ }
+ }
+
+ fn disabled_color(&self, style: &Self::Style) -> Color {
+ if let TextInput::Custom(custom) = style {
+ return custom.disabled_color(self);
+ }
+
+ self.placeholder_color(style)
+ }
}