Есть ли оператор » и » (

#css #sass

Вопрос:

У меня есть этот HTML-элемент:

<button class="Button Button--is-primary Button--is-disabled Button--is-dark-theme">

И мне нужно определить в Scss набор глубоких селекторов, подобных этому:

 .Button {
  // Apply this for all Buttons that are dark theme
  amp;--is-dark-theme {
    // Apply this for all Buttons that are Dark AND are Primary
    amp;--is-primary {
      //...
    }
  }
}
 

Но моя проблема в том, что правило создаст это:

.Button--is-dark-theme--is-primary

Когда мне действительно нужно:

.Button--is-dark-theme.Button--is-primary

Ответ №1:

Я только что нашел это:

 .Button {
  $self: amp;;

  // Apply this for all Buttons that are dark theme
  amp;--is-dark-theme {

    // Apply this for all Buttons that are Dark AND are Primary
    amp;#{$self}--is-primary {
      color: red;
    }
  }
}
 

Что порождает:

 .Button--is-dark-theme.Button--is-primary {
  color: red;
}
 

Есть лучший вариант?