use super::*; use ratatui::style::Color; pub fn theme() -> ThemeColors { let bg = Color::Rgb(31, 31, 40); let bg_light = Color::Rgb(43, 43, 54); let bg_lighter = Color::Rgb(54, 54, 70); let fg = Color::Rgb(220, 215, 186); let fg_dim = Color::Rgb(160, 158, 140); let comment = Color::Rgb(114, 113, 105); let crystal_blue = Color::Rgb(126, 156, 216); let oni_violet = Color::Rgb(149, 127, 184); let autumn_green = Color::Rgb(118, 148, 106); let autumn_red = Color::Rgb(195, 64, 67); let carp_yellow = Color::Rgb(230, 195, 132); let spring_blue = Color::Rgb(127, 180, 202); let wave_red = Color::Rgb(228, 104, 118); let sakura_pink = Color::Rgb(210, 126, 153); let darker_bg = Color::Rgb(26, 26, 34); ThemeColors { ui: UiColors { bg, bg_rgb: (31, 31, 40), text_primary: fg, text_muted: fg_dim, text_dim: comment, border: bg_lighter, header: crystal_blue, unfocused: comment, accent: sakura_pink, surface: bg_light, }, status: StatusColors { playing_bg: Color::Rgb(40, 55, 45), playing_fg: autumn_green, stopped_bg: Color::Rgb(60, 40, 45), stopped_fg: autumn_red, fill_on: autumn_green, fill_off: comment, fill_bg: bg_light, }, selection: SelectionColors { cursor_bg: sakura_pink, cursor_fg: bg, selected_bg: Color::Rgb(65, 55, 70), selected_fg: sakura_pink, in_range_bg: Color::Rgb(50, 50, 60), in_range_fg: fg, cursor: sakura_pink, selected: Color::Rgb(65, 55, 70), in_range: Color::Rgb(50, 50, 60), }, tile: TileColors { playing_active_bg: Color::Rgb(65, 60, 50), playing_active_fg: carp_yellow, playing_inactive_bg: Color::Rgb(55, 55, 50), playing_inactive_fg: fg_dim, active_bg: Color::Rgb(45, 55, 70), active_fg: crystal_blue, inactive_bg: bg_light, inactive_fg: fg_dim, active_selected_bg: Color::Rgb(65, 55, 70), active_in_range_bg: Color::Rgb(50, 50, 60), link_bright: [ (228, 104, 118), (149, 127, 184), (230, 195, 132), (127, 180, 202), (118, 148, 106), ], link_dim: [ (75, 45, 50), (55, 50, 70), (70, 60, 50), (45, 60, 70), (45, 55, 45), ], }, header: HeaderColors { tempo_bg: Color::Rgb(55, 50, 65), tempo_fg: oni_violet, bank_bg: Color::Rgb(45, 55, 70), bank_fg: crystal_blue, pattern_bg: Color::Rgb(45, 55, 45), pattern_fg: autumn_green, stats_bg: bg_light, stats_fg: fg_dim, }, modal: ModalColors { border: crystal_blue, border_accent: sakura_pink, border_warn: carp_yellow, border_dim: comment, confirm: carp_yellow, rename: oni_violet, input: crystal_blue, editor: crystal_blue, preview: comment, }, flash: FlashColors { error_bg: Color::Rgb(60, 40, 45), error_fg: wave_red, success_bg: Color::Rgb(40, 55, 45), success_fg: autumn_green, info_bg: bg_light, info_fg: fg, }, list: ListColors { playing_bg: Color::Rgb(40, 55, 45), playing_fg: autumn_green, staged_play_bg: Color::Rgb(55, 50, 70), staged_play_fg: oni_violet, staged_stop_bg: Color::Rgb(65, 45, 50), staged_stop_fg: wave_red, edit_bg: Color::Rgb(45, 55, 70), edit_fg: crystal_blue, hover_bg: bg_lighter, hover_fg: fg, muted_bg: Color::Rgb(38, 38, 48), muted_fg: comment, soloed_bg: Color::Rgb(60, 55, 45), soloed_fg: carp_yellow, }, link_status: LinkStatusColors { disabled: autumn_red, connected: autumn_green, listening: carp_yellow, }, syntax: SyntaxColors { gap_bg: darker_bg, executed_bg: Color::Rgb(45, 45, 55), selected_bg: Color::Rgb(65, 60, 50), emit: (fg, Color::Rgb(60, 50, 60)), number: (oni_violet, Color::Rgb(55, 50, 65)), string: (autumn_green, Color::Rgb(45, 55, 45)), comment: (comment, darker_bg), keyword: (sakura_pink, Color::Rgb(60, 50, 55)), stack_op: (spring_blue, Color::Rgb(45, 55, 65)), operator: (wave_red, Color::Rgb(60, 45, 50)), sound: (crystal_blue, Color::Rgb(45, 55, 70)), param: (carp_yellow, Color::Rgb(65, 60, 50)), context: (carp_yellow, Color::Rgb(65, 60, 50)), note: (autumn_green, Color::Rgb(45, 55, 45)), interval: (Color::Rgb(150, 180, 130), Color::Rgb(45, 55, 45)), variable: (autumn_green, Color::Rgb(45, 55, 45)), vary: (carp_yellow, Color::Rgb(65, 60, 50)), generator: (spring_blue, Color::Rgb(45, 55, 65)), default: (fg_dim, darker_bg), }, table: TableColors { row_even: darker_bg, row_odd: bg, }, values: ValuesColors { tempo: carp_yellow, value: fg_dim, }, hint: HintColors { key: carp_yellow, text: comment, }, view_badge: ViewBadgeColors { bg: fg, fg: bg }, nav: NavColors { selected_bg: Color::Rgb(60, 50, 70), selected_fg: fg, unselected_bg: bg_light, unselected_fg: comment, }, editor_widget: EditorWidgetColors { cursor_bg: fg, cursor_fg: bg, selection_bg: Color::Rgb(55, 55, 70), completion_bg: bg_light, completion_fg: fg, completion_selected: carp_yellow, completion_example: spring_blue, }, browser: BrowserColors { directory: crystal_blue, project_file: oni_violet, selected: carp_yellow, file: fg, focused_border: carp_yellow, unfocused_border: comment, root: fg, file_icon: comment, folder_icon: crystal_blue, empty_text: comment, }, input: InputColors { text: crystal_blue, cursor: fg, hint: comment, }, search: SearchColors { active: carp_yellow, inactive: comment, match_bg: carp_yellow, match_fg: bg, }, markdown: MarkdownColors { h1: crystal_blue, h2: carp_yellow, h3: oni_violet, code: autumn_green, code_border: Color::Rgb(65, 65, 80), link: sakura_pink, link_url: Color::Rgb(100, 100, 115), quote: comment, text: fg, list: fg, }, engine: EngineColors { header: crystal_blue, header_focused: carp_yellow, divider: Color::Rgb(60, 60, 75), scroll_indicator: Color::Rgb(75, 75, 92), label: Color::Rgb(140, 138, 125), label_focused: Color::Rgb(170, 168, 155), label_dim: Color::Rgb(110, 108, 100), value: Color::Rgb(200, 195, 175), focused: carp_yellow, normal: fg, dim: Color::Rgb(75, 75, 92), path: Color::Rgb(140, 138, 125), border_magenta: oni_violet, border_green: autumn_green, border_cyan: spring_blue, separator: Color::Rgb(60, 60, 75), hint_active: Color::Rgb(220, 185, 120), hint_inactive: Color::Rgb(60, 60, 75), }, dict: DictColors { word_name: autumn_green, word_bg: Color::Rgb(45, 50, 50), alias: comment, stack_sig: oni_violet, description: fg, example: Color::Rgb(140, 138, 125), category_focused: carp_yellow, category_selected: crystal_blue, category_normal: fg, category_dimmed: Color::Rgb(75, 75, 92), border_focused: carp_yellow, border_normal: Color::Rgb(60, 60, 75), header_desc: Color::Rgb(160, 158, 145), }, title: TitleColors { big_title: sakura_pink, author: crystal_blue, link: autumn_green, license: carp_yellow, prompt: Color::Rgb(160, 158, 145), subtitle: fg, }, meter: MeterColors { low: autumn_green, mid: carp_yellow, high: wave_red, low_rgb: (118, 148, 106), mid_rgb: (230, 195, 132), high_rgb: (228, 104, 118), }, sparkle: SparkleColors { colors: [ (127, 180, 202), (230, 195, 132), (118, 148, 106), (228, 104, 118), (149, 127, 184), ], }, confirm: ConfirmColors { border: carp_yellow, button_selected_bg: carp_yellow, button_selected_fg: bg, }, } }