diff --git a/src/assets/styles/_common-variables.scss b/src/assets/styles/_common-variables.scss index d4fd8c7..16167c0 100644 --- a/src/assets/styles/_common-variables.scss +++ b/src/assets/styles/_common-variables.scss @@ -1,4 +1,5 @@ @use 'sass:meta'; +@use 'sass:map'; body { --iqser-primary: lightblue; @@ -45,10 +46,22 @@ body { --iqser-button-radius: 17px; --iqser-button-font-size: 13px; --iqser-button-height: 34px; - --iqser-font-family: Inter, sans-serif; + --iqser-font-family: "some placeholder value that should be overridden when configuring a theme"; +} + +$required-variables: "iqser-font-family" "iqser-primary"; + +@mixin checkRequiredVariables($args, $theme) { + @each $var in $required-variables { + @if map.get(meta.keywords($args), $var) == null { + @error "Missing #{$var} in #{$theme} theme"; + } + } } @mixin configureLight($args...) { + @include checkRequiredVariables($args, "light"); + body.light { @each $name, $value in meta.keywords($args) { --#{$name}: #{$value}; @@ -57,6 +70,8 @@ body { } @mixin configureDark($args...) { + @include checkRequiredVariables($args, "dark"); + body.dark { @each $name, $value in meta.keywords($args) { --#{$name}: #{$value};