@use "sass:map"; @use "sass:meta"; @use "sass:string"; @use "pkg:iro-sass/bem"; @use "pkg:iro-sass/props"; @use "config"; @use "core.vars" as vars; @forward "core.vars"; @mixin styles { @each $theme-name, $theme in vars.$themes { @if $theme-name == config.$theme-default { :root { @include props.materialize(map.values(meta.module-variables("vars"))); @if map.has-key($theme, "dark") { @media (prefers-color-scheme: dark) { @include props.materialize(map.get($theme, "dark")); } } } @if map.has-key($theme, "dark") and config.$explicit-dark-theme { @include bem.theme("dark") { @include props.materialize(map.values(meta.module-variables("vars"))); @include props.materialize(map.get($theme, "dark")); } } } @else { @include bem.theme(string.slice($theme-name, 3)) { @include props.materialize(map.get($theme, "light")); color: props.get(vars.$theme, --text); background-color: props.get(vars.$theme, --bg-base); @if map.has-key($theme, "dark") { @media (prefers-color-scheme: dark) { @include props.materialize(map.get($theme, "dark")); } } } } } }