Sass 颜色函数
最后更新于:2022-03-27 02:40:24
Sass 颜色函数
Sass 颜色函数可以分为三个部分:颜色设置、颜色获取以及颜色操作。
下表列出了 Sass 的颜色函数:
Sass 颜色设置
函数 | 描述 & 实例 |
---|---|
rgb(red, green, blue) | 创建一个 Red-Green-Blue (RGB) 色。其中 R 是 “red” 表示红色,而 G 是 “green” 绿色,B 是 “blue” 蓝色。
实例: |
rgba(red, green, blue, alpha) | 根据红、绿、蓝和透明度值创建一个颜色。
实例: |
hsl(hue, saturation, lightness) | 通过色相(hue)、饱和度(saturation)和亮度(lightness)的值创建一个颜色。
实例: |
hsla(hue, saturation, lightness, alpha) | 通过色相(hue)、饱和度(saturation)、亮度(lightness)和透明(alpha)的值创建一个颜色。
实例: |
grayscale(color) | 将一个颜色变成灰色,相当于 desaturate( color,100%)。
实例: |
complement(color) | 返回一个补充色,相当于adjust-hue($color,180deg)。
实例: |
invert(color, weight) | 返回一个反相色,红、绿、蓝色值倒过来,而透明度不变。
实例: |
Sass 颜色获取
函数 | 描述 & 实例 |
---|---|
red(color) | 从一个颜色中获取其中红色值(0-255)。
实例: |
green(color) | 从一个颜色中获取其中绿色值(0-255)。
实例: |
blue(color) | 从一个颜色中获取其中蓝色值(0-255)。
实例: |
hue(color) | 返回颜色在 HSL 色值中的角度值 (0deg – 255deg)。
实例: |
saturation(color) | 获取一个颜色的饱和度值(0% – 100%)。
实例: |
lightness(color) | 获取一个颜色的亮度值(0% – 100%)。
实例: |
alpha(color) | Returns the alpha channel of color as a number between 0 and 1.
实例: |
opacity(color) | 获取颜色透明度值(0-1)。
实例: |
Sass 颜色操作
函数 | 描述 & 实例 |
---|---|
mix(color1, color2, weight) | 把两种颜色混合起来。 weight 参数必须是 0% 到 100%。默认 weight 为 50%,表明新颜色各取 50% color1 和 color2 的色值相加。如果 weight 为 25%,那表明新颜色为 25% color1 和 75% color2 的色值相加。 |
adjust-hue(color, degrees) | 通过改变一个颜色的色相值(-360deg – 360deg),创建一个新的颜色。
实例: |
adjust-color(color, red, green, blue, hue, saturation, lightness, alpha) |
这个函数能够调整给定色彩的一个或多个属性值,包括 RGB 和 HSL 色彩的各项色值参数,另外还有 alpha 通道的取值。这些属性值的调整依赖传入的关键值参数,通过这些参数再与给定颜色相应的色彩值做加减运算。
实例: |
change-color(color, red, green, blue, hue, saturation, lightness, alpha) |
跟上面 adjust-color 类似,只是在该函数中传入的参数将直接替换原来的值,而不做任何的运算。
实例: |
scale-color(color, red, green, blue, saturation, lightness, alpha) |
另一种实用的颜色调节函数。adjust-color 通过传入的参数简单的与本身的色值参数做加减,有时候可能会导致累加值溢出,当然,函数会把结果控制在有效的阈值内。而 scale-color 函数则避免了这种情况,可以不必担心溢出,让参数在阈值范围内进行有效的调节。
举个例子,一个颜色的亮度 lightness 取值在 0% ~ 100% 之间,假如执行 scale-color($color, $lightness: 40%),表明该颜色的亮度将有 (100 – 原始值) × 40% 的增幅。 另一个例子,执行 scale-color($color, $lightness: -40%),表明这个颜色的亮度将减少 (原始值 – 0) × 40% 这么多的值。 所有传参的取值范围都在 0% ~ 100% 之间,并且 RGB 同 HSL 的传参不能冲突。 scale-color(hsl(120, 70%, 80%), $lightness: 50%) => hsl(120, 70%, 90%) scale-color(rgb(200, 150, 170), $green: -40%, $blue: 70%) => rgb(200, 90, 229) scale-color(hsl(200, 70%, 80%), $saturation: -90%, $alpha: -30%) => hsla(200, 7%, 80%, 0.7) |
rgba(color, alpha) | 根据红、绿、蓝和透明度值创建一个颜色。
实例: |
lighten(color, amount) | 通过改变颜色的亮度值(0% – 100%),让颜色变亮,创建一个新的颜色。 |
darken(color, amount) | 通过改变颜色的亮度值(0% – 100%),让颜色变暗,创建一个新的颜色。 |
saturate(color, amount) | 提高传入颜色的色彩饱和度。等同于 adjust-color( color, saturation: amount) |
desaturate(color, amount) | 调低一个颜色的饱和度后产生一个新的色值。同样,饱和度的取值区间在 0% ~ 100%。等同于 adjust-color(color, saturation: -amount) |
opacify(color, amount) | 降低颜色的透明度,取值在 0-1 之。等价于 adjust-color(color, alpha: amount) |
fade-in(color, amount) | 降低颜色的透明度,取值在 0-1 之。等价于 adjust-color(color, alpha: amount) |
transparentize(color, amount) | 提升颜色的透明度,取值在 0-1 之间。等价于 adjust-color(color, alpha: -amount) |
fade-out(color, amount) | 提升颜色的透明度,取值在 0-1 之间。等价于 adjust-color(color, alpha: -amount) |