pub struct Style {Show 13 fields
pub background: Option<Color>,
pub gradient: Option<Gradient>,
pub shadow: Option<Shadow>,
pub color: Option<Color>,
pub font: Option<Font>,
pub padding: Option<Padding>,
pub radius: Option<f32>,
pub border: Option<Border>,
pub opacity: Option<f32>,
pub clip: Option<bool>,
pub width: Option<f32>,
pub height: Option<f32>,
pub transition: Option<Transition>,
}Expand description
How a widget looks. Every field is optional, and an unset field falls back
to the widget’s default: no background, black text in
Font::DEFAULT, no padding, square corners, no border, fully opaque.
Text takes color and font from the nearest widget
that sets them, starting with itself and going up. Nothing else inherits.
font, padding, clip, width and height change the layout; the
other fields only change how the widget is painted.
use crabshell_ui::{Color, Font, Style};
const BAR: Style = Style::new()
.background(Color::rgb(0x1e, 0x1e, 0x2e))
.color(Color::hex("#cdd6f4"))
.font(Font::new("Inter", 13.0));
const WS: Style = Style::new().padding(2, 8).radius(4.0);
const WS_FOCUSED: Style = WS.background(Color::rgb(0x45, 0x47, 0x5a));Fields§
§background: Option<Color>Fills the widget’s rectangle.
gradient: Option<Gradient>Colors blending across the widget’s rectangle, over the background.
shadow: Option<Shadow>A shadow under the widget’s box.
color: Option<Color>The text color, inherited by Text.
font: Option<Font>The text font, inherited by Text.
padding: Option<Padding>Space between the edge and the content.
radius: Option<f32>The corner radius in logical pixels.
border: Option<Border>A border inside the edge.
opacity: Option<f32>From 0.0 (invisible) to 1.0 (opaque), applied to the widget and everything inside it.
clip: Option<bool>Whether the children are cut to the inside of the border, following
the rounded corners, like CSS’s overflow: hidden.
width: Option<f32>The width in logical pixels, instead of what the content needs.
height: Option<f32>The height in logical pixels, instead of what the content needs.
transition: Option<Transition>How a change to the paint fields fades in: background, gradient, shadow, color, border, radius and opacity. Other fields change at once.
Implementations§
Source§impl Style
impl Style
Sourcepub const fn background(self, color: Color) -> Style
pub const fn background(self, color: Color) -> Style
Sets the background color.
Sourcepub const fn gradient(self, gradient: Gradient) -> Style
pub const fn gradient(self, gradient: Gradient) -> Style
Sets a gradient, drawn over the background.
Sourcepub const fn padding(self, vertical: u32, horizontal: u32) -> Style
pub const fn padding(self, vertical: u32, horizontal: u32) -> Style
Sets the padding: vertical above and below, horizontal left and
right, in logical pixels.
Sourcepub const fn border(self, width: f32, color: Color) -> Style
pub const fn border(self, width: f32, color: Color) -> Style
Sets a border of width logical pixels.
Sourcepub const fn clip(self, clip: bool) -> Style
pub const fn clip(self, clip: bool) -> Style
Sets whether the children are cut to the inside of the border, following the rounded corners. Nothing is cut by default.
Sourcepub const fn width(self, width: f32) -> Style
pub const fn width(self, width: f32) -> Style
Sets the width in logical pixels, instead of what the content needs.
Sourcepub const fn height(self, height: f32) -> Style
pub const fn height(self, height: f32) -> Style
Sets the height in logical pixels, instead of what the content needs.
Sourcepub const fn transition(self, transition: Transition) -> Style
pub const fn transition(self, transition: Transition) -> Style
Sets how a change to the paint fields fades in, as when a hover
style takes over: background, gradient, shadow, color, border, radius
and opacity move
over transition. The style being changed to says how.