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