В нашей системе проектирования в Qaru мы используем Less для компиляции значений цвета CSS.
У нас есть глобальные переменные Less, такие как @orange-500
, которые часто модифицируются для состояний наведения, стилевого оформления границ, цветов фона и т.д.
В Less это записывается как darken(@orange-500, 5%)
. Я пытаюсь добиться чего-то похожего, используя собственные переменные CSS. Переключение на CSS-переменные позволит нам быстрее отправлять функции, основанные на их создании (Stack Exchange Network, Dark Mode и т.д.), С меньшим количеством строк CSS, при этом позволяя менять переменные в медиазапросе (высокая контрастность, темный режим и т.д.).).
Этот пример переопределения значения яркости наших цветов в hsl
работает, когда переменные находятся в классе CSS:
.card {
--orange: hsl(255, 72%, var(--lightness, 68%));
background: var(--orange);
}
.card:hover {
--lightness: 45%;
}
<div class="card">
Hello world
</div>