How could I create a mixin that uses as an argument a nested mixin property?
I explain myself with the next example.
I have a 'transition-property' mixin:
.transition-property (@props){
-webkit-transition-property: @props;
-moz-transition-property: @props;
-o-transition-property: @props;
transition-property: @props;
}
From this mixin I want to use a 'transform' mixin property, so I tried to call this like:
.transition-property(~"opacity, .transform");
The '.transform' mixin should return one of the next values:
transform
-ms-transform
-webkit-transform
The thing is that I don't find the way to inject these property names to the 'transition-property' mixin, could someone shed some light on this?
FINAL DESIRED CSS
element {
-webkit-transition-property: opacity, -webkit-transform;
-moz-transition-property: opacity, -moz-transform;
-o-transition-property: opacity, -o-transform;
transition-property: opacity, transform;
}
It's a simpler solution by right of before:
usage:
output:
Tested on LessCSS 1.7.0.1
OK, so first of all, a general remark: using a CSS preprocessor (e.g. LESS, SASS or whatever) to generate vendor prefixes is actually one of the greatests misuses these days (really, there's no need to bloat your code with prefixes and waste your time writing such mixins since tools like Autoprefixer, -prefix-free and similar came in).
Either way here's a (sort of) generic solution (but considering amount of code and its complexity I think it's actually an overkill, here I will use LESS 1.6.0 example because in earlier versions it would be even more verbose and hackish):
(Of course it can be simplified a bit if you need only
transform
to be prefixed but still looks too crazy).upd: fixed some errors.