Глядя на ваши шестнадцатеричные значения, вы просто меняете оттенок на 8 каждый раз.то есть:
#ffcc00 = HSL: 48° 100% 50%
#ffaa00 = HSL: 40° 100% 50%
#ff8800 = HSL: 32° 100% 50%
и т. д.
Так вот, как вы будете делать это в МЕНЬШЕ:
@base: #ffcc00;
@numChildren: 5;
.loop(@counter, @color) when (@counter <= @numChildren) {
h2:nth-child(@{counter}) {
border: 5px solid @color;
}
@newColor: hsl(hue(@color) - 8, 100%, 50%);
.loop((@counter + 1),@newColor); // next iteration
}
.loop(1,@base); // launch the loop
CODEPEN
Приведенный выше код будет предполагать, что разметка будет выглядеть примерно так (5 детей):
<div class="mainBody">
<h2>one</h2>
<h2>two</h2>
<h2>three</h2>
<h2>four</h2>
<h2>five</h2>
</div>
и создаст следующий CSS:
h2:nth-child(1) {
border: 5px solid #ffcc00;
}
h2:nth-child(2) {
border: 5px solid #ffaa00;
}
h2:nth-child(3) {
border: 5px solid #ff8800;
}
h2:nth-child(4) {
border: 5px solid #ff6600;
}
h2:nth-child(5) {
border: 5px solid #ff4400;
}