UNPKG

8.37 kBSource Map (JSON)View Raw
1{"version":3,"sources":["icon/generate.js"],"names":["hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","index","opacity","getHue","hsv","i","light","hue","Math","round","h","getSaturation","s","saturation","Number","toFixed","getValue","value","v","generate","color","opts","patterns","pColor","TinyColor","toHsv","colorString","toHexString","push","theme","map","darkColorString","backgroundColor","mix"],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor';\nconst hueStep = 2; // 色相阶梯\nconst saturationStep = 0.16; // 饱和度阶梯,浅色部分\nconst saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nconst brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nconst brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nconst lightColorCount = 5; // 浅色数量,主色上\nconst darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\nconst darkColorMap = [\n { index: 7, opacity: 0.15 },\n { index: 6, opacity: 0.25 },\n { index: 5, opacity: 0.3 },\n { index: 5, opacity: 0.45 },\n { index: 5, opacity: 0.65 },\n { index: 5, opacity: 0.85 },\n { index: 4, opacity: 0.9 },\n { index: 3, opacity: 0.95 },\n { index: 2, opacity: 0.97 },\n { index: 1, opacity: 0.98 },\n];\nfunction getHue(hsv, i, light) {\n let hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n }\n else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n }\n else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n let saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n }\n else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n }\n else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n let value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n }\n else {\n value = hsv.v - brightnessStep2 * i;\n }\n if (value > 1) {\n value = 1;\n }\n return Number(value.toFixed(2));\n}\nexport default function generate(color, opts = {}) {\n const patterns = [];\n const pColor = new TinyColor(color);\n for (let i = lightColorCount; i > 0; i -= 1) {\n const hsv = pColor.toHsv();\n const colorString = new TinyColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true),\n }).toHexString();\n patterns.push(colorString);\n }\n patterns.push(pColor.toHexString());\n for (let i = 1; i <= darkColorCount; i += 1) {\n const hsv = pColor.toHsv();\n const colorString = new TinyColor({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i),\n }).toHexString();\n patterns.push(colorString);\n }\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(({ index, opacity }) => {\n const darkColorString = new TinyColor(opts.backgroundColor || '#141414')\n .mix(patterns[index], opacity * 100)\n .toHexString();\n return darkColorString;\n });\n }\n return patterns;\n}\n"],"file":"generate.js"}
\No newline at end of file