1import { colorRamp } from "./lib";
2
3export type Color = string;
4export type Weight =
5 | "thin"
6 | "extra_light"
7 | "light"
8 | "normal"
9 | "medium"
10 | "semibold"
11 | "bold"
12 | "extra_bold"
13 | "black";
14
15interface SyntaxHighlightStyle {
16 color: { value: Color };
17 weight: { value: Weight };
18}
19
20interface Player {
21 baseColor: {
22 value: Color;
23 };
24 cursorColor: {
25 value: Color;
26 };
27 selectionColor: {
28 value: Color;
29 };
30 borderColor: {
31 value: Color;
32 };
33}
34
35export interface BackgroundColor {
36 base: {
37 value: Color;
38 };
39 hover: {
40 value: Color;
41 };
42 active: {
43 value: Color;
44 };
45 focused: {
46 value: Color;
47 };
48}
49
50export default interface Theme {
51 backgroundColor: {
52 100: BackgroundColor;
53 300: BackgroundColor;
54 500: BackgroundColor;
55 };
56 borderColor: {
57 primary: {
58 value: Color;
59 };
60 secondary: {
61 value: Color;
62 };
63 muted: {
64 value: Color;
65 };
66 focused: {
67 value: Color;
68 };
69 active: {
70 value: Color;
71 };
72 };
73 textColor: {
74 primary: {
75 value: Color;
76 };
77 secondary: {
78 value: Color;
79 };
80 muted: {
81 value: Color;
82 };
83 placeholder: {
84 value: Color;
85 };
86 active: {
87 value: Color;
88 };
89 feature: {
90 value: Color;
91 };
92 ok: {
93 value: Color;
94 };
95 error: {
96 value: Color;
97 };
98 warning: {
99 value: Color;
100 };
101 info: {
102 value: Color;
103 };
104 };
105 iconColor: {
106 primary: {
107 value: Color;
108 };
109 secondary: {
110 value: Color;
111 };
112 muted: {
113 value: Color;
114 };
115 placeholder: {
116 value: Color;
117 };
118 active: {
119 value: Color;
120 };
121 feature: {
122 value: Color;
123 };
124 ok: {
125 value: Color;
126 };
127 error: {
128 value: Color;
129 };
130 warning: {
131 value: Color;
132 };
133 info: {
134 value: Color;
135 };
136 };
137 syntax: {
138 primary: SyntaxHighlightStyle;
139 comment: SyntaxHighlightStyle;
140 punctuation: SyntaxHighlightStyle;
141 constant: SyntaxHighlightStyle;
142 keyword: SyntaxHighlightStyle;
143 function: SyntaxHighlightStyle;
144 type: SyntaxHighlightStyle;
145 variant: SyntaxHighlightStyle;
146 property: SyntaxHighlightStyle;
147 enum: SyntaxHighlightStyle;
148 operator: SyntaxHighlightStyle;
149 string: SyntaxHighlightStyle;
150 number: SyntaxHighlightStyle;
151 boolean: SyntaxHighlightStyle;
152 predictive: SyntaxHighlightStyle;
153 };
154 player: {
155 1: Player;
156 2: Player;
157 3: Player;
158 4: Player;
159 5: Player;
160 6: Player;
161 7: Player;
162 8: Player;
163 };
164 shadowAlpha: {
165 value: number;
166 };
167}