@import “themes”;

@mixin set-root-theme($theme-name) {

:root {
  @if map-has-key($themes, $theme-name) {
    @include theme-variables-for($theme-name);
  } @else {
    @error "ERROR: Specified theme: <#{$theme-name}> does not exist";
  }
}

}

@mixin data-themes() {

@each $theme-name in map-keys($themes) {
  [data-theme="#{$theme-name}"] {
    @include theme-variables-for($theme-name);
  }
}

}

@mixin theme-variables-for($theme) {

@each $category-key, $category-values in map-get($themes, $theme) {
  @each $key, $value in $category-values {
    --theme-#{$category-key}-#{$key}: #{$value};
  }
}

}