Вот решение, которое я придумала.
С тех пор, как я отправил вопрос, все изменилось.Теперь мне нужно не только изменить яркость на 50%, но и на четверти, например, на 25%, 50% и 75%, для каждого цвета.
Итак, в блоке комментариев в моем файле SCSS я имеюсписок значений яркости, которые мне нужны для всех моих цветов, в данном случае мы обращаемся только к моему «дымчатому» цвету, значение яркости которого равно 30
.
Принимая исходное смешение цветов:
//Color
@mixin smoke($l:30) {
color: hsl(284, 3, $l);
}
… если я хочу добавить 25% Легкости к 30
, я делаю это:
.selector {
@include smoke(30*1.25);
}
Звучит очень глупо, когда вы понимаете это, я знаю, так что терпите мое объяснение:
Это означает, что он умножает 30
на себя (на 1
), а затем добавляет 25% от себя (.25
).По сути, это то же самое, что и 30 + 7.5
.
. Оказывается, hsl(284, 3, 37.5)
, и это именно то, что мне нужно.Имейте в виду, что Sass отображает цветовые режимы HSL и HSLA в значениях HEX.¬¬ Я знаю, верно?
Все примеры вместе
Вот как использовать этот подход для сложения и вычитания 25%, 50% и75% легкости от цвета.
светлый цвет (увеличение яркости):
+ 25% яркости
.selector {
@include smoke(30*1.25);
}
+ 50% Легкость
.selector {
@include smoke(30*1.5);
}
+ 75% Яркость
.selector {
@include smoke(30*1.75);
}
Более темный цвет (уменьшение яркости):
-25% Легкость
.selector {
@include smoke(30/1.25);
}
-50% Легкость
.selector {
@include smoke(30/1.5);
}
-75% Легкость
.selector {
@include smoke(30/1.75);
}
Прелесть этого метода в том, что если мне нужно добавить больше цветовых диапазонов, скажем, каждые 10%, все, что мне нужно сделать, это изменить десятичные значения на кратные 10, например, так:
.selector {
@include smoke(30*1.20);
}
или
.selector {
@include smoke(30/1.60);
}
Единственным недостатком этого метода является то, что разработчик должен знать конкретное значение Lightness цвета, поскольку он должен быть жестко закодирован в аргументе.Но именно поэтому у меня есть список значений Lightness, которые мне нужны для всех моих цветов, в блоке комментариев внизу моего файла SCSS ¯_ (ツ) _ / ¯.
Если у вас есть лучший способ добиться этогооб этом, пожалуйста, оставьте свой ответ.
Спасибо.