280 lines
9.7 KiB
Rust
280 lines
9.7 KiB
Rust
use super::*;
|
|
use ratatui::style::Color;
|
|
|
|
pub fn theme() -> ThemeColors {
|
|
let polar_night0 = Color::Rgb(46, 52, 64);
|
|
let polar_night1 = Color::Rgb(59, 66, 82);
|
|
let polar_night2 = Color::Rgb(67, 76, 94);
|
|
let polar_night3 = Color::Rgb(76, 86, 106);
|
|
let snow_storm0 = Color::Rgb(216, 222, 233);
|
|
let snow_storm2 = Color::Rgb(236, 239, 244);
|
|
let frost0 = Color::Rgb(143, 188, 187);
|
|
let frost1 = Color::Rgb(136, 192, 208);
|
|
let frost2 = Color::Rgb(129, 161, 193);
|
|
let aurora_red = Color::Rgb(191, 97, 106);
|
|
let aurora_orange = Color::Rgb(208, 135, 112);
|
|
let aurora_yellow = Color::Rgb(235, 203, 139);
|
|
let aurora_green = Color::Rgb(163, 190, 140);
|
|
let aurora_purple = Color::Rgb(180, 142, 173);
|
|
|
|
ThemeColors {
|
|
ui: UiColors {
|
|
bg: polar_night0,
|
|
bg_rgb: (46, 52, 64),
|
|
text_primary: snow_storm2,
|
|
text_muted: snow_storm0,
|
|
text_dim: polar_night3,
|
|
border: polar_night2,
|
|
header: frost1,
|
|
unfocused: polar_night3,
|
|
accent: frost1,
|
|
surface: polar_night1,
|
|
},
|
|
status: StatusColors {
|
|
playing_bg: Color::Rgb(50, 65, 60),
|
|
playing_fg: aurora_green,
|
|
stopped_bg: Color::Rgb(65, 50, 55),
|
|
stopped_fg: aurora_red,
|
|
fill_on: aurora_green,
|
|
fill_off: polar_night3,
|
|
fill_bg: polar_night1,
|
|
},
|
|
selection: SelectionColors {
|
|
cursor_bg: frost1,
|
|
cursor_fg: polar_night0,
|
|
selected_bg: Color::Rgb(70, 85, 105),
|
|
selected_fg: frost1,
|
|
in_range_bg: Color::Rgb(60, 70, 90),
|
|
in_range_fg: snow_storm0,
|
|
cursor: frost1,
|
|
selected: Color::Rgb(70, 85, 105),
|
|
in_range: Color::Rgb(60, 70, 90),
|
|
},
|
|
tile: TileColors {
|
|
playing_active_bg: Color::Rgb(80, 70, 65),
|
|
playing_active_fg: aurora_orange,
|
|
playing_inactive_bg: Color::Rgb(75, 70, 55),
|
|
playing_inactive_fg: aurora_yellow,
|
|
active_bg: Color::Rgb(50, 65, 65),
|
|
active_fg: frost0,
|
|
inactive_bg: polar_night1,
|
|
inactive_fg: snow_storm0,
|
|
active_selected_bg: Color::Rgb(75, 75, 95),
|
|
active_in_range_bg: Color::Rgb(60, 70, 85),
|
|
link_bright: [
|
|
(136, 192, 208),
|
|
(180, 142, 173),
|
|
(208, 135, 112),
|
|
(143, 188, 187),
|
|
(163, 190, 140),
|
|
],
|
|
link_dim: [
|
|
(55, 75, 85),
|
|
(70, 60, 70),
|
|
(75, 55, 50),
|
|
(55, 75, 75),
|
|
(60, 75, 55),
|
|
],
|
|
},
|
|
header: HeaderColors {
|
|
tempo_bg: Color::Rgb(65, 55, 70),
|
|
tempo_fg: aurora_purple,
|
|
bank_bg: Color::Rgb(45, 60, 70),
|
|
bank_fg: frost2,
|
|
pattern_bg: Color::Rgb(50, 65, 65),
|
|
pattern_fg: frost0,
|
|
stats_bg: polar_night1,
|
|
stats_fg: snow_storm0,
|
|
},
|
|
modal: ModalColors {
|
|
border: frost1,
|
|
border_accent: aurora_purple,
|
|
border_warn: aurora_orange,
|
|
border_dim: polar_night3,
|
|
confirm: aurora_orange,
|
|
rename: aurora_purple,
|
|
input: frost2,
|
|
editor: frost1,
|
|
preview: polar_night3,
|
|
},
|
|
flash: FlashColors {
|
|
error_bg: Color::Rgb(65, 50, 55),
|
|
error_fg: aurora_red,
|
|
success_bg: Color::Rgb(50, 65, 55),
|
|
success_fg: aurora_green,
|
|
info_bg: polar_night1,
|
|
info_fg: snow_storm2,
|
|
event_rgb: (60, 55, 75),
|
|
},
|
|
list: ListColors {
|
|
playing_bg: Color::Rgb(50, 65, 55),
|
|
playing_fg: aurora_green,
|
|
staged_play_bg: Color::Rgb(65, 55, 70),
|
|
staged_play_fg: aurora_purple,
|
|
staged_stop_bg: Color::Rgb(70, 55, 60),
|
|
staged_stop_fg: aurora_red,
|
|
edit_bg: Color::Rgb(50, 65, 65),
|
|
edit_fg: frost0,
|
|
hover_bg: polar_night2,
|
|
hover_fg: snow_storm2,
|
|
},
|
|
link_status: LinkStatusColors {
|
|
disabled: aurora_red,
|
|
connected: aurora_green,
|
|
listening: aurora_yellow,
|
|
},
|
|
syntax: SyntaxColors {
|
|
gap_bg: polar_night1,
|
|
executed_bg: Color::Rgb(55, 55, 70),
|
|
selected_bg: Color::Rgb(80, 70, 55),
|
|
emit: (snow_storm2, Color::Rgb(75, 55, 60)),
|
|
number: (aurora_orange, Color::Rgb(65, 55, 50)),
|
|
string: (aurora_green, Color::Rgb(50, 60, 50)),
|
|
comment: (polar_night3, polar_night0),
|
|
keyword: (aurora_purple, Color::Rgb(60, 50, 65)),
|
|
stack_op: (frost2, Color::Rgb(45, 55, 70)),
|
|
operator: (aurora_yellow, Color::Rgb(65, 60, 45)),
|
|
sound: (frost0, Color::Rgb(45, 60, 60)),
|
|
param: (frost1, Color::Rgb(50, 60, 70)),
|
|
context: (aurora_orange, Color::Rgb(65, 55, 50)),
|
|
note: (aurora_green, Color::Rgb(50, 60, 50)),
|
|
interval: (Color::Rgb(170, 200, 150), Color::Rgb(50, 60, 45)),
|
|
variable: (aurora_purple, Color::Rgb(60, 50, 60)),
|
|
vary: (aurora_yellow, Color::Rgb(65, 60, 45)),
|
|
generator: (frost0, Color::Rgb(45, 60, 55)),
|
|
default: (snow_storm0, polar_night1),
|
|
},
|
|
table: TableColors {
|
|
row_even: polar_night1,
|
|
row_odd: polar_night0,
|
|
},
|
|
values: ValuesColors {
|
|
tempo: aurora_orange,
|
|
value: snow_storm0,
|
|
},
|
|
hint: HintColors {
|
|
key: aurora_orange,
|
|
text: polar_night3,
|
|
},
|
|
view_badge: ViewBadgeColors {
|
|
bg: snow_storm2,
|
|
fg: polar_night0,
|
|
},
|
|
nav: NavColors {
|
|
selected_bg: Color::Rgb(65, 75, 95),
|
|
selected_fg: snow_storm2,
|
|
unselected_bg: polar_night1,
|
|
unselected_fg: polar_night3,
|
|
},
|
|
editor_widget: EditorWidgetColors {
|
|
cursor_bg: snow_storm2,
|
|
cursor_fg: polar_night0,
|
|
selection_bg: Color::Rgb(60, 75, 100),
|
|
completion_bg: polar_night1,
|
|
completion_fg: snow_storm2,
|
|
completion_selected: aurora_orange,
|
|
completion_example: frost0,
|
|
},
|
|
browser: BrowserColors {
|
|
directory: frost2,
|
|
project_file: aurora_purple,
|
|
selected: aurora_orange,
|
|
file: snow_storm2,
|
|
focused_border: aurora_orange,
|
|
unfocused_border: polar_night3,
|
|
root: snow_storm2,
|
|
file_icon: polar_night3,
|
|
folder_icon: frost2,
|
|
empty_text: polar_night3,
|
|
},
|
|
input: InputColors {
|
|
text: frost2,
|
|
cursor: snow_storm2,
|
|
hint: polar_night3,
|
|
},
|
|
search: SearchColors {
|
|
active: aurora_orange,
|
|
inactive: polar_night3,
|
|
match_bg: aurora_yellow,
|
|
match_fg: polar_night0,
|
|
},
|
|
markdown: MarkdownColors {
|
|
h1: frost2,
|
|
h2: aurora_orange,
|
|
h3: aurora_purple,
|
|
code: aurora_green,
|
|
code_border: Color::Rgb(75, 85, 100),
|
|
link: frost0,
|
|
link_url: Color::Rgb(100, 110, 125),
|
|
quote: polar_night3,
|
|
text: snow_storm2,
|
|
list: snow_storm2,
|
|
},
|
|
engine: EngineColors {
|
|
header: frost1,
|
|
header_focused: aurora_yellow,
|
|
divider: Color::Rgb(70, 80, 95),
|
|
scroll_indicator: Color::Rgb(85, 95, 110),
|
|
label: Color::Rgb(130, 140, 155),
|
|
label_focused: Color::Rgb(160, 170, 185),
|
|
label_dim: Color::Rgb(100, 110, 125),
|
|
value: Color::Rgb(190, 200, 215),
|
|
focused: aurora_yellow,
|
|
normal: snow_storm2,
|
|
dim: Color::Rgb(85, 95, 110),
|
|
path: Color::Rgb(130, 140, 155),
|
|
border_magenta: aurora_purple,
|
|
border_green: aurora_green,
|
|
border_cyan: frost2,
|
|
separator: Color::Rgb(70, 80, 95),
|
|
hint_active: Color::Rgb(200, 180, 100),
|
|
hint_inactive: Color::Rgb(70, 80, 95),
|
|
},
|
|
dict: DictColors {
|
|
word_name: aurora_green,
|
|
word_bg: Color::Rgb(50, 60, 75),
|
|
alias: polar_night3,
|
|
stack_sig: aurora_purple,
|
|
description: snow_storm2,
|
|
example: Color::Rgb(130, 140, 155),
|
|
category_focused: aurora_yellow,
|
|
category_selected: frost2,
|
|
category_normal: snow_storm2,
|
|
category_dimmed: Color::Rgb(85, 95, 110),
|
|
border_focused: aurora_yellow,
|
|
border_normal: Color::Rgb(70, 80, 95),
|
|
header_desc: Color::Rgb(150, 160, 175),
|
|
},
|
|
title: TitleColors {
|
|
big_title: frost1,
|
|
author: frost2,
|
|
link: frost0,
|
|
license: aurora_orange,
|
|
prompt: Color::Rgb(150, 160, 175),
|
|
subtitle: snow_storm2,
|
|
},
|
|
meter: MeterColors {
|
|
low: aurora_green,
|
|
mid: aurora_yellow,
|
|
high: aurora_red,
|
|
low_rgb: (140, 180, 130),
|
|
mid_rgb: (220, 190, 120),
|
|
high_rgb: (180, 90, 100),
|
|
},
|
|
sparkle: SparkleColors {
|
|
colors: [
|
|
(136, 192, 208),
|
|
(208, 135, 112),
|
|
(163, 190, 140),
|
|
(180, 142, 173),
|
|
(235, 203, 139),
|
|
],
|
|
},
|
|
confirm: ConfirmColors {
|
|
border: aurora_orange,
|
|
button_selected_bg: aurora_orange,
|
|
button_selected_fg: polar_night0,
|
|
},
|
|
}
|
|
}
|