solarized.rs

  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}