matterviz 0.1.0
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/BohrAtom.svelte +105 -0
- package/dist/BohrAtom.svelte.d.ts +21 -0
- package/dist/ControlPanel.svelte +158 -0
- package/dist/ControlPanel.svelte.d.ts +18 -0
- package/dist/Icon.svelte +23 -0
- package/dist/Icon.svelte.d.ts +8 -0
- package/dist/InfoCard.svelte +79 -0
- package/dist/InfoCard.svelte.d.ts +23 -0
- package/dist/Nucleus.svelte +64 -0
- package/dist/Nucleus.svelte.d.ts +16 -0
- package/dist/Spinner.svelte +44 -0
- package/dist/Spinner.svelte.d.ts +7 -0
- package/dist/api.d.ts +6 -0
- package/dist/api.js +30 -0
- package/dist/colors/alloy-colors.json +111 -0
- package/dist/colors/dark-mode-colors.json +111 -0
- package/dist/colors/index.d.ts +26 -0
- package/dist/colors/index.js +72 -0
- package/dist/colors/jmol-colors.json +111 -0
- package/dist/colors/muted-colors.json +111 -0
- package/dist/colors/pastel-colors.json +111 -0
- package/dist/colors/vesta-colors.json +111 -0
- package/dist/composition/BarChart.svelte +260 -0
- package/dist/composition/BarChart.svelte.d.ts +33 -0
- package/dist/composition/BubbleChart.svelte +166 -0
- package/dist/composition/BubbleChart.svelte.d.ts +30 -0
- package/dist/composition/Composition.svelte +73 -0
- package/dist/composition/Composition.svelte.d.ts +27 -0
- package/dist/composition/PieChart.svelte +236 -0
- package/dist/composition/PieChart.svelte.d.ts +36 -0
- package/dist/composition/index.d.ts +5 -0
- package/dist/composition/index.js +5 -0
- package/dist/composition/parse.d.ts +14 -0
- package/dist/composition/parse.js +307 -0
- package/dist/element/ElementHeading.svelte +21 -0
- package/dist/element/ElementHeading.svelte.d.ts +8 -0
- package/dist/element/ElementPhoto.svelte +56 -0
- package/dist/element/ElementPhoto.svelte.d.ts +9 -0
- package/dist/element/ElementStats.svelte +73 -0
- package/dist/element/ElementStats.svelte.d.ts +8 -0
- package/dist/element/ElementTile.svelte +449 -0
- package/dist/element/ElementTile.svelte.d.ts +25 -0
- package/dist/element/data.d.ts +4958 -0
- package/dist/element/data.js +5628 -0
- package/dist/element/index.d.ts +4 -0
- package/dist/element/index.js +4 -0
- package/dist/icons.d.ts +435 -0
- package/dist/icons.js +435 -0
- package/dist/index.d.ts +82 -0
- package/dist/index.js +43 -0
- package/dist/io/decompress.d.ts +16 -0
- package/dist/io/decompress.js +78 -0
- package/dist/io/export.d.ts +9 -0
- package/dist/io/export.js +205 -0
- package/dist/io/parse.d.ts +53 -0
- package/dist/io/parse.js +747 -0
- package/dist/labels.d.ts +31 -0
- package/dist/labels.js +209 -0
- package/dist/material/MaterialCard.svelte +135 -0
- package/dist/material/MaterialCard.svelte.d.ts +10 -0
- package/dist/material/SymmetryCard.svelte +23 -0
- package/dist/material/SymmetryCard.svelte.d.ts +9 -0
- package/dist/material/index.d.ts +2 -0
- package/dist/material/index.js +2 -0
- package/dist/math.d.ts +24 -0
- package/dist/math.js +216 -0
- package/dist/periodic-table/PeriodicTable.svelte +284 -0
- package/dist/periodic-table/PeriodicTable.svelte.d.ts +50 -0
- package/dist/periodic-table/PropertySelect.svelte +20 -0
- package/dist/periodic-table/PropertySelect.svelte.d.ts +13 -0
- package/dist/periodic-table/TableInset.svelte +18 -0
- package/dist/periodic-table/TableInset.svelte.d.ts +9 -0
- package/dist/periodic-table/index.d.ts +9 -0
- package/dist/periodic-table/index.js +3 -0
- package/dist/plot/ColorBar.svelte +414 -0
- package/dist/plot/ColorBar.svelte.d.ts +22 -0
- package/dist/plot/ColorScaleSelect.svelte +31 -0
- package/dist/plot/ColorScaleSelect.svelte.d.ts +15 -0
- package/dist/plot/ElementScatter.svelte +38 -0
- package/dist/plot/ElementScatter.svelte.d.ts +14 -0
- package/dist/plot/Line.svelte +42 -0
- package/dist/plot/Line.svelte.d.ts +15 -0
- package/dist/plot/PlotLegend.svelte +206 -0
- package/dist/plot/PlotLegend.svelte.d.ts +18 -0
- package/dist/plot/ScatterPlot.svelte +1753 -0
- package/dist/plot/ScatterPlot.svelte.d.ts +114 -0
- package/dist/plot/ScatterPlotControls.svelte +505 -0
- package/dist/plot/ScatterPlotControls.svelte.d.ts +33 -0
- package/dist/plot/ScatterPoint.svelte +72 -0
- package/dist/plot/ScatterPoint.svelte.d.ts +17 -0
- package/dist/plot/index.d.ts +168 -0
- package/dist/plot/index.js +46 -0
- package/dist/state.svelte.d.ts +12 -0
- package/dist/state.svelte.js +11 -0
- package/dist/structure/Bond.svelte +68 -0
- package/dist/structure/Bond.svelte.d.ts +13 -0
- package/dist/structure/Lattice.svelte +115 -0
- package/dist/structure/Lattice.svelte.d.ts +15 -0
- package/dist/structure/Structure.svelte +298 -0
- package/dist/structure/Structure.svelte.d.ts +28 -0
- package/dist/structure/StructureCard.svelte +26 -0
- package/dist/structure/StructureCard.svelte.d.ts +9 -0
- package/dist/structure/StructureControls.svelte +383 -0
- package/dist/structure/StructureControls.svelte.d.ts +23 -0
- package/dist/structure/StructureLegend.svelte +130 -0
- package/dist/structure/StructureLegend.svelte.d.ts +17 -0
- package/dist/structure/StructureScene.svelte +331 -0
- package/dist/structure/StructureScene.svelte.d.ts +47 -0
- package/dist/structure/bonding.d.ts +16 -0
- package/dist/structure/bonding.js +150 -0
- package/dist/structure/index.d.ts +98 -0
- package/dist/structure/index.js +114 -0
- package/dist/structure/pbc.d.ts +6 -0
- package/dist/structure/pbc.js +72 -0
- package/dist/trajectory/Sidebar.svelte +412 -0
- package/dist/trajectory/Sidebar.svelte.d.ts +14 -0
- package/dist/trajectory/Trajectory.svelte +1084 -0
- package/dist/trajectory/Trajectory.svelte.d.ts +49 -0
- package/dist/trajectory/TrajectoryError.svelte +120 -0
- package/dist/trajectory/TrajectoryError.svelte.d.ts +12 -0
- package/dist/trajectory/extract.d.ts +5 -0
- package/dist/trajectory/extract.js +157 -0
- package/dist/trajectory/index.d.ts +16 -0
- package/dist/trajectory/index.js +49 -0
- package/dist/trajectory/parse.d.ts +13 -0
- package/dist/trajectory/parse.js +1093 -0
- package/dist/trajectory/plotting.d.ts +12 -0
- package/dist/trajectory/plotting.js +148 -0
- package/license +21 -0
- package/package.json +131 -0
- package/readme.md +95 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Ac": [112, 171, 250],
|
|
3
|
+
"Ag": [108, 96, 208],
|
|
4
|
+
"Al": [102, 211, 188],
|
|
5
|
+
"Am": [84, 92, 242],
|
|
6
|
+
"Ar": [207, 254, 196],
|
|
7
|
+
"As": [116, 208, 87],
|
|
8
|
+
"At": [117, 79, 69],
|
|
9
|
+
"Au": [131, 143, 93],
|
|
10
|
+
"B": [31, 162, 15],
|
|
11
|
+
"Ba": [0, 150, 255],
|
|
12
|
+
"Be": [255, 0, 255],
|
|
13
|
+
"Bh": [224, 0, 56],
|
|
14
|
+
"Bi": [0, 255, 121],
|
|
15
|
+
"Bk": [138, 79, 227],
|
|
16
|
+
"Br": [126, 49, 2],
|
|
17
|
+
"C": [76, 76, 76],
|
|
18
|
+
"Ca": [255, 255, 255],
|
|
19
|
+
"Cd": [255, 217, 143],
|
|
20
|
+
"Ce": [255, 255, 199],
|
|
21
|
+
"Cf": [161, 54, 212],
|
|
22
|
+
"Cl": [49, 252, 2],
|
|
23
|
+
"Cm": [120, 92, 227],
|
|
24
|
+
"Co": [0, 255, 121],
|
|
25
|
+
"Cr": [197, 163, 255],
|
|
26
|
+
"Cs": [255, 0, 0],
|
|
27
|
+
"Cu": [129, 0, 255],
|
|
28
|
+
"Db": [209, 0, 79],
|
|
29
|
+
"Dy": [31, 255, 199],
|
|
30
|
+
"Er": [0, 230, 117],
|
|
31
|
+
"Es": [179, 31, 212],
|
|
32
|
+
"Eu": [97, 255, 199],
|
|
33
|
+
"F": [176, 185, 230],
|
|
34
|
+
"Fe": [0, 151, 134],
|
|
35
|
+
"Fm": [179, 31, 186],
|
|
36
|
+
"Fr": [66, 0, 102],
|
|
37
|
+
"Ga": [255, 121, 143],
|
|
38
|
+
"Gd": [69, 255, 199],
|
|
39
|
+
"Ge": [126, 110, 166],
|
|
40
|
+
"H": [255, 204, 204],
|
|
41
|
+
"He": [252, 232, 206],
|
|
42
|
+
"Hf": [77, 194, 255],
|
|
43
|
+
"Hg": [184, 184, 208],
|
|
44
|
+
"Ho": [0, 255, 156],
|
|
45
|
+
"Hs": [230, 0, 46],
|
|
46
|
+
"I": [148, 0, 148],
|
|
47
|
+
"In": [131, 143, 93],
|
|
48
|
+
"Ir": [102, 211, 188],
|
|
49
|
+
"K": [0, 255, 0],
|
|
50
|
+
"Kr": [250, 193, 243],
|
|
51
|
+
"La": [90, 196, 73],
|
|
52
|
+
"Li": [0, 53, 0],
|
|
53
|
+
"Lr": [199, 0, 102],
|
|
54
|
+
"Lu": [0, 171, 36],
|
|
55
|
+
"Md": [179, 13, 166],
|
|
56
|
+
"Mg": [255, 255, 0],
|
|
57
|
+
"Mn": [0, 46, 133],
|
|
58
|
+
"Mo": [84, 181, 181],
|
|
59
|
+
"Mt": [235, 0, 38],
|
|
60
|
+
"N": [176, 185, 230],
|
|
61
|
+
"Na": [0, 41, 255],
|
|
62
|
+
"Nb": [134, 228, 15],
|
|
63
|
+
"Nd": [199, 255, 199],
|
|
64
|
+
"Ne": [254, 55, 181],
|
|
65
|
+
"Ni": [99, 0, 62],
|
|
66
|
+
"No": [189, 13, 135],
|
|
67
|
+
"Np": [0, 128, 255],
|
|
68
|
+
"O": [254, 3, 0],
|
|
69
|
+
"Os": [134, 228, 15],
|
|
70
|
+
"P": [192, 156, 194],
|
|
71
|
+
"Pa": [0, 161, 255],
|
|
72
|
+
"Pb": [0, 151, 134],
|
|
73
|
+
"Pd": [168, 74, 0],
|
|
74
|
+
"Pm": [163, 255, 199],
|
|
75
|
+
"Po": [171, 92, 0],
|
|
76
|
+
"Pr": [217, 255, 199],
|
|
77
|
+
"Pt": [255, 121, 143],
|
|
78
|
+
"Pu": [0, 107, 255],
|
|
79
|
+
"Ra": [0, 125, 0],
|
|
80
|
+
"Rb": [0, 255, 255],
|
|
81
|
+
"Re": [38, 125, 171],
|
|
82
|
+
"Rf": [204, 0, 89],
|
|
83
|
+
"Rh": [129, 0, 255],
|
|
84
|
+
"Rn": [66, 130, 150],
|
|
85
|
+
"Ru": [99, 0, 62],
|
|
86
|
+
"S": [255, 250, 0],
|
|
87
|
+
"Sb": [158, 99, 181],
|
|
88
|
+
"Sc": [207, 26, 128],
|
|
89
|
+
"Se": [154, 239, 15],
|
|
90
|
+
"Sg": [217, 0, 69],
|
|
91
|
+
"Si": [27, 59, 250],
|
|
92
|
+
"Sm": [143, 255, 199],
|
|
93
|
+
"Sn": [197, 163, 255],
|
|
94
|
+
"Sr": [38, 154, 0],
|
|
95
|
+
"Ta": [77, 166, 255],
|
|
96
|
+
"Tb": [48, 255, 199],
|
|
97
|
+
"Tc": [59, 158, 158],
|
|
98
|
+
"Te": [212, 122, 0],
|
|
99
|
+
"Th": [0, 186, 255],
|
|
100
|
+
"Ti": [216, 219, 127],
|
|
101
|
+
"Tl": [0, 46, 133],
|
|
102
|
+
"Tm": [0, 212, 82],
|
|
103
|
+
"U": [0, 143, 255],
|
|
104
|
+
"V": [255, 150, 0],
|
|
105
|
+
"W": [33, 148, 214],
|
|
106
|
+
"Xe": [66, 158, 176],
|
|
107
|
+
"Y": [148, 255, 255],
|
|
108
|
+
"Yb": [0, 191, 56],
|
|
109
|
+
"Zn": [168, 74, 0],
|
|
110
|
+
"Zr": [108, 96, 208]
|
|
111
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"H": [255, 220, 220],
|
|
3
|
+
"He": [180, 200, 255],
|
|
4
|
+
"Li": [255, 180, 255],
|
|
5
|
+
"Be": [180, 255, 180],
|
|
6
|
+
"B": [255, 200, 150],
|
|
7
|
+
"C": [200, 200, 200],
|
|
8
|
+
"N": [120, 180, 255],
|
|
9
|
+
"O": [255, 100, 100],
|
|
10
|
+
"F": [100, 255, 100],
|
|
11
|
+
"Ne": [255, 150, 255],
|
|
12
|
+
"Na": [255, 255, 100],
|
|
13
|
+
"Mg": [150, 255, 150],
|
|
14
|
+
"Al": [180, 200, 255],
|
|
15
|
+
"Si": [255, 180, 100],
|
|
16
|
+
"P": [255, 150, 200],
|
|
17
|
+
"S": [255, 255, 150],
|
|
18
|
+
"Cl": [100, 255, 150],
|
|
19
|
+
"Ar": [200, 200, 255],
|
|
20
|
+
"K": [255, 100, 255],
|
|
21
|
+
"Ca": [150, 255, 200],
|
|
22
|
+
"Sc": [255, 200, 255],
|
|
23
|
+
"Ti": [100, 200, 255],
|
|
24
|
+
"V": [255, 120, 120],
|
|
25
|
+
"Cr": [120, 255, 120],
|
|
26
|
+
"Mn": [255, 120, 255],
|
|
27
|
+
"Fe": [255, 180, 80],
|
|
28
|
+
"Co": [80, 150, 255],
|
|
29
|
+
"Ni": [200, 255, 200],
|
|
30
|
+
"Cu": [255, 150, 80],
|
|
31
|
+
"Zn": [180, 180, 255],
|
|
32
|
+
"Ga": [200, 255, 150],
|
|
33
|
+
"Ge": [200, 180, 255],
|
|
34
|
+
"As": [150, 255, 100],
|
|
35
|
+
"Se": [255, 255, 100],
|
|
36
|
+
"Br": [255, 120, 80],
|
|
37
|
+
"Kr": [255, 180, 255],
|
|
38
|
+
"Rb": [255, 80, 255],
|
|
39
|
+
"Sr": [100, 255, 100],
|
|
40
|
+
"Y": [180, 255, 255],
|
|
41
|
+
"Zr": [120, 255, 200],
|
|
42
|
+
"Nb": [150, 200, 255],
|
|
43
|
+
"Mo": [100, 200, 200],
|
|
44
|
+
"Tc": [120, 200, 200],
|
|
45
|
+
"Ru": [100, 180, 255],
|
|
46
|
+
"Rh": [80, 200, 255],
|
|
47
|
+
"Pd": [200, 200, 255],
|
|
48
|
+
"Ag": [255, 255, 255],
|
|
49
|
+
"Cd": [255, 255, 150],
|
|
50
|
+
"In": [200, 180, 255],
|
|
51
|
+
"Sn": [180, 180, 255],
|
|
52
|
+
"Sb": [255, 150, 255],
|
|
53
|
+
"Te": [255, 200, 100],
|
|
54
|
+
"I": [255, 100, 255],
|
|
55
|
+
"Xe": [150, 200, 255],
|
|
56
|
+
"Cs": [255, 100, 200],
|
|
57
|
+
"Ba": [100, 255, 150],
|
|
58
|
+
"La": [150, 255, 150],
|
|
59
|
+
"Ce": [255, 255, 200],
|
|
60
|
+
"Pr": [200, 255, 180],
|
|
61
|
+
"Nd": [180, 255, 180],
|
|
62
|
+
"Pm": [160, 255, 180],
|
|
63
|
+
"Sm": [150, 255, 180],
|
|
64
|
+
"Eu": [140, 255, 180],
|
|
65
|
+
"Gd": [130, 255, 180],
|
|
66
|
+
"Tb": [120, 255, 180],
|
|
67
|
+
"Dy": [110, 255, 180],
|
|
68
|
+
"Ho": [100, 255, 160],
|
|
69
|
+
"Er": [90, 255, 150],
|
|
70
|
+
"Tm": [80, 255, 140],
|
|
71
|
+
"Yb": [70, 255, 130],
|
|
72
|
+
"Lu": [60, 255, 120],
|
|
73
|
+
"Hf": [120, 180, 255],
|
|
74
|
+
"Ta": [110, 170, 255],
|
|
75
|
+
"W": [100, 160, 255],
|
|
76
|
+
"Re": [90, 170, 255],
|
|
77
|
+
"Os": [80, 160, 255],
|
|
78
|
+
"Ir": [70, 150, 255],
|
|
79
|
+
"Pt": [220, 220, 255],
|
|
80
|
+
"Au": [255, 220, 100],
|
|
81
|
+
"Hg": [200, 200, 255],
|
|
82
|
+
"Tl": [255, 180, 180],
|
|
83
|
+
"Pb": [180, 180, 200],
|
|
84
|
+
"Bi": [255, 150, 255],
|
|
85
|
+
"Po": [255, 200, 150],
|
|
86
|
+
"At": [255, 150, 150],
|
|
87
|
+
"Rn": [180, 200, 255],
|
|
88
|
+
"Fr": [255, 120, 200],
|
|
89
|
+
"Ra": [120, 255, 120],
|
|
90
|
+
"Ac": [150, 200, 255],
|
|
91
|
+
"Th": [130, 190, 255],
|
|
92
|
+
"Pa": [120, 180, 255],
|
|
93
|
+
"U": [110, 170, 255],
|
|
94
|
+
"Np": [100, 160, 255],
|
|
95
|
+
"Pu": [90, 150, 255],
|
|
96
|
+
"Am": [100, 140, 255],
|
|
97
|
+
"Cm": [150, 140, 255],
|
|
98
|
+
"Bk": [170, 140, 255],
|
|
99
|
+
"Cf": [190, 140, 255],
|
|
100
|
+
"Es": [210, 140, 255],
|
|
101
|
+
"Fm": [230, 140, 255],
|
|
102
|
+
"Md": [250, 140, 255],
|
|
103
|
+
"No": [255, 140, 230],
|
|
104
|
+
"Lr": [255, 140, 200],
|
|
105
|
+
"Rf": [255, 160, 180],
|
|
106
|
+
"Db": [255, 180, 160],
|
|
107
|
+
"Sg": [255, 200, 140],
|
|
108
|
+
"Bh": [255, 220, 120],
|
|
109
|
+
"Hs": [255, 240, 100],
|
|
110
|
+
"Mt": [255, 255, 80]
|
|
111
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as d3_sc from 'd3-scale-chromatic';
|
|
2
|
+
import type { elem_symbols } from '../labels';
|
|
3
|
+
export type D3InterpolateName = keyof typeof d3_sc & `interpolate${string}`;
|
|
4
|
+
export type D3ColorSchemeName = D3InterpolateName extends `interpolate${infer Name}` ? Name : never;
|
|
5
|
+
export declare const default_category_colors: Record<string, string>;
|
|
6
|
+
export type RGBColor = [number, number, number];
|
|
7
|
+
export type ElementColorScheme = Record<(typeof elem_symbols)[number], RGBColor>;
|
|
8
|
+
export declare const vesta_hex: Record<string, string>;
|
|
9
|
+
export declare const jmol_hex: Record<string, string>;
|
|
10
|
+
export declare const alloy_hex: Record<string, string>;
|
|
11
|
+
export declare const pastel_hex: Record<string, string>;
|
|
12
|
+
export declare const muted_hex: Record<string, string>;
|
|
13
|
+
export declare const dark_mode_hex: Record<string, string>;
|
|
14
|
+
export declare const element_color_schemes: {
|
|
15
|
+
readonly Vesta: Record<string, string>;
|
|
16
|
+
readonly Jmol: Record<string, string>;
|
|
17
|
+
readonly Alloy: Record<string, string>;
|
|
18
|
+
readonly Pastel: Record<string, string>;
|
|
19
|
+
readonly Muted: Record<string, string>;
|
|
20
|
+
readonly 'Dark Mode': Record<string, string>;
|
|
21
|
+
};
|
|
22
|
+
export declare const default_element_colors: {
|
|
23
|
+
[x: string]: string;
|
|
24
|
+
};
|
|
25
|
+
export declare const is_color: (val: unknown) => val is string;
|
|
26
|
+
export declare const plot_colors: readonly ["#63b3ed", "#68d391", "#fbd38d", "#fc8181", "#d6bcfa", "#4fd1c7", "#f687b3", "#fed7d7", "#bee3f8", "#c6f6d5"];
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { rgb } from 'd3-color';
|
|
2
|
+
import * as d3_sc from 'd3-scale-chromatic';
|
|
3
|
+
import alloy_colors from './alloy-colors.json';
|
|
4
|
+
import dark_mode_colors from './dark-mode-colors.json';
|
|
5
|
+
import jmol_colors from './jmol-colors.json';
|
|
6
|
+
import muted_colors from './muted-colors.json';
|
|
7
|
+
import pastel_colors from './pastel-colors.json';
|
|
8
|
+
import vesta_colors from './vesta-colors.json';
|
|
9
|
+
// color values have to be in hex format since that's the only format
|
|
10
|
+
// <input type="color"> supports
|
|
11
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color#value
|
|
12
|
+
export const default_category_colors = {
|
|
13
|
+
'diatomic-nonmetal': `#ff8c00`, // darkorange
|
|
14
|
+
'noble-gas': `#9932cc`, // darkorchid
|
|
15
|
+
'alkali-metal': `#006400`, // darkgreen
|
|
16
|
+
'alkaline-earth-metal': `#483d8b`, // darkslateblue
|
|
17
|
+
metalloid: `#b8860b`, // darkgoldenrod
|
|
18
|
+
'polyatomic-nonmetal': `#a52a2a`, // brown
|
|
19
|
+
'transition-metal': `#571e6c`,
|
|
20
|
+
'post-transition-metal': `#938d4a`,
|
|
21
|
+
lanthanide: `#58748e`,
|
|
22
|
+
actinide: `#6495ed`, // cornflowerblue
|
|
23
|
+
};
|
|
24
|
+
function rgb_scheme_to_hex(obj) {
|
|
25
|
+
const result = {};
|
|
26
|
+
for (const key in obj) {
|
|
27
|
+
if (Object.hasOwn(obj, key)) {
|
|
28
|
+
const val = obj[key];
|
|
29
|
+
if (val.length >= 3) {
|
|
30
|
+
result[key] = rgb(val[0], val[1], val[2]).formatHex();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
export const vesta_hex = rgb_scheme_to_hex(vesta_colors);
|
|
37
|
+
export const jmol_hex = rgb_scheme_to_hex(jmol_colors);
|
|
38
|
+
export const alloy_hex = rgb_scheme_to_hex(alloy_colors);
|
|
39
|
+
export const pastel_hex = rgb_scheme_to_hex(pastel_colors);
|
|
40
|
+
export const muted_hex = rgb_scheme_to_hex(muted_colors);
|
|
41
|
+
export const dark_mode_hex = rgb_scheme_to_hex(dark_mode_colors);
|
|
42
|
+
export const element_color_schemes = {
|
|
43
|
+
Vesta: vesta_hex,
|
|
44
|
+
Jmol: jmol_hex,
|
|
45
|
+
Alloy: alloy_hex,
|
|
46
|
+
Pastel: pastel_hex,
|
|
47
|
+
Muted: muted_hex,
|
|
48
|
+
'Dark Mode': dark_mode_hex,
|
|
49
|
+
};
|
|
50
|
+
export const default_element_colors = { ...vesta_hex };
|
|
51
|
+
// Helper function to detect if a value is a color string
|
|
52
|
+
export const is_color = (val) => {
|
|
53
|
+
if (typeof val !== `string`)
|
|
54
|
+
return false;
|
|
55
|
+
// Check for hex colors, rgb/rgba, hsl/hsla, color(), var(), and named colors
|
|
56
|
+
// Exclude incomplete function prefixes like 'rgb', 'hsl', 'var', 'color'
|
|
57
|
+
return /^(#[0-9a-f]{3,8}|rgba?\([^)]+\)|hsla?\([^)]+\)|color\([^)]+\)|var\([^)]+\)|(?!rgb$|hsl$|var$|color$)[a-z]+)$/i
|
|
58
|
+
.test(val.toString().trim());
|
|
59
|
+
};
|
|
60
|
+
// Color series for e.g. line plots
|
|
61
|
+
export const plot_colors = [
|
|
62
|
+
`#63b3ed`,
|
|
63
|
+
`#68d391`,
|
|
64
|
+
`#fbd38d`,
|
|
65
|
+
`#fc8181`,
|
|
66
|
+
`#d6bcfa`,
|
|
67
|
+
`#4fd1c7`,
|
|
68
|
+
`#f687b3`,
|
|
69
|
+
`#fed7d7`,
|
|
70
|
+
`#bee3f8`,
|
|
71
|
+
`#c6f6d5`,
|
|
72
|
+
];
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"H": [255, 255, 255],
|
|
3
|
+
"He": [217, 255, 255],
|
|
4
|
+
"Li": [204, 128, 255],
|
|
5
|
+
"Be": [194, 255, 0],
|
|
6
|
+
"B": [255, 181, 181],
|
|
7
|
+
"C": [144, 144, 144],
|
|
8
|
+
"N": [48, 80, 248],
|
|
9
|
+
"O": [255, 13, 13],
|
|
10
|
+
"F": [144, 224, 80],
|
|
11
|
+
"Ne": [179, 227, 245],
|
|
12
|
+
"Na": [171, 92, 242],
|
|
13
|
+
"Mg": [138, 255, 0],
|
|
14
|
+
"Al": [191, 166, 166],
|
|
15
|
+
"Si": [240, 200, 160],
|
|
16
|
+
"P": [255, 128, 0],
|
|
17
|
+
"S": [255, 255, 48],
|
|
18
|
+
"Cl": [31, 240, 31],
|
|
19
|
+
"Ar": [128, 209, 227],
|
|
20
|
+
"K": [143, 64, 212],
|
|
21
|
+
"Ca": [61, 255, 0],
|
|
22
|
+
"Sc": [230, 230, 230],
|
|
23
|
+
"Ti": [191, 194, 199],
|
|
24
|
+
"V": [166, 166, 171],
|
|
25
|
+
"Cr": [138, 153, 199],
|
|
26
|
+
"Mn": [156, 122, 199],
|
|
27
|
+
"Fe": [224, 102, 51],
|
|
28
|
+
"Co": [240, 144, 160],
|
|
29
|
+
"Ni": [80, 208, 80],
|
|
30
|
+
"Cu": [200, 128, 51],
|
|
31
|
+
"Zn": [125, 128, 176],
|
|
32
|
+
"Ga": [194, 143, 143],
|
|
33
|
+
"Ge": [102, 143, 143],
|
|
34
|
+
"As": [189, 128, 227],
|
|
35
|
+
"Se": [255, 161, 0],
|
|
36
|
+
"Br": [166, 41, 41],
|
|
37
|
+
"Kr": [92, 184, 209],
|
|
38
|
+
"Rb": [112, 46, 176],
|
|
39
|
+
"Sr": [0, 255, 0],
|
|
40
|
+
"Y": [148, 255, 255],
|
|
41
|
+
"Zr": [148, 224, 224],
|
|
42
|
+
"Nb": [115, 194, 201],
|
|
43
|
+
"Mo": [84, 181, 181],
|
|
44
|
+
"Tc": [59, 158, 158],
|
|
45
|
+
"Ru": [36, 143, 143],
|
|
46
|
+
"Rh": [10, 125, 140],
|
|
47
|
+
"Pd": [0, 105, 133],
|
|
48
|
+
"Ag": [192, 192, 192],
|
|
49
|
+
"Cd": [255, 217, 143],
|
|
50
|
+
"In": [166, 117, 115],
|
|
51
|
+
"Sn": [102, 128, 128],
|
|
52
|
+
"Sb": [158, 99, 181],
|
|
53
|
+
"Te": [212, 122, 0],
|
|
54
|
+
"I": [148, 0, 148],
|
|
55
|
+
"Xe": [66, 158, 176],
|
|
56
|
+
"Cs": [87, 23, 143],
|
|
57
|
+
"Ba": [0, 201, 0],
|
|
58
|
+
"La": [112, 212, 255],
|
|
59
|
+
"Ce": [255, 255, 199],
|
|
60
|
+
"Pr": [217, 255, 199],
|
|
61
|
+
"Nd": [199, 255, 199],
|
|
62
|
+
"Pm": [163, 255, 199],
|
|
63
|
+
"Sm": [143, 255, 199],
|
|
64
|
+
"Eu": [97, 255, 199],
|
|
65
|
+
"Gd": [69, 255, 199],
|
|
66
|
+
"Tb": [48, 255, 199],
|
|
67
|
+
"Dy": [31, 255, 199],
|
|
68
|
+
"Ho": [0, 255, 156],
|
|
69
|
+
"Er": [0, 230, 117],
|
|
70
|
+
"Tm": [0, 212, 82],
|
|
71
|
+
"Yb": [0, 191, 56],
|
|
72
|
+
"Lu": [0, 171, 36],
|
|
73
|
+
"Hf": [77, 194, 255],
|
|
74
|
+
"Ta": [77, 166, 255],
|
|
75
|
+
"W": [33, 148, 214],
|
|
76
|
+
"Re": [38, 125, 171],
|
|
77
|
+
"Os": [38, 102, 150],
|
|
78
|
+
"Ir": [23, 84, 135],
|
|
79
|
+
"Pt": [208, 208, 224],
|
|
80
|
+
"Au": [255, 209, 35],
|
|
81
|
+
"Hg": [184, 184, 208],
|
|
82
|
+
"Tl": [166, 84, 77],
|
|
83
|
+
"Pb": [87, 89, 97],
|
|
84
|
+
"Bi": [158, 79, 181],
|
|
85
|
+
"Po": [171, 92, 0],
|
|
86
|
+
"At": [117, 79, 69],
|
|
87
|
+
"Rn": [66, 130, 150],
|
|
88
|
+
"Fr": [66, 0, 102],
|
|
89
|
+
"Ra": [0, 125, 0],
|
|
90
|
+
"Ac": [112, 171, 250],
|
|
91
|
+
"Th": [0, 186, 255],
|
|
92
|
+
"Pa": [0, 161, 255],
|
|
93
|
+
"U": [0, 143, 255],
|
|
94
|
+
"Np": [0, 128, 255],
|
|
95
|
+
"Pu": [0, 107, 255],
|
|
96
|
+
"Am": [84, 92, 242],
|
|
97
|
+
"Cm": [120, 92, 227],
|
|
98
|
+
"Bk": [138, 79, 227],
|
|
99
|
+
"Cf": [161, 54, 212],
|
|
100
|
+
"Es": [179, 31, 212],
|
|
101
|
+
"Fm": [179, 31, 186],
|
|
102
|
+
"Md": [179, 13, 166],
|
|
103
|
+
"No": [189, 13, 135],
|
|
104
|
+
"Lr": [199, 0, 102],
|
|
105
|
+
"Rf": [204, 0, 89],
|
|
106
|
+
"Db": [209, 0, 79],
|
|
107
|
+
"Sg": [217, 0, 69],
|
|
108
|
+
"Bh": [224, 0, 56],
|
|
109
|
+
"Hs": [230, 0, 46],
|
|
110
|
+
"Mt": [235, 0, 38]
|
|
111
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"H": [235, 200, 200],
|
|
3
|
+
"He": [220, 220, 230],
|
|
4
|
+
"Li": [200, 210, 180],
|
|
5
|
+
"Be": [180, 200, 190],
|
|
6
|
+
"B": [200, 180, 170],
|
|
7
|
+
"C": [120, 120, 120],
|
|
8
|
+
"N": [160, 180, 200],
|
|
9
|
+
"O": [220, 160, 160],
|
|
10
|
+
"F": [180, 210, 180],
|
|
11
|
+
"Ne": [210, 190, 220],
|
|
12
|
+
"Na": [220, 200, 140],
|
|
13
|
+
"Mg": [190, 210, 170],
|
|
14
|
+
"Al": [180, 190, 200],
|
|
15
|
+
"Si": [170, 180, 190],
|
|
16
|
+
"P": [200, 170, 180],
|
|
17
|
+
"S": [220, 210, 140],
|
|
18
|
+
"Cl": [170, 200, 170],
|
|
19
|
+
"Ar": [200, 210, 190],
|
|
20
|
+
"K": [190, 170, 210],
|
|
21
|
+
"Ca": [180, 190, 180],
|
|
22
|
+
"Sc": [190, 180, 190],
|
|
23
|
+
"Ti": [170, 180, 200],
|
|
24
|
+
"V": [200, 170, 170],
|
|
25
|
+
"Cr": [160, 180, 160],
|
|
26
|
+
"Mn": [180, 160, 180],
|
|
27
|
+
"Fe": [180, 150, 120],
|
|
28
|
+
"Co": [150, 170, 190],
|
|
29
|
+
"Ni": [170, 180, 170],
|
|
30
|
+
"Cu": [180, 140, 120],
|
|
31
|
+
"Zn": [160, 170, 160],
|
|
32
|
+
"Ga": [180, 190, 170],
|
|
33
|
+
"Ge": [170, 170, 180],
|
|
34
|
+
"As": [170, 190, 150],
|
|
35
|
+
"Se": [180, 200, 160],
|
|
36
|
+
"Br": [160, 130, 120],
|
|
37
|
+
"Kr": [200, 180, 200],
|
|
38
|
+
"Rb": [180, 160, 190],
|
|
39
|
+
"Sr": [160, 190, 160],
|
|
40
|
+
"Y": [180, 200, 200],
|
|
41
|
+
"Zr": [160, 190, 180],
|
|
42
|
+
"Nb": [170, 180, 190],
|
|
43
|
+
"Mo": [150, 170, 170],
|
|
44
|
+
"Tc": [160, 170, 170],
|
|
45
|
+
"Ru": [150, 160, 170],
|
|
46
|
+
"Rh": [140, 160, 170],
|
|
47
|
+
"Pd": [150, 160, 160],
|
|
48
|
+
"Ag": [180, 180, 180],
|
|
49
|
+
"Cd": [200, 190, 160],
|
|
50
|
+
"In": [170, 160, 160],
|
|
51
|
+
"Sn": [160, 160, 170],
|
|
52
|
+
"Sb": [170, 150, 170],
|
|
53
|
+
"Te": [190, 160, 140],
|
|
54
|
+
"I": [150, 130, 150],
|
|
55
|
+
"Xe": [160, 170, 180],
|
|
56
|
+
"Cs": [150, 140, 170],
|
|
57
|
+
"Ba": [140, 170, 140],
|
|
58
|
+
"La": [150, 170, 150],
|
|
59
|
+
"Ce": [190, 190, 170],
|
|
60
|
+
"Pr": [180, 190, 170],
|
|
61
|
+
"Nd": [170, 180, 170],
|
|
62
|
+
"Pm": [160, 170, 170],
|
|
63
|
+
"Sm": [160, 180, 170],
|
|
64
|
+
"Eu": [150, 170, 170],
|
|
65
|
+
"Gd": [150, 180, 170],
|
|
66
|
+
"Tb": [140, 170, 170],
|
|
67
|
+
"Dy": [140, 180, 170],
|
|
68
|
+
"Ho": [130, 170, 160],
|
|
69
|
+
"Er": [130, 160, 150],
|
|
70
|
+
"Tm": [120, 160, 140],
|
|
71
|
+
"Yb": [120, 150, 140],
|
|
72
|
+
"Lu": [110, 150, 130],
|
|
73
|
+
"Hf": [140, 160, 180],
|
|
74
|
+
"Ta": [140, 150, 180],
|
|
75
|
+
"W": [130, 140, 170],
|
|
76
|
+
"Re": [130, 150, 160],
|
|
77
|
+
"Os": [120, 140, 150],
|
|
78
|
+
"Ir": [110, 130, 140],
|
|
79
|
+
"Pt": [160, 160, 170],
|
|
80
|
+
"Au": [200, 180, 120],
|
|
81
|
+
"Hg": [170, 170, 180],
|
|
82
|
+
"Tl": [160, 140, 140],
|
|
83
|
+
"Pb": [140, 140, 150],
|
|
84
|
+
"Bi": [150, 130, 150],
|
|
85
|
+
"Po": [160, 140, 120],
|
|
86
|
+
"At": [140, 120, 120],
|
|
87
|
+
"Rn": [150, 160, 170],
|
|
88
|
+
"Fr": [140, 120, 150],
|
|
89
|
+
"Ra": [130, 150, 130],
|
|
90
|
+
"Ac": [140, 160, 180],
|
|
91
|
+
"Th": [130, 160, 180],
|
|
92
|
+
"Pa": [120, 150, 180],
|
|
93
|
+
"U": [120, 140, 180],
|
|
94
|
+
"Np": [110, 140, 180],
|
|
95
|
+
"Pu": [110, 130, 170],
|
|
96
|
+
"Am": [110, 130, 160],
|
|
97
|
+
"Cm": [120, 130, 160],
|
|
98
|
+
"Bk": [130, 130, 160],
|
|
99
|
+
"Cf": [140, 130, 160],
|
|
100
|
+
"Es": [150, 130, 160],
|
|
101
|
+
"Fm": [160, 130, 160],
|
|
102
|
+
"Md": [170, 130, 160],
|
|
103
|
+
"No": [180, 130, 150],
|
|
104
|
+
"Lr": [190, 130, 140],
|
|
105
|
+
"Rf": [190, 140, 140],
|
|
106
|
+
"Db": [190, 150, 140],
|
|
107
|
+
"Sg": [190, 160, 140],
|
|
108
|
+
"Bh": [190, 170, 140],
|
|
109
|
+
"Hs": [190, 180, 140],
|
|
110
|
+
"Mt": [190, 190, 140]
|
|
111
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"H": [255, 204, 204],
|
|
3
|
+
"He": [224, 255, 255],
|
|
4
|
+
"Li": [255, 182, 193],
|
|
5
|
+
"Be": [210, 245, 210],
|
|
6
|
+
"B": [255, 223, 186],
|
|
7
|
+
"C": [200, 200, 200],
|
|
8
|
+
"N": [173, 216, 230],
|
|
9
|
+
"O": [255, 179, 179],
|
|
10
|
+
"F": [180, 238, 180],
|
|
11
|
+
"Ne": [255, 210, 230],
|
|
12
|
+
"Na": [255, 235, 150],
|
|
13
|
+
"Mg": [190, 250, 190],
|
|
14
|
+
"Al": [211, 211, 211],
|
|
15
|
+
"Si": [240, 230, 140],
|
|
16
|
+
"P": [255, 190, 120],
|
|
17
|
+
"S": [255, 255, 180],
|
|
18
|
+
"Cl": [150, 245, 150],
|
|
19
|
+
"Ar": [230, 230, 250],
|
|
20
|
+
"K": [255, 180, 220],
|
|
21
|
+
"Ca": [160, 240, 160],
|
|
22
|
+
"Sc": [220, 220, 180],
|
|
23
|
+
"Ti": [190, 210, 220],
|
|
24
|
+
"V": [255, 200, 200],
|
|
25
|
+
"Cr": [180, 220, 180],
|
|
26
|
+
"Mn": [230, 200, 230],
|
|
27
|
+
"Fe": [220, 180, 140],
|
|
28
|
+
"Co": [200, 200, 255],
|
|
29
|
+
"Ni": [210, 225, 210],
|
|
30
|
+
"Cu": [255, 200, 170],
|
|
31
|
+
"Zn": [200, 220, 230],
|
|
32
|
+
"Ga": [255, 210, 210],
|
|
33
|
+
"Ge": [210, 210, 190],
|
|
34
|
+
"As": [220, 190, 220],
|
|
35
|
+
"Se": [180, 240, 210],
|
|
36
|
+
"Br": [255, 190, 190],
|
|
37
|
+
"Kr": [240, 220, 255],
|
|
38
|
+
"Rb": [255, 170, 210],
|
|
39
|
+
"Sr": [170, 255, 170],
|
|
40
|
+
"Y": [210, 255, 225],
|
|
41
|
+
"Zr": [190, 230, 230],
|
|
42
|
+
"Nb": [225, 225, 190],
|
|
43
|
+
"Mo": [200, 230, 200],
|
|
44
|
+
"Tc": [230, 210, 230],
|
|
45
|
+
"Ru": [215, 215, 240],
|
|
46
|
+
"Rh": [240, 215, 215],
|
|
47
|
+
"Pd": [220, 220, 220],
|
|
48
|
+
"Ag": [230, 230, 230],
|
|
49
|
+
"Cd": [255, 240, 200],
|
|
50
|
+
"In": [200, 210, 220],
|
|
51
|
+
"Sn": [210, 210, 210],
|
|
52
|
+
"Sb": [220, 200, 210],
|
|
53
|
+
"Te": [190, 240, 190],
|
|
54
|
+
"I": [240, 190, 240],
|
|
55
|
+
"Xe": [210, 240, 255],
|
|
56
|
+
"Cs": [255, 160, 200],
|
|
57
|
+
"Ba": [150, 255, 150],
|
|
58
|
+
"La": [190, 255, 210],
|
|
59
|
+
"Ce": [255, 255, 220],
|
|
60
|
+
"Pr": [210, 255, 210],
|
|
61
|
+
"Nd": [220, 255, 220],
|
|
62
|
+
"Pm": [185, 255, 220],
|
|
63
|
+
"Sm": [175, 255, 220],
|
|
64
|
+
"Eu": [165, 255, 220],
|
|
65
|
+
"Gd": [155, 255, 220],
|
|
66
|
+
"Tb": [145, 255, 220],
|
|
67
|
+
"Dy": [135, 255, 220],
|
|
68
|
+
"Ho": [125, 255, 200],
|
|
69
|
+
"Er": [115, 245, 200],
|
|
70
|
+
"Tm": [105, 235, 180],
|
|
71
|
+
"Yb": [95, 225, 160],
|
|
72
|
+
"Lu": [85, 215, 140],
|
|
73
|
+
"Hf": [180, 220, 255],
|
|
74
|
+
"Ta": [170, 210, 255],
|
|
75
|
+
"W": [160, 200, 255],
|
|
76
|
+
"Re": [150, 190, 245],
|
|
77
|
+
"Os": [140, 180, 235],
|
|
78
|
+
"Ir": [130, 170, 225],
|
|
79
|
+
"Pt": [220, 220, 230],
|
|
80
|
+
"Au": [255, 240, 180],
|
|
81
|
+
"Hg": [230, 230, 240],
|
|
82
|
+
"Tl": [240, 200, 200],
|
|
83
|
+
"Pb": [200, 200, 200],
|
|
84
|
+
"Bi": [210, 180, 210],
|
|
85
|
+
"Po": [220, 200, 160],
|
|
86
|
+
"At": [200, 160, 160],
|
|
87
|
+
"Rn": [210, 230, 245],
|
|
88
|
+
"Fr": [255, 150, 180],
|
|
89
|
+
"Ra": [140, 255, 140],
|
|
90
|
+
"Ac": [170, 200, 255],
|
|
91
|
+
"Th": [160, 210, 255],
|
|
92
|
+
"Pa": [150, 200, 255],
|
|
93
|
+
"U": [140, 190, 255],
|
|
94
|
+
"Np": [130, 180, 255],
|
|
95
|
+
"Pu": [120, 170, 255],
|
|
96
|
+
"Am": [110, 160, 245],
|
|
97
|
+
"Cm": [180, 160, 235],
|
|
98
|
+
"Bk": [190, 170, 245],
|
|
99
|
+
"Cf": [200, 180, 255],
|
|
100
|
+
"Es": [210, 190, 255],
|
|
101
|
+
"Fm": [220, 200, 255],
|
|
102
|
+
"Md": [230, 210, 255],
|
|
103
|
+
"No": [240, 220, 255],
|
|
104
|
+
"Lr": [250, 200, 200],
|
|
105
|
+
"Rf": [255, 190, 190],
|
|
106
|
+
"Db": [255, 200, 180],
|
|
107
|
+
"Sg": [255, 210, 170],
|
|
108
|
+
"Bh": [255, 220, 160],
|
|
109
|
+
"Hs": [255, 230, 150],
|
|
110
|
+
"Mt": [255, 240, 140]
|
|
111
|
+
}
|