SASS: meta.load-css

#sass #themes #meta

#sass #темы #мета

Вопрос:

Я пытаюсь создать такой модуль:

 button, .btn {
   @include meta.load-css("theme");

   amp;:hover {
      @include meta.load-css("theme-hover");
   }
}
 

тема-hover.scss

 selector {
   background-color: red;
}
 

у theme-hover.scss не должно быть такого селектора:

 background-color: red;
 

но без селектора компилятор scss отказывается от кода.
Я пытался использовать > amp; { ... } и amp;:not(suck) { ... } , но ни один из них не удался.

есть решение?

Ответ №1:

Вы можете избежать этого, обернув код CSS @mixin , который будет доступен с помощью @use and @include вместо @use "sass:meta"; @include meta.load-css() правила and .

 // _module.scss
@mixin foo {
  foo: foo;
}

// main.scss
@use "module";

.bar {
  amp;:bar {
    @include module.foo;
  }
}

// main.css
.bar:bar {
  foo: foo;
}
 

Комментарии:

1. использование @ use или @ include не изменяются динамически. моя цель — создать библиотеку sass, которую можно настраивать и настраивать @ использовать «my-button» с помощью ($theme: «темы / по умолчанию», $theme-hover: «темы / наведение»);