use crate::{Component, Container, CornerRadii, Palette, Spacing, Theme};
use embedded_graphics::{mono_font::MonoFont, pixelcolor::Rgb888};
const BG: Rgb888 = Rgb888::new(0x18, 0x16, 0x16);
const SURFACE: Rgb888 = Rgb888::new(0x12, 0x12, 0x0f);
const ELEVATED: Rgb888 = Rgb888::new(0x28, 0x27, 0x27);
const TEXT: Rgb888 = Rgb888::new(0xc5, 0xc9, 0xc5);
const TEXT_MUTED: Rgb888 = Rgb888::new(0xa6, 0xa6, 0x9c);
const TEXT_FAINT: Rgb888 = Rgb888::new(0x7a, 0x83, 0x82);
const BORDER: Rgb888 = Rgb888::new(0x39, 0x38, 0x36);
const BORDER_LIGHT: Rgb888 = Rgb888::new(0x12, 0x12, 0x0f);
const ACCENT: Rgb888 = Rgb888::new(0x8b, 0xa4, 0xb0);
const ACCENT_PRESSED: Rgb888 = Rgb888::new(0x7d, 0x94, 0x9e);
const SUCCESS: Rgb888 = Rgb888::new(0x87, 0xa9, 0x87);
const SUCCESS_HOVER: Rgb888 = Rgb888::new(0x95, 0xba, 0x95);
const DESTRUCTIVE: Rgb888 = Rgb888::new(0xc4, 0x74, 0x6e);
const DESTRUCTIVE_HOVER: Rgb888 = Rgb888::new(0xd8, 0x80, 0x7a);
const WARNING: Rgb888 = Rgb888::new(0xc4, 0xb2, 0x8a);
const WARNING_HOVER: Rgb888 = Rgb888::new(0xd8, 0xc4, 0x98);
const BLUE: Rgb888 = Rgb888::new(0x8b, 0xa4, 0xb0);
const GREEN: Rgb888 = Rgb888::new(0x87, 0xa9, 0x87);
const RED: Rgb888 = Rgb888::new(0xc4, 0x74, 0x6e);
const YELLOW: Rgb888 = Rgb888::new(0xc4, 0xb2, 0x8a);
const DEFAULT_FONT: &MonoFont<'static> = &crate::font::FONT_ZEST_MONO;
pub const THEME: Theme<'static, Rgb888> = Theme {
background: Container {
base: BG,
on_base: TEXT,
divider: BORDER_LIGHT,
},
primary: Container {
base: SURFACE,
on_base: TEXT,
divider: BORDER,
},
secondary: Container {
base: ELEVATED,
on_base: TEXT,
divider: BORDER,
},
accent: Component {
base: ACCENT,
pressed: ACCENT_PRESSED,
disabled: TEXT_FAINT,
on_base: BG,
border: ACCENT,
},
button: Component {
base: ELEVATED,
pressed: SURFACE,
disabled: SURFACE,
on_base: TEXT,
border: BORDER,
},
destructive: Component {
base: DESTRUCTIVE,
pressed: DESTRUCTIVE_HOVER,
disabled: TEXT_FAINT,
on_base: BG,
border: DESTRUCTIVE,
},
success: Component {
base: SUCCESS,
pressed: SUCCESS_HOVER,
disabled: TEXT_FAINT,
on_base: BG,
border: SUCCESS,
},
warning: Component {
base: WARNING,
pressed: WARNING_HOVER,
disabled: TEXT_FAINT,
on_base: BG,
border: WARNING,
},
text_button: Component {
base: BG,
pressed: ELEVATED,
disabled: BG,
on_base: ACCENT,
border: BG,
},
icon_button: Component {
base: BG,
pressed: ELEVATED,
disabled: BG,
on_base: TEXT_MUTED,
border: BG,
},
palette: Palette {
neutral_0: TEXT,
neutral_2: TEXT_MUTED,
neutral_4: TEXT_MUTED,
neutral_5: TEXT_FAINT,
neutral_6: TEXT_FAINT,
neutral_8: BORDER,
neutral_10: BG,
accent_blue: BLUE,
accent_green: GREEN,
accent_red: RED,
accent_yellow: YELLOW,
black: Rgb888::new(0x00, 0x00, 0x00),
white: Rgb888::new(0xff, 0xff, 0xff),
},
spacing: Spacing::default_small(),
corner_radii: CornerRadii::default_small(),
typography: crate::Typography::new(
&crate::font::FONT_ZEST_MONO_DISPLAY,
&crate::font::FONT_ZEST_MONO_HEADING,
DEFAULT_FONT,
&crate::font::FONT_ZEST_MONO_CAPTION,
),
is_dark: true,
is_high_contrast: false,
};