Cóż, najbliżej mogłem dostać się do tego, co chciałem było:
#_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);
}
}
}
Nie jest to najbardziej eleganckie rozwiązanie, ale robi się mi mixin mogę ponowne wykorzystanie w kilku innych dziedzinach. Czy ktoś widzi jakiś sposób, aby uczynić to bardziej wydajnym?
Chociaż nie próbowałem tego wcześniej, jestem całkiem pewny, że to nie jest obsługiwany. Nie mogę znaleźć tego pod [interpolacją] (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#interpolation_) lub w innych odpowiednich sekcjach. Szczęśliwe kodowanie. –
Tak, nie przyjdę również z bardzo eleganckim rozwiązaniem. Naprawdę wolałbym nie tworzyć klasy dla każdego kategorycznego koloru, ale skłaniam się ku temu, aby móc użyć @extend. # {$ Cat} _background_color (lub cokolwiek) wewnątrz pętli. – Brandon
Może być możliwe użycie funkcji @function lub napisanie rozszerzenia (jestem pewien, że zmienne powinny być dostępne w tych kontekstach). –