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 backgroundColor: {
66 100: BackgroundColor;
67 300: BackgroundColor;
68 500: BackgroundColor;
69 ok: BackgroundColor;
70 error: BackgroundColor;
71 warning: BackgroundColor;
72 info: BackgroundColor;
73 };
74 borderColor: {
75 primary: ColorToken;
76 secondary: ColorToken;
77 muted: ColorToken;
78 focused: ColorToken;
79 active: ColorToken;
80 ok: ColorToken;
81 error: ColorToken;
82 warning: ColorToken;
83 info: ColorToken;
84 };
85 textColor: {
86 primary: ColorToken;
87 secondary: ColorToken;
88 muted: ColorToken;
89 placeholder: ColorToken;
90 active: ColorToken;
91 feature: ColorToken;
92 ok: ColorToken;
93 error: ColorToken;
94 warning: ColorToken;
95 info: ColorToken;
96 };
97 iconColor: {
98 primary: ColorToken;
99 secondary: ColorToken;
100 muted: ColorToken;
101 placeholder: ColorToken;
102 active: ColorToken;
103 feature: ColorToken;
104 ok: ColorToken;
105 error: ColorToken;
106 warning: ColorToken;
107 info: ColorToken;
108 };
109 editor: {
110 background: ColorToken;
111 indent_guide: ColorToken;
112 indent_guide_active: ColorToken;
113 line: {
114 active: ColorToken;
115 highlighted: ColorToken;
116 inserted: ColorToken;
117 deleted: ColorToken;
118 modified: ColorToken;
119 };
120 highlight: {
121 selection: ColorToken;
122 occurrence: ColorToken;
123 activeOccurrence: ColorToken;
124 matchingBracket: ColorToken;
125 match: ColorToken;
126 activeMatch: ColorToken;
127 related: ColorToken;
128 };
129 gutter: {
130 primary: ColorToken;
131 active: ColorToken;
132 };
133 };
134
135 syntax: Syntax,
136
137 player: {
138 1: Player;
139 2: Player;
140 3: Player;
141 4: Player;
142 5: Player;
143 6: Player;
144 7: Player;
145 8: Player;
146 };
147 shadowAlpha: NumberToken;
148}