possible to define an array in Sass?
Question
wondering if it is possible to use an array with Sass as I find my self repeating the following sort of thing:
.donkey
h2
background-color= !donkey
.giraffe
h2
background-color= !giraffe
.iguana
h2
background-color= !iguana
Solution
No, this isn't possible. The best way to do it is to define a mixin:
+animal-h2(!name, !color)
.#{name} h2
background-color= !color
Then you can have one line per style, rather than three:
+animal-h2("donkey", !donkey)
+animal-h2("giraffe", !giraffe)
+animal-h2("iguana", !iguana)
OTHER TIPS
Absolutely.
$animals: "donkey", "giraffe", "iguana"
@foreach $animal in $animals
.#{$animal}
h2
background-color: !#{$animal}
nex3's answer is correct. To get this working with SASS on Rails 3.1 I needed to have the following in a css.scss file:
$donkey: #CC4499;
@mixin animal-h2($name, $color) {
.#{$name} h2 {
background-color: $color;
}
}
@include animal-h2("donkey", $donkey);
@include animal-h2("horse", #000);
Which output:
.donkey h2 {
background-color: #CC4499;
}
.horse h2 {
background-color: black;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow