Skip to main content

Theme

Struct Theme 

Source
pub struct Theme {
    pub palette: Palette,
    pub typography: Typography,
    pub control_radius: f32,
    pub card_radius: f32,
    pub card_padding: f32,
    pub control_padding_y: f32,
    pub control_padding_x: f32,
}
Expand description

The full elegance theme — colours + typography + a handful of shapes.

Fields§

§palette: Palette

Colour palette driving every widget.

§typography: Typography

Font sizes shared across widgets.

§control_radius: f32

Corner radius used for buttons, inputs, selects and segmented buttons.

§card_radius: f32

Corner radius used for cards.

§card_padding: f32

Inner padding applied to cards.

§control_padding_y: f32

Vertical padding inside buttons and inputs.

§control_padding_x: f32

Horizontal padding inside buttons.

Implementations§

Source§

impl Theme

Source

pub fn slate() -> Self

The default elegance theme: slate palette, elegant typography.

Source

pub fn charcoal() -> Self

The “charcoal” theme: neutral dark-grey palette with a cyan focus accent. Shares shape and typography with Theme::slate so layouts transfer cleanly between the two.

Source

pub fn frost() -> Self

The “frost” theme: the light-mode counterpart to Theme::slate. Shares shape and typography so you can toggle between the two without any layout shift.

Source

pub fn paper() -> Self

The “paper” theme: the light-mode counterpart to Theme::charcoal. Shares shape and typography so you can toggle between the two without any layout shift.

Source

pub fn install(self, ctx: &Context)

Install the theme into an egui::Context.

This updates ctx.style() so that stock widgets (labels, sliders, scroll bars, etc.) inherit the palette, registers the bundled Elegance Symbols font as a lowest-priority Proportional + Monospace fallback so glyphs like → ⌫ ⋯ render out of the box, and stores the theme in context memory so elegance widgets can read it back.

Cheap to call every frame: when the incoming theme equals the one already installed, the style and memory writes are skipped. The font install is idempotent (by font name) inside egui.

The font registration uses Context::add_font, which appends to the existing registry. Host fonts installed via add_font — at any time, before or after Theme::install — coexist with the symbols font. A host call to ctx.set_fonts(...) after Theme::install still clobbers the symbols font (and egui’s defaults, and anything else), but that’s inherent to set_fonts taking over the registry.

Source

pub fn current(ctx: &Context) -> Theme

Read the currently-installed theme, or return Theme::slate if none has been installed yet.

Source§

impl Theme

Source

pub fn body_text(&self, text: impl Into<String>) -> WidgetText

Create a WidgetText coloured with the primary text colour and sized for body copy.

Source

pub fn heading_text(&self, text: impl Into<String>) -> WidgetText

Create a strong WidgetText coloured and sized for a heading.

Source

pub fn muted_text(&self, text: impl Into<String>) -> WidgetText

Create a WidgetText coloured with the muted text colour.

Source

pub fn faint_text(&self, text: impl Into<String>) -> WidgetText

Create a WidgetText coloured with the faint (tertiary) text colour.

Trait Implementations§

Source§

impl Clone for Theme

Source§

fn clone(&self) -> Theme

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Theme

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Theme

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Theme

Source§

fn eq(&self, other: &Theme) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Theme

Auto Trait Implementations§

§

impl Freeze for Theme

§

impl RefUnwindSafe for Theme

§

impl Send for Theme

§

impl Sync for Theme

§

impl Unpin for Theme

§

impl UnsafeUnpin for Theme

§

impl UnwindSafe for Theme

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(value: T, _simd: S) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,