如果在 scss 中,则更改变量颜色
Change Variable colors if else in scss
我正在尝试在 scss 中单击更改对比度(向正文添加更改对比度 class)来更改颜色。
我的 static 颜色将是:
$primary-color-blue: #2aace2;
$中蓝色: #2695d2;
$深蓝色: #124b62;
上改变对比:
$primary-color-blue: #177eab;
$中蓝色: #1c6f9b;
$深蓝色: #124b62;
应该类似于 sass
if(change-contrast) {
// console.log (get High Constrast Colors)
}
else {
// console.log (Static Colors)
}
我正在尝试像下面那样做,但如果我像下面那样,我必须添加到每个 class。
@mixin branding {
@each $brand in $brand_clr {
&.#{nth($brand,1)} {
$primary-color-blue: #177eab;
@content;
}
}
}
test {
background: $primary-color-blue;
@include branding {
background: $primary-color-blue;
}
}
感谢您对此的帮助!!
谢谢
我认为解决方案来自结构良好的彩色地图。您需要按类型(例如静态、对比)对颜色进行分组。然后,使用 mixin 来避免复制你自己。
$colors:(
standard: (
primary-color-blue: #2aace2,
mid-blue-color:#2695d2,
dark-blue-color:#124b62
),
contrasted: (
primary-color-blue: #177eab,
mid-blue-color:#1c6f9b,
dark-blue-color:#124b62
)
);
@function get-color($key, $type: 'standard'){
@each $name, $color in map-get($colors, $type){
@if($key == $name){
@return $color
}
}
}
@mixin get-color($property,$color){
#{$property}: get-color($color);
@at-root body.contrasted & {
#{$property}: get-color($color, contrasted);
}
}
.className{
@include get-color(background-color, primary-color-blue)
}
这将输出:
.className {
background-color: #2aace2;
}
body.contrasted .className {
background-color: #177eab;
}
我正在尝试在 scss 中单击更改对比度(向正文添加更改对比度 class)来更改颜色。
我的 static 颜色将是:
$primary-color-blue: #2aace2;
$中蓝色: #2695d2;
$深蓝色: #124b62;
上改变对比:
$primary-color-blue: #177eab;
$中蓝色: #1c6f9b;
$深蓝色: #124b62;
应该类似于 sass
if(change-contrast) {
// console.log (get High Constrast Colors)
}
else {
// console.log (Static Colors)
}
我正在尝试像下面那样做,但如果我像下面那样,我必须添加到每个 class。
@mixin branding {
@each $brand in $brand_clr {
&.#{nth($brand,1)} {
$primary-color-blue: #177eab;
@content;
}
}
}
test {
background: $primary-color-blue;
@include branding {
background: $primary-color-blue;
}
}
感谢您对此的帮助!!
谢谢
我认为解决方案来自结构良好的彩色地图。您需要按类型(例如静态、对比)对颜色进行分组。然后,使用 mixin 来避免复制你自己。
$colors:(
standard: (
primary-color-blue: #2aace2,
mid-blue-color:#2695d2,
dark-blue-color:#124b62
),
contrasted: (
primary-color-blue: #177eab,
mid-blue-color:#1c6f9b,
dark-blue-color:#124b62
)
);
@function get-color($key, $type: 'standard'){
@each $name, $color in map-get($colors, $type){
@if($key == $name){
@return $color
}
}
}
@mixin get-color($property,$color){
#{$property}: get-color($color);
@at-root body.contrasted & {
#{$property}: get-color($color, contrasted);
}
}
.className{
@include get-color(background-color, primary-color-blue)
}
这将输出:
.className {
background-color: #2aace2;
}
body.contrasted .className {
background-color: #177eab;
}