Ну, ближе всего я мог добраться до того, что я хотел:
#_variables.scss
/* Categories */
$family_wellness_color: #c1d72e;
$lifestyle_color: #f4eb97;
$food_color: #f78f1e;
$media_entertainment_color: #db3535;
$travel_recreation_color: #e30e61;
$education_color: #92278f;
$sports_color: #0070bb;
$technology_color: #00b5cc;
$products_shopping_color: #028e99;
$companies_businesses_color: #56BA42;
#_mixins.scss
@import 'variables';
@mixin get_category_bkgd_color($category_name)
{
@if $category_name == family_wellness
{
@include bkgd_color($family_wellness_color);
}
@else if $category_name == lifestyle
{
@include bkgd_color($lifestyle_color);
}
@else if $category_name == food
{
@include bkgd_color($food_color);
}
@else if $category_name == media_entertainment
{
@include bkgd_color($media_entertainment_color);
}
@else if $category_name == travel_recreation
{
@include bkgd_color($travel_recreation_color);
}
@else if $category_name == education
{
@include bkgd_color($education_color);
}
@else if $category_name == sports
{
@include bkgd_color($sports_color);
}
@else if $category_name == technology
{
@include bkgd_color($technology_color);
}
@else if $category_name == products_shopping
{
@include bkgd_color($products_shopping_color);
}
@else if $category_name == companies_businesses
{
@include bkgd_color($companies_businesses_color);
}
}
#dashboard.scss
@import 'variables', 'mixins';
@each $cat in family_wellness, lifestyle, food, media_entertainment, travel_recreation, education, sports, technology, products_shopping, companies_businesses
{
.#{$cat}
{
.swatch, .bar
{
@include get_category_bkgd_color($cat);
}
}
}
Не самое элегантное решение, но это получить мне подмешать я могу повторно использовать в ряде других областей. Кто-нибудь видит способ сделать это более эффективным?
Хотя я не пробовал это раньше, я уверен, что это не поддерживается. Я не могу найти его под [интерполяцией] (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#interpolation_) или другими применимыми разделами. Счастливое кодирование. –
Да, я не прихожу с очень элегантным решением. Я бы предпочел не создавать класс для каждого категориального цвета, но я склоняюсь к этому, поэтому я могу использовать @extend. # {$ Cat} _background_color (или что-то еще) внутри цикла. – Brandon
Возможно, можно использовать @функцию или написать расширение, возможно (я достаточно уверен, что переменные должны быть доступны в этих контекстах). –