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 interface Syntax {
47 primary: SyntaxHighlightStyle;
48 comment: SyntaxHighlightStyle;
49 punctuation: SyntaxHighlightStyle;
50 constant: SyntaxHighlightStyle;
51 keyword: SyntaxHighlightStyle;
52 function: SyntaxHighlightStyle;
53 type: SyntaxHighlightStyle;
54 variant: SyntaxHighlightStyle;
55 property: SyntaxHighlightStyle;
56 enum: SyntaxHighlightStyle;
57 operator: SyntaxHighlightStyle;
58 string: SyntaxHighlightStyle;
59 number: SyntaxHighlightStyle;
60 boolean: SyntaxHighlightStyle;
61 predictive: SyntaxHighlightStyle;
62};
63
64export default interface Theme {
65 name: string;
66 backgroundColor: {
67 100: BackgroundColor;
68 300: BackgroundColor;
69 500: BackgroundColor;
70 ok: BackgroundColor;
71 error: BackgroundColor;
72 warning: BackgroundColor;
73 info: BackgroundColor;
74 };
75 borderColor: {
76 primary: ColorToken;
77 secondary: ColorToken;
78 muted: ColorToken;
79 focused: ColorToken;
80 active: ColorToken;
81 ok: ColorToken;
82 error: ColorToken;
83 warning: ColorToken;
84 info: ColorToken;
85 };
86 textColor: {
87 primary: ColorToken;
88 secondary: ColorToken;
89 muted: ColorToken;
90 placeholder: ColorToken;
91 active: ColorToken;
92 feature: ColorToken;
93 ok: ColorToken;
94 error: ColorToken;
95 warning: ColorToken;
96 info: ColorToken;
97 };
98 iconColor: {
99 primary: ColorToken;
100 secondary: ColorToken;
101 muted: ColorToken;
102 placeholder: ColorToken;
103 active: ColorToken;
104 feature: ColorToken;
105 ok: ColorToken;
106 error: ColorToken;
107 warning: ColorToken;
108 info: ColorToken;
109 };
110 editor: {
111 background: ColorToken;
112 indent_guide: ColorToken;
113 indent_guide_active: ColorToken;
114 line: {
115 active: ColorToken;
116 highlighted: ColorToken;
117 inserted: ColorToken;
118 deleted: ColorToken;
119 modified: ColorToken;
120 };
121 highlight: {
122 selection: ColorToken;
123 occurrence: ColorToken;
124 activeOccurrence: ColorToken;
125 matchingBracket: ColorToken;
126 match: ColorToken;
127 activeMatch: ColorToken;
128 related: ColorToken;
129 };
130 gutter: {
131 primary: ColorToken;
132 active: ColorToken;
133 };
134 };
135
136 syntax: Syntax,
137
138 player: {
139 1: Player;
140 2: Player;
141 3: Player;
142 4: Player;
143 5: Player;
144 6: Player;
145 7: Player;
146 8: Player;
147 };
148 shadowAlpha: NumberToken;
149}