Feat: begin slight refactoring

This commit is contained in:
2026-02-01 12:38:48 +01:00
parent 5b4a6ddd14
commit c356aebfde
39 changed files with 4699 additions and 3168 deletions

View File

@@ -0,0 +1,278 @@
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(226, 109, 115);
let sakura_pink = Color::Rgb(212, 140, 149);
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: [
(226, 109, 115),
(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,
event_rgb: (50, 50, 60),
},
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,
},
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: (226, 109, 115),
},
sparkle: SparkleColors {
colors: [
(127, 180, 202),
(230, 195, 132),
(118, 148, 106),
(226, 109, 115),
(149, 127, 184),
],
},
confirm: ConfirmColors {
border: carp_yellow,
button_selected_bg: carp_yellow,
button_selected_fg: bg,
},
}
}