use super::*; use ratatui::style::Color; pub fn theme() -> ThemeColors { let red = Color::Rgb(255, 0, 0); let dark_red = Color::Rgb(215, 0, 0); let darker_red = Color::Rgb(175, 0, 0); let yellow = Color::Rgb(255, 255, 0); let light_yellow = Color::Rgb(255, 255, 95); let gold = Color::Rgb(255, 215, 0); let black = Color::Rgb(0, 0, 0); let white = Color::Rgb(255, 255, 255); let dim_yellow = Color::Rgb(180, 180, 0); let muted_red = Color::Rgb(140, 40, 40); ThemeColors { ui: UiColors { bg: red, bg_rgb: (255, 0, 0), text_primary: yellow, text_muted: light_yellow, text_dim: gold, border: yellow, header: yellow, unfocused: gold, accent: yellow, surface: dark_red, }, status: StatusColors { playing_bg: Color::Rgb(180, 180, 0), playing_fg: black, stopped_bg: darker_red, stopped_fg: yellow, fill_on: yellow, fill_off: gold, fill_bg: dark_red, }, selection: SelectionColors { cursor_bg: yellow, cursor_fg: red, selected_bg: Color::Rgb(200, 200, 0), selected_fg: black, in_range_bg: Color::Rgb(170, 100, 0), in_range_fg: yellow, cursor: yellow, selected: Color::Rgb(200, 200, 0), in_range: Color::Rgb(170, 100, 0), }, tile: TileColors { playing_active_bg: Color::Rgb(200, 200, 0), playing_active_fg: black, playing_inactive_bg: Color::Rgb(180, 180, 0), playing_inactive_fg: black, active_bg: Color::Rgb(200, 50, 50), active_fg: yellow, inactive_bg: dark_red, inactive_fg: gold, active_selected_bg: Color::Rgb(200, 200, 0), active_in_range_bg: Color::Rgb(170, 100, 0), link_bright: [ (255, 255, 0), (255, 255, 255), (255, 215, 0), (255, 255, 95), (255, 255, 0), ], link_dim: [ (140, 140, 0), (140, 140, 140), (140, 120, 0), (140, 140, 60), (140, 140, 0), ], }, header: HeaderColors { tempo_bg: Color::Rgb(180, 180, 0), tempo_fg: black, bank_bg: darker_red, bank_fg: yellow, pattern_bg: Color::Rgb(200, 200, 0), pattern_fg: black, stats_bg: dark_red, stats_fg: yellow, }, modal: ModalColors { border: yellow, border_accent: white, border_warn: gold, border_dim: dim_yellow, confirm: gold, rename: light_yellow, input: yellow, editor: yellow, preview: gold, }, flash: FlashColors { error_bg: black, error_fg: yellow, success_bg: Color::Rgb(180, 180, 0), success_fg: black, info_bg: dark_red, info_fg: yellow, event_rgb: (170, 100, 0), }, list: ListColors { playing_bg: Color::Rgb(180, 180, 0), playing_fg: black, staged_play_bg: Color::Rgb(200, 200, 0), staged_play_fg: black, staged_stop_bg: darker_red, staged_stop_fg: yellow, edit_bg: Color::Rgb(200, 50, 50), edit_fg: yellow, hover_bg: Color::Rgb(230, 50, 50), hover_fg: yellow, }, link_status: LinkStatusColors { disabled: white, connected: yellow, listening: gold, }, syntax: SyntaxColors { gap_bg: darker_red, executed_bg: Color::Rgb(200, 50, 50), selected_bg: Color::Rgb(180, 180, 0), emit: (yellow, muted_red), number: (white, muted_red), string: (gold, muted_red), comment: (dim_yellow, darker_red), keyword: (light_yellow, muted_red), stack_op: (yellow, muted_red), operator: (light_yellow, muted_red), sound: (yellow, muted_red), param: (gold, muted_red), context: (gold, muted_red), note: (white, muted_red), interval: (Color::Rgb(255, 240, 150), muted_red), variable: (white, muted_red), vary: (gold, muted_red), generator: (yellow, muted_red), default: (light_yellow, darker_red), }, table: TableColors { row_even: darker_red, row_odd: red, }, values: ValuesColors { tempo: gold, value: light_yellow, }, hint: HintColors { key: white, text: gold, }, view_badge: ViewBadgeColors { bg: yellow, fg: red }, nav: NavColors { selected_bg: Color::Rgb(200, 200, 0), selected_fg: black, unselected_bg: dark_red, unselected_fg: gold, }, editor_widget: EditorWidgetColors { cursor_bg: yellow, cursor_fg: red, selection_bg: Color::Rgb(180, 180, 0), completion_bg: dark_red, completion_fg: yellow, completion_selected: white, completion_example: gold, }, browser: BrowserColors { directory: yellow, project_file: white, selected: gold, file: light_yellow, focused_border: white, unfocused_border: gold, root: yellow, file_icon: gold, folder_icon: yellow, empty_text: gold, }, input: InputColors { text: yellow, cursor: white, hint: gold, }, search: SearchColors { active: white, inactive: gold, match_bg: yellow, match_fg: red, }, markdown: MarkdownColors { h1: yellow, h2: white, h3: gold, code: light_yellow, code_border: dim_yellow, link: white, link_url: gold, quote: dim_yellow, text: yellow, list: yellow, }, engine: EngineColors { header: yellow, header_focused: white, divider: dim_yellow, scroll_indicator: gold, label: light_yellow, label_focused: white, label_dim: dim_yellow, value: yellow, focused: white, normal: yellow, dim: dim_yellow, path: gold, border_magenta: gold, border_green: yellow, border_cyan: white, separator: dim_yellow, hint_active: white, hint_inactive: dim_yellow, }, dict: DictColors { word_name: yellow, word_bg: darker_red, alias: gold, stack_sig: white, description: yellow, example: gold, category_focused: white, category_selected: yellow, category_normal: light_yellow, category_dimmed: dim_yellow, border_focused: white, border_normal: dim_yellow, header_desc: gold, }, title: TitleColors { big_title: yellow, author: white, link: gold, license: light_yellow, prompt: gold, subtitle: yellow, }, meter: MeterColors { low: yellow, mid: gold, high: white, low_rgb: (255, 255, 0), mid_rgb: (255, 215, 0), high_rgb: (255, 255, 255), }, sparkle: SparkleColors { colors: [ (255, 255, 0), (255, 255, 255), (255, 215, 0), (255, 255, 95), (255, 255, 0), ], }, confirm: ConfirmColors { border: white, button_selected_bg: yellow, button_selected_fg: red, }, } }