1use refineable::Refineable;
2use serde::Deserialize;
3
4use crate::{Appearance, ThemeColors, ThemeColorsRefinement};
5
6#[derive(Deserialize)]
7pub struct UserThemeFamily {
8 pub name: String,
9 pub author: String,
10 pub themes: Vec<UserTheme>,
11}
12
13#[derive(Deserialize)]
14pub struct UserTheme {
15 pub name: String,
16 pub appearance: Appearance,
17 pub styles: UserThemeStylesRefinement,
18}
19
20#[derive(Refineable, Clone)]
21#[refineable(deserialize)]
22pub struct UserThemeStyles {
23 #[refineable]
24 pub colors: ThemeColors,
25}