Skip to content

Mixins

The Magnesium mixins help you to easily manage theme styles from ,user-provided theme's tokens map.

emit-custom-props($theme, $prefix)

Emits CSS custom properties declarations from a user-provided theme's.

Parameters

ParameterDescriptionDefault
$themeThe reference theme's tokens map.undefined
$prefixToken's prefix name to prepend for each token's custom property name.null

Usage

scss
@use "@magnesium/theme";

$theme: (
    "text-color": darkcyan
);

.foo {
    @include theme.emit-custom-props($theme, "button");
}

Returns

scss
.foo {
    --mg-button-text-color: darkcyan;
}

emit-color-scheme($scheme)

Emits CSS media feature prefers-color-scheme declarations.

Parameters

ParameterDescriptionDefault
$schemeThe color scheme. Choose between light or dark.light

Usage

scss
@use "@magnesium/theme";

@include theme.emit-color-scheme("light") {
    :root {
        --mg-button-text-color: darkcyan;
    }
}

Returns

scss
@media (prefers-color-scheme: light) {
    :root {
        --mg-button-text-color: darkcyan;
    }
}

emit-theme-vars($theme)

Emits CSS media feature prefers-color-scheme declarations.

Parameters

ParameterDescriptionDefault
$schemeThe color scheme. Choose between light or dark.light

Usage

scss
@use "@magnesium/theme";

$theme: (
    "text-color": darkcyan
);

$theme: theme.create-theme-vars($theme, "button");

.foo {
    @include theme.emit-theme-vars($theme);
}

Returns

scss
.foo {
    --mg-button-text-color: darkcyan;
}

Released under the MIT License.