1use std::sync::Arc;
2
3use crate::prelude::*;
4
5use crate::{
6 default_color_scales,
7 one_themes::{one_dark, one_family},
8 Appearance, PlayerColors, StatusColors, SyntaxTheme, SystemColors, Theme, ThemeColors,
9 ThemeFamily, ThemeStyles,
10};
11
12fn zed_pro_daylight() -> Theme {
13 Theme {
14 id: "zed_pro_daylight".to_string(),
15 name: "Zed Pro Daylight".into(),
16 appearance: Appearance::Light,
17 styles: ThemeStyles {
18 system: SystemColors::default(),
19 colors: ThemeColors::light(),
20 status: StatusColors::light(),
21 player: PlayerColors::light(),
22 syntax: Arc::new(SyntaxTheme::light()),
23 accents: vec![
24 blue().light().step_9(),
25 orange().light().step_9(),
26 pink().light().step_9(),
27 lime().light().step_9(),
28 purple().light().step_9(),
29 amber().light().step_9(),
30 jade().light().step_9(),
31 tomato().light().step_9(),
32 cyan().light().step_9(),
33 gold().light().step_9(),
34 grass().light().step_9(),
35 indigo().light().step_9(),
36 iris().light().step_9(),
37 ],
38 },
39 }
40}
41
42pub(crate) fn zed_pro_moonlight() -> Theme {
43 Theme {
44 id: "zed_pro_moonlight".to_string(),
45 name: "Zed Pro Moonlight".into(),
46 appearance: Appearance::Dark,
47 styles: ThemeStyles {
48 system: SystemColors::default(),
49 colors: ThemeColors::dark(),
50 status: StatusColors::dark(),
51 player: PlayerColors::dark(),
52 syntax: Arc::new(SyntaxTheme::dark()),
53 accents: vec![
54 blue().dark().step_9(),
55 orange().dark().step_9(),
56 pink().dark().step_9(),
57 lime().dark().step_9(),
58 purple().dark().step_9(),
59 amber().dark().step_9(),
60 jade().dark().step_9(),
61 tomato().dark().step_9(),
62 cyan().dark().step_9(),
63 gold().dark().step_9(),
64 grass().dark().step_9(),
65 indigo().dark().step_9(),
66 iris().dark().step_9(),
67 ],
68 },
69 }
70}
71
72pub fn zed_pro_family() -> ThemeFamily {
73 ThemeFamily {
74 id: "zed_pro".to_string(),
75 name: "Zed Pro".into(),
76 author: "Zed Team".into(),
77 themes: vec![zed_pro_daylight(), zed_pro_moonlight()],
78 scales: default_color_scales(),
79 }
80}
81
82impl Default for ThemeFamily {
83 fn default() -> Self {
84 one_family()
85 }
86}
87
88impl Default for Theme {
89 fn default() -> Self {
90 one_dark()
91 }
92}