summaryrefslogtreecommitdiff
path: root/material_theme/src
diff options
context:
space:
mode:
Diffstat (limited to 'material_theme/src')
-rw-r--r--material_theme/src/lib.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/material_theme/src/lib.rs b/material_theme/src/lib.rs
index 38a94b0..930e511 100644
--- a/material_theme/src/lib.rs
+++ b/material_theme/src/lib.rs
@@ -69,12 +69,17 @@ impl Clone for Theme {
impl Default for Theme {
fn default() -> Self {
- match dark_light::detect().unwrap_or(dark_light::Mode::Unspecified) {
- dark_light::Mode::Dark | dark_light::Mode::Unspecified => {
- DARK.clone()
+ static DEFAULT: LazyLock<Theme> = LazyLock::new(|| {
+ match dark_light::detect().unwrap_or(dark_light::Mode::Unspecified)
+ {
+ dark_light::Mode::Dark | dark_light::Mode::Unspecified => {
+ DARK.clone()
+ }
+ dark_light::Mode::Light => LIGHT.clone(),
}
- dark_light::Mode::Light => LIGHT.clone(),
- }
+ });
+
+ DEFAULT.clone()
}
}