282 lines
9.5 KiB
Rust
282 lines
9.5 KiB
Rust
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,
|
|
},
|
|
}
|
|
}
|