1export interface NumberToken {
2 value: number,
3 type: "number"
4}
5
6export type Color = string;
7export interface ColorToken {
8 value: Color;
9 type: "color";
10 step?: number
11}
12export type Weight =
13 | "thin"
14 | "extra_light"
15 | "light"
16 | "normal"
17 | "medium"
18 | "semibold"
19 | "bold"
20 | "extra_bold"
21 | "black";
22export interface WeightToken {
23 value: Weight,
24 type: "fontWeight"
25}
26
27export interface SyntaxHighlightStyle {
28 color: ColorToken;
29 weight: WeightToken;
30}
31
32export interface Player {
33 baseColor: ColorToken;
34 cursorColor: ColorToken;
35 selectionColor: ColorToken;
36 borderColor: ColorToken;
37}
38
39export interface BackgroundColor {
40 base: ColorToken;
41 hovered: ColorToken;
42 active: ColorToken;
43 focused: ColorToken;
44}
45
46export default interface Theme {
47 backgroundColor: {
48 100: BackgroundColor;
49 300: BackgroundColor;
50 500: BackgroundColor;
51 ok: BackgroundColor;
52 error: BackgroundColor;
53 warning: BackgroundColor;
54 info: BackgroundColor;
55 };
56 borderColor: {
57 primary: ColorToken;
58 secondary: ColorToken;
59 muted: ColorToken;
60 focused: ColorToken;
61 active: ColorToken;
62 ok: ColorToken;
63 error: ColorToken;
64 warning: ColorToken;
65 info: ColorToken;
66 };
67 textColor: {
68 primary: ColorToken;
69 secondary: ColorToken;
70 muted: ColorToken;
71 placeholder: ColorToken;
72 active: ColorToken;
73 feature: ColorToken;
74 ok: ColorToken;
75 error: ColorToken;
76 warning: ColorToken;
77 info: ColorToken;
78 };
79 iconColor: {
80 primary: ColorToken;
81 secondary: ColorToken;
82 muted: ColorToken;
83 placeholder: ColorToken;
84 active: ColorToken;
85 feature: ColorToken;
86 ok: ColorToken;
87 error: ColorToken;
88 warning: ColorToken;
89 info: ColorToken;
90 };
91 editor: {
92 background: ColorToken;
93 indent_guide: ColorToken;
94 indent_guide_active: ColorToken;
95 line: {
96 active: ColorToken;
97 highlighted: ColorToken;
98 inserted: ColorToken;
99 deleted: ColorToken;
100 modified: ColorToken;
101 };
102 highlight: {
103 selection: ColorToken;
104 occurrence: ColorToken;
105 activeOccurrence: ColorToken;
106 matchingBracket: ColorToken;
107 match: ColorToken;
108 activeMatch: ColorToken;
109 related: ColorToken;
110 };
111 gutter: {
112 primary: ColorToken;
113 active: ColorToken;
114 };
115 };
116
117 syntax: {
118 primary: SyntaxHighlightStyle;
119 comment: SyntaxHighlightStyle;
120 punctuation: SyntaxHighlightStyle;
121 constant: SyntaxHighlightStyle;
122 keyword: SyntaxHighlightStyle;
123 function: SyntaxHighlightStyle;
124 type: SyntaxHighlightStyle;
125 variant: SyntaxHighlightStyle;
126 property: SyntaxHighlightStyle;
127 enum: SyntaxHighlightStyle;
128 operator: SyntaxHighlightStyle;
129 string: SyntaxHighlightStyle;
130 number: SyntaxHighlightStyle;
131 boolean: SyntaxHighlightStyle;
132 predictive: SyntaxHighlightStyle;
133 };
134
135 player: {
136 1: Player;
137 2: Player;
138 3: Player;
139 4: Player;
140 5: Player;
141 6: Player;
142 7: Player;
143 8: Player;
144 };
145 shadowAlpha: NumberToken;
146}