@mrts/colorkit 0.3.21 → 0.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +10 -2
- package/dist/index.mjs +40 -3
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import { ColorData, ParsedColor } from "@mrts/colorsets";
|
|
2
1
|
import chroma from "chroma-js";
|
|
2
|
+
import { ColorData, ParsedColor } from "@mrts/colorsets";
|
|
3
3
|
|
|
4
4
|
//#region src/types.d.ts
|
|
5
5
|
type ColorArgument = string | ColorData | ParsedColor | chroma.Color;
|
|
6
6
|
//#endregion
|
|
7
|
-
|
|
7
|
+
//#region src/utils.d.ts
|
|
8
|
+
declare function chromaColor(arg: ColorArgument): chroma.Color | undefined;
|
|
9
|
+
declare function chromaColorFromString(s: string): chroma.Color | undefined;
|
|
10
|
+
declare function chromaColorFromParsedColor(pc: ParsedColor): chroma.Color | undefined;
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/contrast.d.ts
|
|
13
|
+
declare function contrastColor(c: ColorArgument, candidates?: ColorArgument[]): chroma.Color;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { ColorArgument, chromaColor, chromaColorFromParsedColor, chromaColorFromString, contrastColor };
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import chroma from "chroma-js";
|
|
2
|
+
import colorParse from "color-parse";
|
|
3
|
+
|
|
4
|
+
//#region src/utils.ts
|
|
5
|
+
function chromaColor(arg) {
|
|
6
|
+
if (typeof arg == "string") return chromaColorFromString(arg);
|
|
7
|
+
else if (typeof arg == "object") if ("_rgb" in arg) return arg;
|
|
8
|
+
else if ("parsed" in arg) return chromaColorFromParsedColor(arg.parsed);
|
|
9
|
+
else return chromaColorFromParsedColor(arg);
|
|
10
|
+
}
|
|
11
|
+
function chromaColorFromString(s) {
|
|
12
|
+
try {
|
|
13
|
+
return chroma(s);
|
|
14
|
+
} catch {
|
|
15
|
+
return chromaColorFromParsedColor(colorParse(s));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function chromaColorFromParsedColor(pc) {
|
|
19
|
+
if (pc.space == "rgb") return chroma.rgb(pc.values[0], pc.values[1], pc.values[2], pc.alpha);
|
|
20
|
+
else if (pc.space == "oklch") return chroma.oklch(pc.values[0], pc.values[1], pc.values[2], pc.alpha);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region src/contrast.ts
|
|
25
|
+
function contrastColor(c, candidates = [chroma("black"), chroma("white")]) {
|
|
26
|
+
const chromaCandidates = candidates.map((arg) => chromaColor(arg)).filter((c$1) => c$1 != void 0);
|
|
27
|
+
const cc = chromaColor(c);
|
|
28
|
+
if (cc == void 0) return chromaCandidates[0];
|
|
29
|
+
let bestCandidate = chromaCandidates[0];
|
|
30
|
+
let bestContrast = chroma.contrast(cc, bestCandidate);
|
|
31
|
+
for (const candidate of chromaCandidates.slice(1)) {
|
|
32
|
+
const contrast = chroma.contrast(cc, candidate);
|
|
33
|
+
if (contrast > bestContrast) {
|
|
34
|
+
bestCandidate = candidate;
|
|
35
|
+
bestContrast = contrast;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return bestCandidate;
|
|
39
|
+
}
|
|
3
40
|
|
|
4
41
|
//#endregion
|
|
5
|
-
export {
|
|
42
|
+
export { chromaColor, chromaColorFromParsedColor, chromaColorFromString, contrastColor };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrts/colorkit",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.22",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Color Kit (chroma-js based)",
|
|
6
6
|
"type": "module",
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"chroma-js": "^3.2.0",
|
|
33
33
|
"color-parse": "^2.0.2"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "59ceac082db5af612cea7fd7782720d99ba5ba48"
|
|
36
36
|
}
|