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 hover: {
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 };
54 borderColor: {
55 primary: {
56 value: Color;
57 };
58 secondary: {
59 value: Color;
60 };
61 muted: {
62 value: Color;
63 };
64 focused: {
65 value: Color;
66 };
67 active: {
68 value: Color;
69 };
70 };
71 textColor: {
72 primary: {
73 value: Color;
74 };
75 secondary: {
76 value: Color;
77 };
78 muted: {
79 value: Color;
80 };
81 placeholder: {
82 value: Color;
83 };
84 active: {
85 value: Color;
86 };
87 feature: {
88 value: Color;
89 };
90 };
91 syntax: {
92 primary: SyntaxHighlightStyle;
93 comment: SyntaxHighlightStyle;
94 punctuation: SyntaxHighlightStyle;
95 constant: SyntaxHighlightStyle;
96 keyword: SyntaxHighlightStyle;
97 function: SyntaxHighlightStyle;
98 type: SyntaxHighlightStyle;
99 variant: SyntaxHighlightStyle;
100 property: SyntaxHighlightStyle;
101 enum: SyntaxHighlightStyle;
102 operator: SyntaxHighlightStyle;
103 string: SyntaxHighlightStyle;
104 number: SyntaxHighlightStyle;
105 boolean: SyntaxHighlightStyle;
106 predictive: SyntaxHighlightStyle;
107 };
108 player: {
109 1: Player;
110 2: Player;
111 3: Player;
112 4: Player;
113 5: Player;
114 6: Player;
115 7: Player;
116 8: Player;
117 };
118 shadowAlpha: {
119 value: number;
120 };
121}