1export type Color = string;
2export type Weight =
3 | "thin"
4 | "extra_light"
5 | "light"
6 | "normal"
7 | "medium"
8 | "semibold"
9 | "bold"
10 | "extra_bold"
11 | "black";
12
13interface SyntaxHighlightStyle {
14 color: { value: Color };
15 weight: { value: Weight };
16}
17
18interface Player {
19 baseColor: {
20 value: Color;
21 };
22 cursorColor: {
23 value: Color;
24 };
25 selectionColor: {
26 value: Color;
27 };
28 borderColor: {
29 value: Color;
30 };
31}
32
33export interface BackgroundColor {
34 base: {
35 value: Color;
36 };
37 hovered: {
38 value: Color;
39 };
40 active: {
41 value: Color;
42 };
43 focused: {
44 value: Color;
45 };
46}
47
48export default interface Theme {
49 backgroundColor: {
50 100: BackgroundColor;
51 300: BackgroundColor;
52 500: BackgroundColor;
53 ok: BackgroundColor;
54 error: BackgroundColor;
55 warning: BackgroundColor;
56 info: BackgroundColor;
57 };
58 borderColor: {
59 primary: {
60 value: Color;
61 };
62 secondary: {
63 value: Color;
64 };
65 muted: {
66 value: Color;
67 };
68 focused: {
69 value: Color;
70 };
71 active: {
72 value: Color;
73 };
74 ok: {
75 value: Color;
76 };
77 error: {
78 value: Color;
79 };
80 warning: {
81 value: Color;
82 };
83 info: {
84 value: Color;
85 };
86 };
87 textColor: {
88 primary: {
89 value: Color;
90 };
91 secondary: {
92 value: Color;
93 };
94 muted: {
95 value: Color;
96 };
97 placeholder: {
98 value: Color;
99 };
100 active: {
101 value: Color;
102 };
103 feature: {
104 value: Color;
105 };
106 ok: {
107 value: Color;
108 };
109 error: {
110 value: Color;
111 };
112 warning: {
113 value: Color;
114 };
115 info: {
116 value: Color;
117 };
118 };
119 iconColor: {
120 primary: {
121 value: Color;
122 };
123 secondary: {
124 value: Color;
125 };
126 muted: {
127 value: Color;
128 };
129 placeholder: {
130 value: Color;
131 };
132 active: {
133 value: Color;
134 };
135 feature: {
136 value: Color;
137 };
138 ok: {
139 value: Color;
140 };
141 error: {
142 value: Color;
143 };
144 warning: {
145 value: Color;
146 };
147 info: {
148 value: Color;
149 };
150 };
151 editor: {
152 background: {
153 value: Color;
154 };
155 indent_guide: {
156 value: Color;
157 };
158 indent_guide_active: {
159 value: Color;
160 };
161 line: {
162 active: {
163 value: Color;
164 };
165 highlighted: {
166 value: Color;
167 };
168 inserted: {
169 value: Color;
170 };
171 deleted: {
172 value: Color;
173 };
174 modified: {
175 value: Color;
176 };
177 };
178 highlight: {
179 selection: {
180 value: Color;
181 };
182 occurrence: {
183 value: Color;
184 };
185 activeOccurrence: {
186 value: Color;
187 };
188 matchingBracket: {
189 value: Color;
190 };
191 match: {
192 value: Color;
193 };
194 activeMatch: {
195 value: Color;
196 };
197 related: {
198 value: Color;
199 };
200 };
201 gutter: {
202 primary: {
203 value: Color;
204 };
205 active: {
206 value: Color;
207 };
208 };
209 };
210
211 syntax: {
212 primary: SyntaxHighlightStyle;
213 comment: SyntaxHighlightStyle;
214 punctuation: SyntaxHighlightStyle;
215 constant: SyntaxHighlightStyle;
216 keyword: SyntaxHighlightStyle;
217 function: SyntaxHighlightStyle;
218 type: SyntaxHighlightStyle;
219 variant: SyntaxHighlightStyle;
220 property: SyntaxHighlightStyle;
221 enum: SyntaxHighlightStyle;
222 operator: SyntaxHighlightStyle;
223 string: SyntaxHighlightStyle;
224 number: SyntaxHighlightStyle;
225 boolean: SyntaxHighlightStyle;
226 predictive: SyntaxHighlightStyle;
227 };
228
229 player: {
230 1: Player;
231 2: Player;
232 3: Player;
233 4: Player;
234 5: Player;
235 6: Player;
236 7: Player;
237 8: Player;
238 };
239 shadowAlpha: {
240 value: number;
241 };
242}