I’m just getting started with Sass and Compass, and I’m loving it. Something I’d like to do is take advantage of the @each function to simplify repetitive tasks. However, I’ve only seen examples of @each inserting one variable, and I’d like to be able to use multiple variables.
The standard way (from the Sass Reference):
@each $animal in puma, sea-slug, egret, salamander {
.#{$animal}-icon {
background-image: url('/images/#{$animal}.png');
}
}
Which is great, but I’d like to be able to do something like:
@each {$animal $color} in {puma black}, {sea-slug green}, {egret brown}, {salamander red} {
.#{$animal}-icon {
background-color: #{$color};
}
}
Is this possible?
I’m in the same boat (beginner to Sass/Compass) and had to do something similar. Here’s what I came up with, using nested lists:
It’s not the most elegant solution but it should work if you can’t find anything else. Hope it helps! I’d appreciate a better method too 🙂