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