Feat: refactoring codebase
This commit is contained in:
@@ -1,286 +1,40 @@
|
||||
use super::*;
|
||||
use ratatui::style::Color;
|
||||
use super::palette::Palette;
|
||||
|
||||
// C64 palette on pure black
|
||||
pub fn theme() -> ThemeColors {
|
||||
let bg = Color::Rgb(0, 0, 0);
|
||||
let surface = Color::Rgb(16, 16, 16);
|
||||
let surface2 = Color::Rgb(24, 24, 24);
|
||||
let border = Color::Rgb(51, 51, 51);
|
||||
let fg = Color::Rgb(187, 187, 187);
|
||||
let fg_dim = Color::Rgb(119, 119, 119);
|
||||
let fg_muted = Color::Rgb(51, 51, 51);
|
||||
|
||||
let white = Color::Rgb(255, 255, 255);
|
||||
let lightred = Color::Rgb(255, 119, 119);
|
||||
let cyan = Color::Rgb(170, 255, 238);
|
||||
let violet = Color::Rgb(204, 68, 204);
|
||||
let green = Color::Rgb(0, 204, 85);
|
||||
let lightgreen = Color::Rgb(170, 255, 102);
|
||||
let lightblue = Color::Rgb(0, 136, 255);
|
||||
let yellow = Color::Rgb(238, 238, 119);
|
||||
let orange = Color::Rgb(221, 136, 85);
|
||||
let brown = Color::Rgb(102, 68, 0);
|
||||
|
||||
ThemeColors {
|
||||
ui: UiColors {
|
||||
bg,
|
||||
bg_rgb: (0, 0, 0),
|
||||
text_primary: fg,
|
||||
text_muted: fg_dim,
|
||||
text_dim: fg_muted,
|
||||
border,
|
||||
header: lightblue,
|
||||
unfocused: fg_muted,
|
||||
accent: lightblue,
|
||||
surface,
|
||||
},
|
||||
status: StatusColors {
|
||||
playing_bg: Color::Rgb(0, 24, 10),
|
||||
playing_fg: green,
|
||||
stopped_bg: Color::Rgb(28, 0, 0),
|
||||
stopped_fg: lightred,
|
||||
fill_on: lightblue,
|
||||
fill_off: brown,
|
||||
fill_bg: surface,
|
||||
},
|
||||
selection: SelectionColors {
|
||||
cursor_bg: lightblue,
|
||||
cursor_fg: bg,
|
||||
selected_bg: Color::Rgb(0, 20, 40),
|
||||
selected_fg: cyan,
|
||||
in_range_bg: Color::Rgb(0, 14, 28),
|
||||
in_range_fg: fg,
|
||||
cursor: lightblue,
|
||||
selected: Color::Rgb(0, 20, 40),
|
||||
in_range: Color::Rgb(0, 14, 28),
|
||||
},
|
||||
tile: TileColors {
|
||||
playing_active_bg: Color::Rgb(0, 30, 12),
|
||||
playing_active_fg: lightgreen,
|
||||
playing_inactive_bg: Color::Rgb(30, 30, 14),
|
||||
playing_inactive_fg: yellow,
|
||||
active_bg: Color::Rgb(0, 16, 32),
|
||||
active_fg: lightblue,
|
||||
content_bg: Color::Rgb(7, 23, 39),
|
||||
inactive_bg: surface,
|
||||
inactive_fg: fg_dim,
|
||||
active_selected_bg: Color::Rgb(10, 20, 36),
|
||||
active_in_range_bg: Color::Rgb(6, 14, 28),
|
||||
link_bright: [
|
||||
(0, 136, 255),
|
||||
(0, 204, 85),
|
||||
(238, 238, 119),
|
||||
(204, 68, 204),
|
||||
(170, 255, 238),
|
||||
],
|
||||
link_dim: [
|
||||
(0, 20, 40),
|
||||
(0, 30, 12),
|
||||
(34, 34, 16),
|
||||
(30, 10, 30),
|
||||
(24, 36, 34),
|
||||
],
|
||||
},
|
||||
header: HeaderColors {
|
||||
tempo_bg: Color::Rgb(28, 10, 28),
|
||||
tempo_fg: violet,
|
||||
bank_bg: Color::Rgb(0, 0, 24),
|
||||
bank_fg: lightblue,
|
||||
pattern_bg: Color::Rgb(0, 24, 10),
|
||||
pattern_fg: green,
|
||||
stats_bg: surface,
|
||||
stats_fg: fg_dim,
|
||||
},
|
||||
modal: ModalColors {
|
||||
border: lightblue,
|
||||
border_accent: cyan,
|
||||
border_warn: yellow,
|
||||
border_dim: fg_muted,
|
||||
confirm: lightred,
|
||||
rename: lightblue,
|
||||
input: cyan,
|
||||
editor: lightblue,
|
||||
preview: fg_muted,
|
||||
},
|
||||
flash: FlashColors {
|
||||
error_bg: Color::Rgb(28, 0, 0),
|
||||
error_fg: lightred,
|
||||
success_bg: Color::Rgb(0, 24, 10),
|
||||
success_fg: green,
|
||||
info_bg: surface,
|
||||
info_fg: fg,
|
||||
},
|
||||
list: ListColors {
|
||||
playing_bg: Color::Rgb(0, 24, 10),
|
||||
playing_fg: green,
|
||||
staged_play_bg: Color::Rgb(28, 10, 28),
|
||||
staged_play_fg: violet,
|
||||
staged_stop_bg: Color::Rgb(28, 0, 0),
|
||||
staged_stop_fg: lightred,
|
||||
edit_bg: Color::Rgb(0, 16, 32),
|
||||
edit_fg: lightblue,
|
||||
hover_bg: surface2,
|
||||
hover_fg: fg,
|
||||
muted_bg: Color::Rgb(8, 8, 8),
|
||||
muted_fg: fg_muted,
|
||||
soloed_bg: Color::Rgb(30, 30, 14),
|
||||
soloed_fg: yellow,
|
||||
},
|
||||
link_status: LinkStatusColors {
|
||||
disabled: lightred,
|
||||
connected: green,
|
||||
listening: yellow,
|
||||
},
|
||||
syntax: SyntaxColors {
|
||||
gap_bg: bg,
|
||||
executed_bg: Color::Rgb(0, 12, 24),
|
||||
selected_bg: Color::Rgb(0, 20, 40),
|
||||
emit: (white, Color::Rgb(20, 20, 20)),
|
||||
number: (yellow, Color::Rgb(30, 30, 14)),
|
||||
string: (lightgreen, Color::Rgb(18, 30, 12)),
|
||||
comment: (fg_muted, bg),
|
||||
keyword: (lightred, Color::Rgb(30, 14, 14)),
|
||||
stack_op: (lightblue, Color::Rgb(0, 16, 32)),
|
||||
operator: (cyan, Color::Rgb(20, 30, 28)),
|
||||
sound: (green, Color::Rgb(0, 24, 10)),
|
||||
param: (violet, Color::Rgb(24, 8, 24)),
|
||||
context: (orange, Color::Rgb(28, 16, 10)),
|
||||
note: (lightgreen, Color::Rgb(18, 30, 12)),
|
||||
interval: (Color::Rgb(130, 210, 80), Color::Rgb(14, 26, 8)),
|
||||
variable: (violet, Color::Rgb(24, 8, 24)),
|
||||
vary: (yellow, Color::Rgb(30, 30, 14)),
|
||||
generator: (cyan, Color::Rgb(20, 30, 28)),
|
||||
user_defined: (orange, Color::Rgb(30, 20, 10)),
|
||||
default: (fg_dim, bg),
|
||||
},
|
||||
table: TableColors {
|
||||
row_even: bg,
|
||||
row_odd: surface,
|
||||
},
|
||||
values: ValuesColors {
|
||||
tempo: lightblue,
|
||||
value: fg_dim,
|
||||
},
|
||||
hint: HintColors {
|
||||
key: lightblue,
|
||||
text: fg_muted,
|
||||
},
|
||||
view_badge: ViewBadgeColors { bg: fg, fg: bg },
|
||||
nav: NavColors {
|
||||
selected_bg: Color::Rgb(0, 20, 40),
|
||||
selected_fg: fg,
|
||||
unselected_bg: surface,
|
||||
unselected_fg: fg_muted,
|
||||
},
|
||||
editor_widget: EditorWidgetColors {
|
||||
cursor_bg: fg,
|
||||
cursor_fg: bg,
|
||||
selection_bg: Color::Rgb(0, 24, 48),
|
||||
completion_bg: surface,
|
||||
completion_fg: fg,
|
||||
completion_selected: lightblue,
|
||||
completion_example: cyan,
|
||||
},
|
||||
browser: BrowserColors {
|
||||
directory: lightblue,
|
||||
project_file: green,
|
||||
selected: cyan,
|
||||
file: fg,
|
||||
focused_border: lightblue,
|
||||
unfocused_border: fg_muted,
|
||||
root: fg,
|
||||
file_icon: fg_muted,
|
||||
folder_icon: lightblue,
|
||||
empty_text: fg_muted,
|
||||
},
|
||||
input: InputColors {
|
||||
text: lightblue,
|
||||
cursor: fg,
|
||||
hint: fg_muted,
|
||||
},
|
||||
search: SearchColors {
|
||||
active: lightblue,
|
||||
inactive: fg_muted,
|
||||
match_bg: yellow,
|
||||
match_fg: bg,
|
||||
},
|
||||
markdown: MarkdownColors {
|
||||
h1: lightblue,
|
||||
h2: green,
|
||||
h3: violet,
|
||||
code: lightgreen,
|
||||
code_border: Color::Rgb(36, 36, 36),
|
||||
link: cyan,
|
||||
link_url: brown,
|
||||
quote: fg_muted,
|
||||
text: fg,
|
||||
list: fg,
|
||||
},
|
||||
engine: EngineColors {
|
||||
header: lightblue,
|
||||
header_focused: cyan,
|
||||
divider: Color::Rgb(28, 28, 28),
|
||||
scroll_indicator: Color::Rgb(51, 51, 51),
|
||||
label: fg_dim,
|
||||
label_focused: fg,
|
||||
label_dim: fg_muted,
|
||||
value: fg,
|
||||
focused: cyan,
|
||||
normal: fg,
|
||||
dim: Color::Rgb(36, 36, 36),
|
||||
path: fg_dim,
|
||||
border_magenta: violet,
|
||||
border_green: green,
|
||||
border_cyan: cyan,
|
||||
separator: Color::Rgb(28, 28, 28),
|
||||
hint_active: lightblue,
|
||||
hint_inactive: Color::Rgb(28, 28, 28),
|
||||
},
|
||||
dict: DictColors {
|
||||
word_name: lightgreen,
|
||||
word_bg: Color::Rgb(10, 18, 6),
|
||||
alias: fg_muted,
|
||||
stack_sig: violet,
|
||||
description: fg,
|
||||
example: fg_dim,
|
||||
category_focused: cyan,
|
||||
category_selected: lightblue,
|
||||
category_normal: fg,
|
||||
category_dimmed: Color::Rgb(36, 36, 36),
|
||||
border_focused: cyan,
|
||||
border_normal: Color::Rgb(28, 28, 28),
|
||||
header_desc: fg_dim,
|
||||
},
|
||||
title: TitleColors {
|
||||
big_title: lightblue,
|
||||
author: green,
|
||||
link: cyan,
|
||||
license: yellow,
|
||||
prompt: fg_dim,
|
||||
subtitle: fg,
|
||||
},
|
||||
meter: MeterColors {
|
||||
low: green,
|
||||
mid: yellow,
|
||||
high: lightred,
|
||||
low_rgb: (0, 204, 85),
|
||||
mid_rgb: (238, 238, 119),
|
||||
high_rgb: (255, 119, 119),
|
||||
},
|
||||
sparkle: SparkleColors {
|
||||
colors: [
|
||||
(0, 136, 255),
|
||||
(170, 255, 238),
|
||||
(0, 204, 85),
|
||||
(238, 238, 119),
|
||||
(204, 68, 204),
|
||||
],
|
||||
},
|
||||
confirm: ConfirmColors {
|
||||
border: lightred,
|
||||
button_selected_bg: lightblue,
|
||||
button_selected_fg: bg,
|
||||
},
|
||||
pub fn palette() -> Palette {
|
||||
Palette {
|
||||
bg: (0, 0, 0),
|
||||
surface: (16, 16, 16),
|
||||
surface2: (24, 24, 24),
|
||||
fg: (187, 187, 187),
|
||||
fg_dim: (119, 119, 119),
|
||||
fg_muted: (51, 51, 51),
|
||||
accent: (0, 136, 255), // lightblue
|
||||
red: (255, 119, 119), // lightred
|
||||
green: (0, 204, 85),
|
||||
yellow: (238, 238, 119),
|
||||
blue: (0, 136, 255), // lightblue
|
||||
purple: (204, 68, 204), // violet
|
||||
cyan: (170, 255, 238),
|
||||
orange: (221, 136, 85),
|
||||
tempo_color: (204, 68, 204),
|
||||
bank_color: (0, 136, 255),
|
||||
pattern_color: (0, 204, 85),
|
||||
title_accent: (0, 136, 255),
|
||||
title_author: (0, 204, 85),
|
||||
secondary: (221, 136, 85),
|
||||
link_bright: [
|
||||
(0, 136, 255), (0, 204, 85), (238, 238, 119),
|
||||
(204, 68, 204), (170, 255, 238),
|
||||
],
|
||||
link_dim: [
|
||||
(0, 20, 40), (0, 30, 12), (34, 34, 16),
|
||||
(30, 10, 30), (24, 36, 34),
|
||||
],
|
||||
sparkle: [
|
||||
(0, 136, 255), (170, 255, 238), (0, 204, 85),
|
||||
(238, 238, 119), (204, 68, 204),
|
||||
],
|
||||
meter: [(0, 204, 85), (238, 238, 119), (255, 119, 119)],
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user