如何使用 hsl 而不是 rgb 进行 scss 全局声明 javascript api

Posted

技术标签:

【中文标题】如何使用 hsl 而不是 rgb 进行 scss 全局声明 javascript api【英文标题】:how can use hsl instead of rgb for scss global declaration javascript api 【发布时间】:2021-04-12 00:34:12 【问题描述】:

这就是我的 next.config.js 的样子

// next.config.js

const env = require('./site.config').env;
const Colour = require('sass').types.Color;
const r, g, b = require('./site.config').customProperties;

const withBundleAnalyzer = require('@next/bundle-analyzer')(enabled: !!process.env.ANALYZE);

const config = 
  env: 
    ...env,
  ,
  sassOptions: 
    functions: 
      'primaryOpacityColour()': function()
        return new Colour(r, g,b)
        // here I want to return Colour in hsl form
      ,
    ,
  ,
;

module.exports = withBundleAnalyzer(config);

我无法以 hsl 形式返回颜色,谁能帮我解决这个问题?

【问题讨论】:

您能否说明您是否需要帮助将 rgb 转换为 hsl,或者是否需要帮助以返回 sass 将在 hsl 而不是 rgb 中呈现的内容? 【参考方案1】:

根据https://github.com/sass/sass/issues/2988,您无法使用 javascript api 执行此操作。 dart-sass 在 dart api 中有它,但在 javascript api 中没有(还没有)。

您最好的选择是从 hsl 转换为 rgb 并返回 Colour,就像您现在所做的那样。

【讨论】:

以上是关于如何使用 hsl 而不是 rgb 进行 scss 全局声明 javascript api的主要内容,如果未能解决你的问题,请参考以下文章

RGB 到 HSL 函数中的饱和度计算不正确

从 HSL 值创建 C# 颜色

如何使用 javascript/jquery 知道给定字符串是 hex、rgb、rgba 还是 hsl 颜色?

如何使用快捷键(只有键盘没有鼠标)更改 css 文件中的颜色类型(rgb、hsl、hex)?代码

用MATLAB编写RGB到HSL和HSL到RGB颜色空间的转换程序:rgb2hsl.m和hsl2rgb.m

使用 Objective C 从 RGB 转换为 HSL