我正在寻找一种修改 CSS 变量的方法,就像在 SCSS 中一样
定义一种颜色,如主要颜色 - 我会自动获得焦点和活动状态的阴影。基本上,想改变css变量中的一个变量并获得3种相同颜色的阴影。
我想在 CSS 中实现什么
$color-primary: #f00;
.button {
background: $color-primary;
&:hover,
&:focus {
background: darken($color-primary, 5%);
}
&:active {
background: darken($color-primary, 10%);
}
}
试图达到:
:root {
--color-primary: #f00;
--color-primary-darker: #f20000 // var(--color-primary) * 5% darker
--color-primary-darkest: #e50000 // var(--color-primary) * 10% darker
}
.button {
background: var(--color-primary);
}
.button:hover,
.button:focus {
background: var(--color-primary-darker);
}
.button:active {
background: var(--color-primary-darkest);
}
原文由 Daniel 发布,翻译遵循 CC BY-SA 4.0 许可协议
新 规范 引入了“相对颜色语法”,您可以在其中执行以下操作
想法是将主色转换为
hsl
格式并使用calc()
调整亮度。迄今为止仍然 不支持 此功能,因此请考虑以下解决方案。
您可以考虑
hsl()
颜色并简单地控制亮度:作为旁注,
darken()
也在做同样的事情: