curtisblackwell curtisblackwell - 3 months ago 7
Sass (Sass) Question

Is it possible to nest variables within variables in SASS?

I have a mixin that accepts an argument that I want to pass into a variable.

@mixin my_mixin($arg) {
background-color: $state-#{$arg}-text;
}

Answer

Interpolation of variable names is currently not possible in SASS. Here is the issue that discusses this https://github.com/nex3/sass/issues/626

However, you may use interpolation of placeholders:

%my-dark-styles {
   background-color: #000;
}
%my-white-styles {
   background-color: #FFF;
}

@mixin my_mixin($arg) {
   @extend %my-#{$arg}-styles;
}

.header {
   @include my_mixin("dark");
}
.footer {
   @include my_mixin("white");
}

This compiles to:

.header {
  background-color: #000; }

.footer {
  background-color: #FFF; }