Skip to main content

SystemStyle

Struct SystemStyle 

Source
#[repr(C)]
pub struct SystemStyle {
Show 22 fields pub fonts: SystemFonts, pub metrics: SystemMetrics, pub linux: LinuxCustomization, pub platform: Platform, pub focus_visuals: FocusVisuals, pub language: AzString, pub app_specific_stylesheet: Option<Box<Css>>, pub scrollbar: Option<Box<ComputedScrollbarStyle>>, pub scroll_physics: ScrollPhysics, pub theme: Theme, pub os_version: OsVersion, pub prefers_reduced_motion: BoolCondition, pub prefers_high_contrast: BoolCondition, pub accessibility: AccessibilitySettings, pub input: InputMetrics, pub text_rendering: TextRenderingHints, pub scrollbar_preferences: ScrollbarPreferences, pub visual_hints: VisualHints, pub animation: AnimationMetrics, pub colors: SystemColors, pub icon_style: IconStyleOptions, pub audio: AudioMetrics,
}
Expand description

A unified collection of discovered system style properties.

Fields§

§fonts: SystemFonts§metrics: SystemMetrics§linux: LinuxCustomization

Linux-specific customisation (icon theme, cursor theme, GTK theme, …)

§platform: Platform§focus_visuals: FocusVisuals

Focus ring / indicator visual style

§language: AzString

System language/locale in BCP 47 format (e.g., “en-US”, “de-DE”) Detected from OS settings at startup

§app_specific_stylesheet: Option<Box<Css>>

An optional, user-provided stylesheet loaded from a conventional location (~/.config/azul/styles/<app_name>.css), allowing for application-specific “ricing”. Only loaded when the “io” feature is enabled and AZ_RICING is not set to off.

§scrollbar: Option<Box<ComputedScrollbarStyle>>

Scrollbar style information (boxed to ensure stable FFI size)

§scroll_physics: ScrollPhysics

Global scroll physics configuration (momentum, friction, rubber-banding). Platform-specific defaults are applied during system style discovery. Applications can override this to change the “feel” of scrolling globally.

§theme: Theme§os_version: OsVersion

Detected OS version (e.g., Windows 11 22H2, macOS Sonoma, etc.)

§prefers_reduced_motion: BoolCondition

User prefers reduced motion (accessibility setting)

§prefers_high_contrast: BoolCondition

User prefers high contrast (accessibility setting)

§accessibility: AccessibilitySettings

Detailed accessibility settings (superset of prefers_reduced_motion / prefers_high_contrast)

§input: InputMetrics

Input interaction timing / distance thresholds from the OS

§text_rendering: TextRenderingHints

Text rendering / anti-aliasing hints from the OS

§scrollbar_preferences: ScrollbarPreferences

OS-level scrollbar visibility / click-behaviour preferences

§visual_hints: VisualHints

Visual hints: icons in menus/buttons, toolbar style, tooltips

§animation: AnimationMetrics

Animation enable/disable, speed factor, focus indicator behaviour

§colors: SystemColors§icon_style: IconStyleOptions

Icon-specific styling options (grayscale, tinting, etc.)

§audio: AudioMetrics

Audio feedback preferences (event sounds, input sounds)

Implementations§

Source§

impl SystemStyle

Source

pub fn to_json_string(&self) -> AzString

Format the SystemStyle as a human-readable JSON string for debugging.

This does NOT use serde — it manually formats the most important fields so that they can be verified against OS-reported values in a test script.

Source

pub fn detect() -> Self

Returns a platform-appropriate default system style.

This returns hard-coded defaults based on the target OS. For actual runtime detection of the user’s theme, colors, and fonts, use the platform discovery in azul-dll (called automatically by App::create()).

Source

pub fn default_for_platform() -> Self

Returns hard-coded defaults for the current compile-time platform.

Source

pub fn new() -> Self

Alias for detect - kept for internal compatibility, not exposed in FFI.

Source

pub fn create_csd_stylesheet(&self) -> Css

Create a CSS stylesheet for CSD (Client-Side Decorations) titlebar

This generates CSS rules for the CSD titlebar using system colors, fonts, and metrics to match the native platform look. Returned rules carry rule_priority::SYSTEM.

Trait Implementations§

Source§

impl Clone for SystemStyle

Source§

fn clone(&self) -> SystemStyle

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SystemStyle

Source§

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

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

impl Default for SystemStyle

Source§

fn default() -> SystemStyle

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

impl PartialEq for SystemStyle

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 SystemStyle

Auto Trait Implementations§

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> 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.