1use gpui::rgba;
2
3use crate::{
4 default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors,
5 SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant,
6};
7
8pub fn solarized() -> ThemeFamily {
9 ThemeFamily {
10 id: "9a6f18c9-520f-46ec-9bfb-a7ee73508139".into(),
11 name: "Solarized".into(),
12 author: "Ethan Schoonover (altercation)".into(),
13 themes: vec![
14 ThemeVariant {
15 id: "74003db2-7f9a-4d26-8815-020c796bb551".into(),
16 name: "Solarized Dark".into(),
17 appearance: Appearance::Dark,
18 styles: ThemeStyles {
19 system: SystemColors {
20 transparent: rgba(0x00000000).into(),
21 mac_os_traffic_light_red: rgba(0xec6b5fff).into(),
22 mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(),
23 mac_os_traffic_light_green: rgba(0x61c454ff).into(),
24 },
25 colors: ThemeColors {
26 border: rgba(0x003847ff).into(),
27 border_variant: rgba(0x003847ff).into(),
28 border_focused: rgba(0x003847ff).into(),
29 border_disabled: rgba(0x003847ff).into(),
30 border_selected: rgba(0x003847ff).into(),
31 border_transparent: rgba(0x003847ff).into(),
32 elevated_surface_background: rgba(0x18191bff).into(),
33 surface_background: rgba(0x18191bff).into(),
34 background: rgba(0x002a35ff).into(),
35 element_background: rgba(0x29a19899).into(),
36 element_hover: rgba(0x272a2dff).into(),
37 element_active: rgba(0x2e3135ff).into(),
38 element_selected: rgba(0x2e3135ff).into(),
39 element_disabled: rgba(0xddeaf814).into(),
40 element_placeholder: rgba(0xb0b4baff).into(),
41 element_drop_target: rgba(0x1166fb18).into(),
42 ghost_element_background: rgba(0x00000000).into(),
43 ghost_element_hover: rgba(0x272a2dff).into(),
44 ghost_element_active: rgba(0x2e3135ff).into(),
45 ghost_element_selected: rgba(0x2e3135ff).into(),
46 ghost_element_disabled: rgba(0xddeaf814).into(),
47 text: rgba(0xedeef0ff).into(),
48 text_muted: rgba(0xb0b4baff).into(),
49 text_placeholder: rgba(0x767a83ff).into(),
50 text_disabled: rgba(0x696e77ff).into(),
51 text_accent: rgba(0x6fb8ffff).into(),
52 icon: rgba(0xb0b4baff).into(),
53 icon_muted: rgba(0x767a83ff).into(),
54 icon_disabled: rgba(0x696e77ff).into(),
55 icon_placeholder: rgba(0x767a83ff).into(),
56 icon_accent: rgba(0x6fb8ffff).into(),
57 status_bar_background: rgba(0x18191bff).into(),
58 title_bar_background: rgba(0x18191bff).into(),
59 toolbar_background: rgba(0x111113ff).into(),
60 tab_bar_background: rgba(0x18191bff).into(),
61 tab_inactive_background: rgba(0x003f51ff).into(),
62 tab_active_background: rgba(0x002a36ff).into(),
63 editor_background: rgba(0x111113ff).into(),
64 editor_subheader_background: rgba(0x18191bff).into(),
65 editor_active_line: rgba(0xddeaf814).into(),
66 terminal_background: rgba(0x111113ff).into(),
67 terminal_ansi_bright_black: rgba(0x586e75ff).into(),
68 terminal_ansi_bright_red: rgba(0xcb4b15ff).into(),
69 terminal_ansi_bright_green: rgba(0x859900ff).into(),
70 terminal_ansi_bright_yellow: rgba(0x657b83ff).into(),
71 terminal_ansi_bright_blue: rgba(0x839496ff).into(),
72 terminal_ansi_bright_magenta: rgba(0x6c71c4ff).into(),
73 terminal_ansi_bright_cyan: rgba(0x93a1a1ff).into(),
74 terminal_ansi_bright_white: rgba(0x839496ff).into(),
75 terminal_ansi_black: rgba(0x063642ff).into(),
76 terminal_ansi_red: rgba(0xdc312eff).into(),
77 terminal_ansi_green: rgba(0x859900ff).into(),
78 terminal_ansi_yellow: rgba(0xb58800ff).into(),
79 terminal_ansi_blue: rgba(0x258ad2ff).into(),
80 terminal_ansi_magenta: rgba(0xd33582ff).into(),
81 terminal_ansi_cyan: rgba(0x29a198ff).into(),
82 terminal_ansi_white: rgba(0x839496ff).into(),
83 },
84 status: StatusColors {
85 conflict: rgba(0xff9592ff).into(),
86 created: rgba(0x70cf82ff).into(),
87 deleted: rgba(0xff9592ff).into(),
88 error: rgba(0xff9592ff).into(),
89 hidden: rgba(0xb0b4baff).into(),
90 ignored: rgba(0xb0b4baff).into(),
91 info: rgba(0x6fb8ffff).into(),
92 modified: rgba(0xf5e147ff).into(),
93 renamed: rgba(0x6fb8ffff).into(),
94 success: rgba(0x70cf82ff).into(),
95 warning: rgba(0xf5e147ff).into(),
96 },
97 git: GitStatusColors {
98 conflict: rgba(0xffa057ff).into(),
99 created: rgba(0x70cf82ff).into(),
100 deleted: rgba(0xff9592ff).into(),
101 ignored: rgba(0xb0b4baff).into(),
102 modified: rgba(0xf5e147ff).into(),
103 renamed: rgba(0x6fb8ffff).into(),
104 },
105 player: PlayerColors(vec![
106 PlayerColor {
107 cursor: rgba(0x00000000).into(),
108 background: rgba(0x00000000).into(),
109 selection: rgba(0x00000000).into(),
110 },
111 PlayerColor {
112 cursor: rgba(0x00000000).into(),
113 background: rgba(0x00000000).into(),
114 selection: rgba(0x00000000).into(),
115 },
116 PlayerColor {
117 cursor: rgba(0x00000000).into(),
118 background: rgba(0x00000000).into(),
119 selection: rgba(0x00000000).into(),
120 },
121 PlayerColor {
122 cursor: rgba(0x00000000).into(),
123 background: rgba(0x00000000).into(),
124 selection: rgba(0x00000000).into(),
125 },
126 ]),
127 syntax: SyntaxTheme {
128 highlights: vec![
129 ("attribute".into(), rgba(0x4ccce6ff).into()),
130 ("boolean".into(), rgba(0xff977dff).into()),
131 ("comment".into(), rgba(0xb0b4baff).into()),
132 ("comment.doc".into(), rgba(0xe0dffeff).into()),
133 ("constant".into(), rgba(0x8c323aff).into()),
134 ("constructor".into(), rgba(0x8c323aff).into()),
135 ("embedded".into(), rgba(0x8c323aff).into()),
136 ("emphasis".into(), rgba(0x8c323aff).into()),
137 ("emphasis.strong".into(), rgba(0x8c323aff).into()),
138 ("enum".into(), rgba(0x8c323aff).into()),
139 ("function".into(), rgba(0x8c323aff).into()),
140 ("hint".into(), rgba(0x8c323aff).into()),
141 ("keyword".into(), rgba(0xffa057ff).into()),
142 ("label".into(), rgba(0x8c323aff).into()),
143 ("link_text".into(), rgba(0x8c323aff).into()),
144 ("link_uri".into(), rgba(0x8c323aff).into()),
145 ("number".into(), rgba(0x8c323aff).into()),
146 ("operator".into(), rgba(0x8c323aff).into()),
147 ("predictive".into(), rgba(0x8c323aff).into()),
148 ("preproc".into(), rgba(0x8c323aff).into()),
149 ("primary".into(), rgba(0x8c323aff).into()),
150 ("property".into(), rgba(0x8c323aff).into()),
151 ("punctuation".into(), rgba(0xb0b4baff).into()),
152 ("punctuation.bracket".into(), rgba(0xb0b4baff).into()),
153 ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()),
154 ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()),
155 ("punctuation.special".into(), rgba(0x8c323aff).into()),
156 ("string".into(), rgba(0x1ed8a3ff).into()),
157 ("string.escape".into(), rgba(0x8c323aff).into()),
158 ("string.regex".into(), rgba(0xff977dff).into()),
159 ("string.special".into(), rgba(0x8c323aff).into()),
160 ("string.special.symbol".into(), rgba(0x8c323aff).into()),
161 ("tag".into(), rgba(0x8c323aff).into()),
162 ("text.literal".into(), rgba(0x8c323aff).into()),
163 ("title".into(), rgba(0x8c323aff).into()),
164 ("type".into(), rgba(0x8c323aff).into()),
165 ("variable".into(), rgba(0x8c323aff).into()),
166 ("variable.special".into(), rgba(0x8c323aff).into()),
167 ("variant".into(), rgba(0x8c323aff).into()),
168 ],
169 },
170 },
171 },
172 ThemeVariant {
173 id: "43be149b-2604-4eb2-a9ce-c8f902ab3bb3".into(),
174 name: "Solarized Light".into(),
175 appearance: Appearance::Light,
176 styles: ThemeStyles {
177 system: SystemColors {
178 transparent: rgba(0x00000000).into(),
179 mac_os_traffic_light_red: rgba(0xec6b5fff).into(),
180 mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(),
181 mac_os_traffic_light_green: rgba(0x61c454ff).into(),
182 },
183 colors: ThemeColors {
184 border: rgba(0xddd6c1ff).into(),
185 border_variant: rgba(0xddd6c1ff).into(),
186 border_focused: rgba(0xddd6c1ff).into(),
187 border_disabled: rgba(0xddd6c1ff).into(),
188 border_selected: rgba(0xddd6c1ff).into(),
189 border_transparent: rgba(0xddd6c1ff).into(),
190 elevated_surface_background: rgba(0xf9f9fbff).into(),
191 surface_background: rgba(0xf9f9fbff).into(),
192 background: rgba(0xfdf6e3ff).into(),
193 element_background: rgba(0xab9d56ff).into(),
194 element_hover: rgba(0xe8e8ecff).into(),
195 element_active: rgba(0xe0e1e6ff).into(),
196 element_selected: rgba(0xe0e1e6ff).into(),
197 element_disabled: rgba(0x0000320f).into(),
198 element_placeholder: rgba(0x60646cff).into(),
199 element_drop_target: rgba(0x008bff0b).into(),
200 ghost_element_background: rgba(0x00000000).into(),
201 ghost_element_hover: rgba(0xe8e8ecff).into(),
202 ghost_element_active: rgba(0xe0e1e6ff).into(),
203 ghost_element_selected: rgba(0xe0e1e6ff).into(),
204 ghost_element_disabled: rgba(0x0000320f).into(),
205 text: rgba(0x1c2024ff).into(),
206 text_muted: rgba(0x60646cff).into(),
207 text_placeholder: rgba(0x80838dff).into(),
208 text_disabled: rgba(0x8b8d98ff).into(),
209 text_accent: rgba(0x0c73ceff).into(),
210 icon: rgba(0x60646cff).into(),
211 icon_muted: rgba(0x80838dff).into(),
212 icon_disabled: rgba(0x8b8d98ff).into(),
213 icon_placeholder: rgba(0x80838dff).into(),
214 icon_accent: rgba(0x0c73ceff).into(),
215 status_bar_background: rgba(0xf9f9fbff).into(),
216 title_bar_background: rgba(0xf9f9fbff).into(),
217 toolbar_background: rgba(0xfcfcfdff).into(),
218 tab_bar_background: rgba(0xf9f9fbff).into(),
219 tab_inactive_background: rgba(0xd3cbb7ff).into(),
220 tab_active_background: rgba(0xfdf6e3ff).into(),
221 editor_background: rgba(0xfcfcfdff).into(),
222 editor_subheader_background: rgba(0xf9f9fbff).into(),
223 editor_active_line: rgba(0x0000320f).into(),
224 terminal_background: rgba(0xfcfcfdff).into(),
225 terminal_ansi_bright_black: rgba(0x657b83ff).into(),
226 terminal_ansi_bright_red: rgba(0xcb4b15ff).into(),
227 terminal_ansi_bright_green: rgba(0x859900ff).into(),
228 terminal_ansi_bright_yellow: rgba(0x657b83ff).into(),
229 terminal_ansi_bright_blue: rgba(0x839496ff).into(),
230 terminal_ansi_bright_magenta: rgba(0x6c71c4ff).into(),
231 terminal_ansi_bright_cyan: rgba(0x93a1a1ff).into(),
232 terminal_ansi_bright_white: rgba(0xeee8d5ff).into(),
233 terminal_ansi_black: rgba(0x657b83ff).into(),
234 terminal_ansi_red: rgba(0xdc312eff).into(),
235 terminal_ansi_green: rgba(0x859900ff).into(),
236 terminal_ansi_yellow: rgba(0xb58800ff).into(),
237 terminal_ansi_blue: rgba(0x258ad2ff).into(),
238 terminal_ansi_magenta: rgba(0xd33582ff).into(),
239 terminal_ansi_cyan: rgba(0x29a198ff).into(),
240 terminal_ansi_white: rgba(0xeee8d5ff).into(),
241 },
242 status: StatusColors {
243 conflict: rgba(0xff9592ff).into(),
244 created: rgba(0x70cf82ff).into(),
245 deleted: rgba(0xff9592ff).into(),
246 error: rgba(0xff9592ff).into(),
247 hidden: rgba(0xb0b4baff).into(),
248 ignored: rgba(0xb0b4baff).into(),
249 info: rgba(0x6fb8ffff).into(),
250 modified: rgba(0xf5e147ff).into(),
251 renamed: rgba(0x6fb8ffff).into(),
252 success: rgba(0x70cf82ff).into(),
253 warning: rgba(0xf5e147ff).into(),
254 },
255 git: GitStatusColors {
256 conflict: rgba(0xffa057ff).into(),
257 created: rgba(0x70cf82ff).into(),
258 deleted: rgba(0xff9592ff).into(),
259 ignored: rgba(0xb0b4baff).into(),
260 modified: rgba(0xf5e147ff).into(),
261 renamed: rgba(0x6fb8ffff).into(),
262 },
263 player: PlayerColors(vec![
264 PlayerColor {
265 cursor: rgba(0x00000000).into(),
266 background: rgba(0x00000000).into(),
267 selection: rgba(0x00000000).into(),
268 },
269 PlayerColor {
270 cursor: rgba(0x00000000).into(),
271 background: rgba(0x00000000).into(),
272 selection: rgba(0x00000000).into(),
273 },
274 PlayerColor {
275 cursor: rgba(0x00000000).into(),
276 background: rgba(0x00000000).into(),
277 selection: rgba(0x00000000).into(),
278 },
279 PlayerColor {
280 cursor: rgba(0x00000000).into(),
281 background: rgba(0x00000000).into(),
282 selection: rgba(0x00000000).into(),
283 },
284 ]),
285 syntax: SyntaxTheme {
286 highlights: vec![
287 ("attribute".into(), rgba(0x4ccce6ff).into()),
288 ("boolean".into(), rgba(0xff977dff).into()),
289 ("comment".into(), rgba(0xb0b4baff).into()),
290 ("comment.doc".into(), rgba(0xe0dffeff).into()),
291 ("constant".into(), rgba(0x8c323aff).into()),
292 ("constructor".into(), rgba(0x8c323aff).into()),
293 ("embedded".into(), rgba(0x8c323aff).into()),
294 ("emphasis".into(), rgba(0x8c323aff).into()),
295 ("emphasis.strong".into(), rgba(0x8c323aff).into()),
296 ("enum".into(), rgba(0x8c323aff).into()),
297 ("function".into(), rgba(0x8c323aff).into()),
298 ("hint".into(), rgba(0x8c323aff).into()),
299 ("keyword".into(), rgba(0xffa057ff).into()),
300 ("label".into(), rgba(0x8c323aff).into()),
301 ("link_text".into(), rgba(0x8c323aff).into()),
302 ("link_uri".into(), rgba(0x8c323aff).into()),
303 ("number".into(), rgba(0x8c323aff).into()),
304 ("operator".into(), rgba(0x8c323aff).into()),
305 ("predictive".into(), rgba(0x8c323aff).into()),
306 ("preproc".into(), rgba(0x8c323aff).into()),
307 ("primary".into(), rgba(0x8c323aff).into()),
308 ("property".into(), rgba(0x8c323aff).into()),
309 ("punctuation".into(), rgba(0xb0b4baff).into()),
310 ("punctuation.bracket".into(), rgba(0xb0b4baff).into()),
311 ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()),
312 ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()),
313 ("punctuation.special".into(), rgba(0x8c323aff).into()),
314 ("string".into(), rgba(0x1ed8a3ff).into()),
315 ("string.escape".into(), rgba(0x8c323aff).into()),
316 ("string.regex".into(), rgba(0xff977dff).into()),
317 ("string.special".into(), rgba(0x8c323aff).into()),
318 ("string.special.symbol".into(), rgba(0x8c323aff).into()),
319 ("tag".into(), rgba(0x8c323aff).into()),
320 ("text.literal".into(), rgba(0x8c323aff).into()),
321 ("title".into(), rgba(0x8c323aff).into()),
322 ("type".into(), rgba(0x8c323aff).into()),
323 ("variable".into(), rgba(0x8c323aff).into()),
324 ("variable.special".into(), rgba(0x8c323aff).into()),
325 ("variant".into(), rgba(0x8c323aff).into()),
326 ],
327 },
328 },
329 },
330 ],
331 scales: default_color_scales(),
332 }
333}