pub struct Style {
pub override_text_style: Option<TextStyle>,
pub override_font_id: Option<FontId>,
pub text_styles: BTreeMap<TextStyle, FontId, Global>,
pub wrap: Option<bool>,
pub spacing: Spacing,
pub interaction: Interaction,
pub visuals: Visuals,
pub animation_time: f32,
pub debug: DebugOptions,
pub explanation_tooltips: bool,
}
Expand description
Specifies the look and feel of egui.
You can change the visuals of a Ui
with Ui::style_mut
and of everything with crate::Context::set_style
.
If you want to change fonts, use crate::Context::set_fonts
instead.
Fields
override_text_style: Option<TextStyle>
If set this will change the default TextStyle
for all widgets.
On most widgets you can also set an explicit text style, which will take precedence over this.
override_font_id: Option<FontId>
If set this will change the font family and size for all widgets.
On most widgets you can also set an explicit text style, which will take precedence over this.
text_styles: BTreeMap<TextStyle, FontId, Global>
The FontFamily
and size you want to use for a specific TextStyle
.
The most convenient way to look something up in this is to use TextStyle::resolve
.
If you would like to overwrite app text_styles
use egui::FontFamily::Proportional;
use egui::FontId;
use egui::TextStyle::*;
// Get current context style
let mut style = (*ctx.style()).clone();
// Redefine text_styles
style.text_styles = [
(Heading, FontId::new(30.0, Proportional)),
(Name("Heading2".into()), FontId::new(25.0, Proportional)),
(Name("Context".into()), FontId::new(23.0, Proportional)),
(Body, FontId::new(18.0, Proportional)),
(Monospace, FontId::new(14.0, Proportional)),
(Button, FontId::new(14.0, Proportional)),
(Small, FontId::new(10.0, Proportional)),
].into();
// Mutate global style with above changes
ctx.set_style(style);
wrap: Option<bool>
If set, labels buttons wtc will use this to determine whether or not
to wrap the text at the right edge of the Ui
they are in.
By default this is None
.
None
: follow layoutSome(true)
: default onSome(false)
: default off
spacing: Spacing
Sizes and distances between widgets
interaction: Interaction
How and when interaction happens.
visuals: Visuals
Colors etc.
animation_time: f32
How many seconds a typical animation should last.
debug: DebugOptions
Options to help debug why egui behaves strangely.
explanation_tooltips: bool
Show tooltips explaining DragValue
:s etc when hovered.
This only affects a few egui widgets.
Implementations
sourceimpl Style
impl Style
sourcepub fn interact(&self, response: &Response) -> &WidgetVisuals
pub fn interact(&self, response: &Response) -> &WidgetVisuals
Use this style for interactive things. Note that you must already have a response, i.e. you must allocate space and interact BEFORE painting the widget!
pub fn interact_selectable(
&self,
response: &Response,
selected: bool
) -> WidgetVisuals
sourcepub fn noninteractive(&self) -> &WidgetVisuals
pub fn noninteractive(&self) -> &WidgetVisuals
Style to use for non-interactive widgets.