mcpField
C
color-utilities-in-javascript

color-utilities-in-javascript

github.com/rodydavis开发6044 次安装2 周前更新
代码仓库

关于 color-utilities-in-javascript

这份 JavaScript 参考资料面向处理颜色值的开发者,提供 RGB、HSL 和 HEX 格式之间转换的代码示例。

主要功能

  1. 01将 RGB 转换为 HSL
  2. 02将 HEX 转换为 RGB
  3. 03将 HSL 转换为 HEX

适用场景

  1. 01将用户输入的 HEX 颜色转换为 RGB
  2. 02将 RGB 值转换为 HSL 以便处理颜色

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rodydavis/skills --skill color-utilities-in-javascript

安装后在 Claude Code 中输入/color-utilities-in-javascript确认已加载。

详细介绍

JavaScript 中的颜色实用工具

由 GitHub Copilot 生成的颜色实用工具。

将 RGB 颜色转换为 HSL
function rgbToHsl(r, g, b) {
    r /= 255;
    g /= 255;
    b /= 255;
    var max = Math.max(r, g, b);
    var min = Math.min(r, g, b);
    var h, s, l = (max + min) / 2;
    if (max == min) {
        h = s = 0;
    } else {
        var d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
        switch (max) {
            case r:
                h = (g - b) / d + (g < b ? 6 : 0);
                break;
            case g:
                h = (b - r) / d + 2;
                break;
            case b:
                h = (r - g) / d + 4;
                break;
        }
        h /= 6;
    }
    return [h, s, l];
} 
将 HEX 转换为 RGB
function hexToRgb(hex) {
    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
    return result ? {
        r: parseInt(result[1], 16),
        g: parseInt(result[2], 16),
        b: parseInt(result[3], 16)
    } : null;
}
将 HSL 转换为 HEX
function hslToHex(h, s, l) {
    var r, g, b;
    if (s == 0) {
        r = g = b = l;
    } else {
        var hue2rgb = function hue2rgb(p, q, t) {
            if (t < 0) t += 1;
            if (t > 1) t -= 1;
            if (t < 1 / 6) return p + (q - p) * 6 * t;
            if (t < 1 / 2) return q;
            if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
            return p;
        };
        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
        var p = 2 * l - q;
        r = hue2rgb(p, q, h + 1 / 3);
        g = hue2rgb(p, q, h);
        b = hue2rgb(p, q, h - 1 / 3);
    }
    return "#" + (1 << 24 | r << 16 | g << 8 | b).toString(16).slice(1);
}

评论

支持 Markdown