use super::*; use ratatui::style::Color; pub fn theme() -> ThemeColors { let bg = Color::Rgb(90, 84, 117); let bg_light = Color::Rgb(113, 103, 153); let bg_lighter = Color::Rgb(130, 120, 165); let fg = Color::Rgb(248, 248, 240); let fg_dim = Color::Rgb(197, 163, 255); let muted = Color::Rgb(168, 164, 177); let dark = Color::Rgb(55, 51, 72); let purple = Color::Rgb(174, 129, 255); let pink = Color::Rgb(255, 184, 209); let coral = Color::Rgb(255, 133, 127); let yellow = Color::Rgb(255, 243, 82); let gold = Color::Rgb(230, 192, 0); let mint = Color::Rgb(194, 255, 223); let lavender = Color::Rgb(197, 163, 255); ThemeColors { ui: UiColors { bg, bg_rgb: (90, 84, 117), text_primary: fg, text_muted: fg_dim, text_dim: muted, border: bg_lighter, header: mint, unfocused: muted, accent: pink, surface: bg_light, }, status: StatusColors { playing_bg: Color::Rgb(70, 95, 85), playing_fg: mint, stopped_bg: Color::Rgb(100, 70, 85), stopped_fg: coral, fill_on: mint, fill_off: muted, fill_bg: bg_light, }, selection: SelectionColors { cursor_bg: pink, cursor_fg: dark, selected_bg: Color::Rgb(120, 90, 130), selected_fg: pink, in_range_bg: Color::Rgb(100, 95, 125), in_range_fg: fg, cursor: pink, selected: Color::Rgb(120, 90, 130), in_range: Color::Rgb(100, 95, 125), }, tile: TileColors { playing_active_bg: Color::Rgb(100, 85, 60), playing_active_fg: gold, playing_inactive_bg: Color::Rgb(95, 90, 70), playing_inactive_fg: yellow, active_bg: Color::Rgb(70, 100, 100), active_fg: mint, inactive_bg: bg_light, inactive_fg: fg_dim, active_selected_bg: Color::Rgb(120, 90, 130), active_in_range_bg: Color::Rgb(100, 95, 125), link_bright: [ (255, 184, 209), (174, 129, 255), (255, 133, 127), (194, 255, 223), (255, 243, 82), ], link_dim: [ (100, 75, 90), (85, 70, 105), (100, 65, 65), (75, 100, 95), (100, 95, 55), ], }, header: HeaderColors { tempo_bg: Color::Rgb(100, 75, 95), tempo_fg: pink, bank_bg: Color::Rgb(70, 95, 95), bank_fg: mint, pattern_bg: Color::Rgb(85, 75, 110), pattern_fg: purple, stats_bg: bg_light, stats_fg: fg_dim, }, modal: ModalColors { border: mint, border_accent: pink, border_warn: coral, border_dim: muted, confirm: coral, rename: purple, input: mint, editor: mint, preview: muted, }, flash: FlashColors { error_bg: Color::Rgb(100, 65, 70), error_fg: coral, success_bg: Color::Rgb(65, 95, 85), success_fg: mint, info_bg: bg_light, info_fg: fg, }, list: ListColors { playing_bg: Color::Rgb(65, 95, 85), playing_fg: mint, staged_play_bg: Color::Rgb(95, 80, 120), staged_play_fg: purple, staged_stop_bg: Color::Rgb(105, 70, 85), staged_stop_fg: pink, edit_bg: Color::Rgb(70, 95, 100), edit_fg: mint, hover_bg: bg_lighter, hover_fg: fg, muted_bg: Color::Rgb(75, 70, 95), muted_fg: muted, soloed_bg: Color::Rgb(100, 95, 65), soloed_fg: yellow, }, link_status: LinkStatusColors { disabled: coral, connected: mint, listening: yellow, }, syntax: SyntaxColors { gap_bg: dark, executed_bg: Color::Rgb(80, 75, 100), selected_bg: Color::Rgb(110, 100, 70), emit: (fg, Color::Rgb(110, 80, 100)), number: (purple, Color::Rgb(85, 75, 110)), string: (yellow, Color::Rgb(100, 95, 60)), comment: (muted, dark), keyword: (pink, Color::Rgb(105, 75, 90)), stack_op: (mint, Color::Rgb(70, 100, 95)), operator: (pink, Color::Rgb(105, 75, 90)), sound: (mint, Color::Rgb(70, 100, 95)), param: (coral, Color::Rgb(105, 70, 70)), context: (coral, Color::Rgb(105, 70, 70)), note: (lavender, Color::Rgb(85, 75, 110)), interval: (Color::Rgb(220, 190, 255), Color::Rgb(85, 75, 100)), variable: (lavender, Color::Rgb(85, 75, 110)), vary: (yellow, Color::Rgb(100, 95, 60)), generator: (mint, Color::Rgb(70, 95, 95)), user_defined: (coral, Color::Rgb(100, 75, 75)), default: (fg_dim, dark), }, table: TableColors { row_even: dark, row_odd: bg, }, values: ValuesColors { tempo: coral, value: fg_dim, }, hint: HintColors { key: coral, text: muted, }, view_badge: ViewBadgeColors { bg: fg, fg: bg }, nav: NavColors { selected_bg: Color::Rgb(110, 85, 120), selected_fg: fg, unselected_bg: bg_light, unselected_fg: muted, }, editor_widget: EditorWidgetColors { cursor_bg: fg, cursor_fg: bg, selection_bg: Color::Rgb(105, 95, 125), completion_bg: bg_light, completion_fg: fg, completion_selected: coral, completion_example: mint, }, browser: BrowserColors { directory: mint, project_file: purple, selected: coral, file: fg, focused_border: coral, unfocused_border: muted, root: fg, file_icon: muted, folder_icon: mint, empty_text: muted, }, input: InputColors { text: mint, cursor: fg, hint: muted, }, search: SearchColors { active: coral, inactive: muted, match_bg: yellow, match_fg: dark, }, markdown: MarkdownColors { h1: mint, h2: coral, h3: purple, code: lavender, code_border: Color::Rgb(120, 115, 140), link: pink, link_url: Color::Rgb(150, 145, 165), quote: muted, text: fg, list: fg, }, engine: EngineColors { header: mint, header_focused: yellow, divider: Color::Rgb(110, 105, 130), scroll_indicator: Color::Rgb(125, 120, 145), label: Color::Rgb(175, 170, 190), label_focused: Color::Rgb(210, 205, 225), label_dim: Color::Rgb(145, 140, 160), value: Color::Rgb(230, 225, 240), focused: yellow, normal: fg, dim: Color::Rgb(125, 120, 145), path: Color::Rgb(175, 170, 190), border_magenta: pink, border_green: mint, border_cyan: lavender, separator: Color::Rgb(110, 105, 130), hint_active: Color::Rgb(240, 230, 120), hint_inactive: Color::Rgb(110, 105, 130), }, dict: DictColors { word_name: lavender, word_bg: Color::Rgb(75, 85, 105), alias: muted, stack_sig: purple, description: fg, example: Color::Rgb(175, 170, 190), category_focused: yellow, category_selected: mint, category_normal: fg, category_dimmed: Color::Rgb(125, 120, 145), border_focused: yellow, border_normal: Color::Rgb(110, 105, 130), header_desc: Color::Rgb(195, 190, 210), }, title: TitleColors { big_title: pink, author: mint, link: lavender, license: coral, prompt: Color::Rgb(195, 190, 210), subtitle: fg, }, meter: MeterColors { low: mint, mid: yellow, high: coral, low_rgb: (194, 255, 223), mid_rgb: (255, 243, 82), high_rgb: (255, 133, 127), }, sparkle: SparkleColors { colors: [ (194, 255, 223), (255, 133, 127), (255, 243, 82), (255, 184, 209), (174, 129, 255), ], }, confirm: ConfirmColors { border: coral, button_selected_bg: coral, button_selected_fg: dark, }, } }