В принципе, это довольно просто, все, что вам нужно сделать, это избежать выражения, ниже вы найдете два примера, как заставить меньше компилятора отображать формат rgba, даже если альфа равен 1:
@color1: rgba(0,0,0,1);
body {
color: ~"rgba("red(@color1), green(@color1), blue(@color1),~" 1)";
background: %(~"rgba(%s, %s, %s, 1)", red(@color1), green(@color1), blue(@color1));
}
Оба примера приведут к rgba(0, 0, 0, 1)
, вам решать, какой из них вы предпочитаете.Бьюсь об заклад, вы найдете больше информации в документах под string escape
и string replace
// РЕДАКТИРОВАТЬ
да, это сложно, но все же, вы можетедополните это миксином, чтобы в дальнейшем он не выглядел так плохо в коде.
@color1: rgba(0,0,0,1);
.rgba(@color) {
//@rgba: ~"rgba("red(@color), green(@color), blue(@color),~" 1)";
@rgba: %(~"rgba(%s, %s, %s, %s)", red(@color), green(@color), blue(@color), alpha(@color));
}
.torgba(@property, @color) {
@{property}: %(~"rgba(%s, %s, %s, %s)", red(@color1), green(@color1), blue(@color1), alpha(@color1));
}
body {
.rgba(@color1); // mixin returns @rgba variable that may be used later on, it's not color object however, but a string
color: @rgba;
background: @rgba;
.torgba(border-color, @color1); // do the same, but returns property with color in given format
}