SASS |颜色功能

原文:https://www.geeksforgeeks.org/sass-color-functions/

颜色组件:在我们进入 SASS 颜色功能之前,让我们确保我们知道它们所改变的颜色元素。简单的颜色理论将任何颜色分为三个基本组成部分:色调、饱和度和值。

  • HUE (也叫“局部色”)一般就是我们说的颜色。比如:蓝天,黄太阳。
  • 饱和度是表示颜色中存在的色调量的量度,即颜色强度。例如,云的颜色从白色变成蓝色再变成黑色。
  • 是颜色明度或暗度的度量。例如,一块普通的棕色土地,一部分在阳光下,另一部分在阴影中。

颜色模型:在技术世界中,颜色要么表示为 RGB,要么表示为 HSL。(还有其他各种各样的模型,比如 CMYK 和 LAB,但是只有 RGB 和 HSL 与 SASS 开发相关。)

RGB 值是基本颜色中“红色”“绿色”和“蓝色”数量的度量。每个组件都是 0(颜色不存在)到 255(完整颜色)之间的值。RGB 颜色基本上是用十六进制表示的,如#0000ff 或#2abd35。

HSL 代表“色调、饱和度和亮度”。人们可能还会得到 HSV(这里 V 代表“价值”),或 HSB(这里 B 代表“亮度”)模型。比如 Photoshop 使用的是 HSB。

HSL($色相,$饱和度,$值):色相以色轮上的度数表示(纯红色为 0,纯绿色为 120,纯蓝色为 240),而饱和度和值以百分比表示。

这是一个相当简单的例子。在 RGB 和 HSL 之间变化时,颜色的色调分量有时会变得相当难看。比如#ac4138 的色相是 4.65517 度。

不透明度:在 RGB 和 HSL 颜色模型中,不透明度是通过 0 到 100%之间的 alpha 值给出的,0 表示完全透明,100%表示完全不透明。

SASS 颜色功能:RGB()和 hsl()用于制作更简短的 CSS。所有现代浏览器都支持 rgba()和 hsla() CSS 函数,所以 SASS transpiler 会在 CSS 中保持这些函数不变。

其余三个函数“灰度()、反转()和补码()”在当前颜色的基础上生成一种新颜色。Invert()函数,将每个红、绿、蓝值和补码()反转,将颜色旋转 180 度,得到非常相似但不完全相同的结果。

  1. RGB($红,$绿,$蓝):此方法基于给定的十进制值或百分比创建不透明的颜色。

    • 例:

      html rgb(252, 186, 3)

    • 输出:

      ```html

      fcba03

      ```

      html rgb(50%, 50%, 100%)

    • 输出:

      ```html

      8080ff

      ```

  2. rgba($红,$绿,$蓝,$α):此方法根据给定不透明度下的给定十进制或百分比值创建颜色。

    • 例:

      html rgba(71, 214, 75, 0.5 )

    • 输出:

      html rgba(71, 214, 75, 0.5 )

  3. HSL($色相,$饱和度,$明度):该方法基于给定的色相(以度为单位)、饱和度和明度(以百分比为单位)创建不透明的颜色。

    • 例:

      html hsl(122, 64, 56)

    • 输出:

      ```html

      47d74c

      ```

  4. HSLA($色相,$饱和度,$明度,$alpha): 该方法在指定的不透明度下,基于指定的色相、饱和度和明度创建颜色。

    • 例:

      html hsla(122, 64, 56, 50)

    • 输出:

      html hsla(122, 64, 56, 50)

  5. 灰度($color): 该方法返回与“color”具有相同强度的灰度值。

    • 例:

      html grayscale(#ad4038)

    • 输出:

      ```html

      737373

      ```

  6. 补码($color): 此方法返回的颜色具有相同的饱和度和值,但色调与“color”的色调相差 180 度。

    • 例:

      html complement(#47d74c)

    • 输出:

      ```html

      d747d2

      ```

  7. 反转($color): 该方法返回“color”的单个红、绿、蓝分量的反转。

    • 例:

      html invert(#ad4038)

    • 输出:

      ```html

      52bfc7

      ```

SASS 成分提取功能:

  1. 红色($color): 此方法返回“color”的红色成分。

    • 例:

      html red(#d747d2)

    • 输出:

      html 215

  2. 绿色($color): 此方法返回“color”的绿色成分。

    • 例:

      html green(#d747d2)

    • 输出:

      html 71

  3. 蓝色($color): 该方法返回“color”的蓝色成分。

    • 例:

      html blue(#d747d2)

    • 输出:

      html 210

  4. 色相($color): 此方法返回“color”的色相分量。

    • 例:

      html hue(#d747d2)

    • 输出:

      html 302°

  5. 饱和度($color): 此方法返回“color”的饱和度分量。

    • 例:

      html saturation(#d747d2)

    • 输出:

      html 64%

  6. 明度($color): 此方法返回“color”的明度分量。

    • 例:

      html lightness(#d747d2)

    • 输出:

      html 56%

  7. alpha($color): 此方法将颜色的 alpha 通道作为 0 到 1 之间的数字返回。

    • 例:

      html alpha(#d747d2)

    • 输出:

      html 1

  8. 不透明度($color): 此方法将颜色的不透明度作为 0 到 1 之间的数字返回。

    • 例:

      html opacity(rgba(215, 71, 210, 0.7);

    • 输出:

      html 0.7

SASS 操纵颜色功能

  1. mix($color1,$color2,$weight): 此方法创建的颜色是 color1 和 color2 的组合。重量参数必须介于 0%和 100%之间。更大的重量意味着应该使用更多的颜色 1。较小的重量意味着应该使用更多的颜色 2。默认值为 50%。
  2. 调整-色调($color,$degrees): 此方法以-360 度到 360 度的角度调整颜色的色调。

    • 例:

      html adjust-hue(#7fffd4, 80deg);

    • 输出:

      ```html

      8080ff

      ```

  3. 调整-color($color,$red,$green,$blue,$色相,$饱和度,$明度,$alpha): 此方法按给定量调整一个或多个参数。该函数将给定量添加到现有颜色值或从现有颜色值中减去给定量。

  4. 变色($color,$red,$green,$blue,$色相,$饱和度,$明度,$alpha): 此方法将一种颜色的一个或多个参数设置为新值。

    • 例:

      html change-color(#7fffd4, red: 255);

    • 输出:

      html #ffffd4

  5. 缩放-颜色($color,$red,$green,$blue,$饱和度,$明度,$alpha): 此方法缩放颜色的一个或多个参数。

  6. rgba($color,$alpha): 这个方法用给定的 alpha 通道创建一个新的颜色。

    • 例:

      html rgba(#7fffd4, 30%)

    • 输出:

      html rgba(127, 255, 212, 0.3)

  7. 变浅($color,$amount): 此方法创建一个介于 0%和 100%之间的较浅颜色。“数量”参数将 HSL 亮度增加该百分比。

  8. 变暗($color,$amount): 此方法创建一个更暗的颜色,其量在 0%和 100%之间。“数量”参数将 HSL 亮度降低该百分比。
  9. 饱和($color,$amount): 此方法创建更饱和的颜色,其量在 0%和 100%之间。“数量”参数会将 HSL 饱和度增加该百分比。
  10. 去饱和($color,$amount): 此方法创建饱和度较低的颜色,其量介于 0%和 100%之间。“数量”参数将 HSL 饱和度降低该百分比。
  11. 不透明($color,$amount): 此方法创建一种更不透明的颜色,其量介于 0 和 1 之间。“数量”参数将 alpha 通道增加该数量。
  12. V: 此方法创建的颜色更不透明,数量在 0 到 1 之间。“数量”参数将 alpha 通道增加该数量。
  13. 透明化($color,$amount): 此方法创建一种更透明的颜色,其量在 0 到 1 之间。“数量”参数将 alpha 通道减少该数量。
  14. 淡入淡出($color,$amount): 此方法创建一种更透明的颜色,其量在 0 到 1 之间。“数量”参数将 alpha 通道减少该数量。