default_theme.rs

 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}