1use freya_core::prelude::Color;
2
3#[derive(Clone, PartialEq)]
4pub struct EditorTheme {
5 pub background: Color,
6 pub gutter_selected: Color,
7 pub gutter_unselected: Color,
8 pub line_selected_background: Color,
9 pub cursor: Color,
10 pub highlight: Color,
11 pub text: Color,
12 pub whitespace: Color,
13}
14
15#[derive(Clone, PartialEq)]
16pub struct SyntaxTheme {
17 pub text: Color,
18 pub whitespace: Color,
19 pub attribute: Color,
20 pub boolean: Color,
21 pub comment: Color,
22 pub constant: Color,
23 pub constructor: Color,
24 pub escape: Color,
25 pub function: Color,
26 pub function_macro: Color,
27 pub function_method: Color,
28 pub keyword: Color,
29 pub label: Color,
30 pub module: Color,
31 pub number: Color,
32 pub operator: Color,
33 pub property: Color,
34 pub punctuation: Color,
35 pub punctuation_bracket: Color,
36 pub punctuation_delimiter: Color,
37 pub punctuation_special: Color,
38 pub string: Color,
39 pub string_escape: Color,
40 pub string_special: Color,
41 pub tag: Color,
42 pub text_literal: Color,
43 pub text_reference: Color,
44 pub text_title: Color,
45 pub text_uri: Color,
46 pub text_emphasis: Color,
47 pub type_: Color,
48 pub variable: Color,
49 pub variable_builtin: Color,
50 pub variable_parameter: Color,
51}
52
53impl Default for SyntaxTheme {
54 fn default() -> Self {
55 DEFAULT_SYNTAX_THEME
56 }
57}
58
59impl Default for EditorTheme {
60 fn default() -> Self {
61 DEFAULT_EDITOR_THEME
62 }
63}
64
65pub const DEFAULT_EDITOR_THEME: EditorTheme = EditorTheme {
66 background: Color::from_rgb(29, 32, 33),
67 gutter_selected: Color::from_rgb(235, 235, 235),
68 gutter_unselected: Color::from_rgb(135, 135, 135),
69 line_selected_background: Color::from_rgb(55, 55, 55),
70 cursor: Color::WHITE,
71 highlight: Color::from_rgb(80, 80, 80),
72 text: Color::WHITE,
73 whitespace: Color::from_af32rgb(0.2, 223, 191, 142),
74};
75
76pub const DEFAULT_SYNTAX_THEME: SyntaxTheme = SyntaxTheme {
77 text: Color::from_rgb(235, 219, 178),
78 whitespace: Color::from_af32rgb(0.2, 223, 191, 142),
79 attribute: Color::from_rgb(131, 165, 152),
80 boolean: Color::from_rgb(211, 134, 155),
81 comment: Color::from_rgb(146, 131, 116),
82 constant: Color::from_rgb(211, 134, 155),
83 constructor: Color::from_rgb(250, 189, 47),
84 escape: Color::from_rgb(254, 128, 25),
85 function: Color::from_rgb(152, 192, 124),
86 function_macro: Color::from_rgb(131, 165, 152),
87 function_method: Color::from_rgb(152, 192, 124),
88 keyword: Color::from_rgb(251, 73, 52),
89 label: Color::from_rgb(211, 134, 155),
90 module: Color::from_rgb(250, 189, 47),
91 number: Color::from_rgb(211, 134, 155),
92 operator: Color::from_rgb(104, 157, 96),
93 property: Color::from_rgb(152, 192, 124),
94 punctuation: Color::from_rgb(104, 157, 96),
95 punctuation_bracket: Color::from_rgb(254, 128, 25),
96 punctuation_delimiter: Color::from_rgb(104, 157, 96),
97 punctuation_special: Color::from_rgb(131, 165, 152),
98 string: Color::from_rgb(184, 187, 38),
99 string_escape: Color::from_rgb(254, 128, 25),
100 string_special: Color::from_rgb(184, 187, 38),
101 tag: Color::from_rgb(131, 165, 152),
102 text_literal: Color::from_rgb(235, 219, 178),
103 text_reference: Color::from_rgb(131, 165, 152),
104 text_title: Color::from_rgb(250, 189, 47),
105 text_uri: Color::from_rgb(104, 157, 96),
106 text_emphasis: Color::from_rgb(235, 219, 178),
107 type_: Color::from_rgb(250, 189, 47),
108 variable: Color::from_rgb(235, 219, 178),
109 variable_builtin: Color::from_rgb(211, 134, 155),
110 variable_parameter: Color::from_rgb(235, 219, 178),
111};