Generating subclasses with Sass Maps
Say you have a set of colors that correspond to class names:
$category-colors: (
"bananas": "yellow",
"oranges": "orange",
"blue-milk": "cyan",
"cabbage": "lime",
"sour-warheads": "magenta"
);
And sometimes those class names recolor a background, but sometimes they might override something else, like a border or text color. Try this mixin on for size:
@mixin category-colors($attr:color)
@each $class, $color in $category-colors
&.#{$class}
#{$attr}: #{$color}
So this call will output subclasses of .widget.bananas
, etc., each with the appropriate text color ...
.widget
@include category-colors
And this one will output subclasses with the appropriate background color (or whatever other attribute you'd like).
.widget
@include category-colors(background-color)
Tweet