Files
Cagire/crates/ratatui/src/theme/gruvbox_dark.rs

283 lines
8.9 KiB
Rust

use super::*;
use ratatui::style::Color;
pub fn theme() -> ThemeColors {
let bg0 = Color::Rgb(40, 40, 40);
let bg1 = Color::Rgb(60, 56, 54);
let bg2 = Color::Rgb(80, 73, 69);
let fg = Color::Rgb(235, 219, 178);
let fg2 = Color::Rgb(213, 196, 161);
let fg3 = Color::Rgb(189, 174, 147);
let fg4 = Color::Rgb(168, 153, 132);
let red = Color::Rgb(251, 73, 52);
let green = Color::Rgb(184, 187, 38);
let yellow = Color::Rgb(250, 189, 47);
let blue = Color::Rgb(131, 165, 152);
let purple = Color::Rgb(211, 134, 155);
let aqua = Color::Rgb(142, 192, 124);
let orange = Color::Rgb(254, 128, 25);
let darker_bg = Color::Rgb(29, 32, 33);
ThemeColors {
ui: UiColors {
bg: bg0,
bg_rgb: (40, 40, 40),
text_primary: fg,
text_muted: fg3,
text_dim: fg4,
border: bg2,
header: yellow,
unfocused: fg4,
accent: orange,
surface: bg1,
},
status: StatusColors {
playing_bg: Color::Rgb(50, 60, 45),
playing_fg: green,
stopped_bg: Color::Rgb(65, 45, 45),
stopped_fg: red,
fill_on: green,
fill_off: fg4,
fill_bg: bg1,
},
selection: SelectionColors {
cursor_bg: orange,
cursor_fg: bg0,
selected_bg: Color::Rgb(80, 70, 55),
selected_fg: yellow,
in_range_bg: Color::Rgb(65, 60, 50),
in_range_fg: fg2,
cursor: orange,
selected: Color::Rgb(80, 70, 55),
in_range: Color::Rgb(65, 60, 50),
},
tile: TileColors {
playing_active_bg: Color::Rgb(90, 65, 50),
playing_active_fg: orange,
playing_inactive_bg: Color::Rgb(80, 75, 45),
playing_inactive_fg: yellow,
active_bg: Color::Rgb(50, 65, 55),
active_fg: aqua,
inactive_bg: bg1,
inactive_fg: fg3,
active_selected_bg: Color::Rgb(85, 70, 60),
active_in_range_bg: Color::Rgb(70, 65, 55),
link_bright: [
(254, 128, 25),
(211, 134, 155),
(250, 189, 47),
(131, 165, 152),
(184, 187, 38),
],
link_dim: [
(85, 55, 35),
(75, 55, 65),
(80, 70, 40),
(50, 60, 60),
(60, 65, 35),
],
},
header: HeaderColors {
tempo_bg: Color::Rgb(75, 55, 40),
tempo_fg: orange,
bank_bg: Color::Rgb(50, 60, 60),
bank_fg: blue,
pattern_bg: Color::Rgb(50, 65, 50),
pattern_fg: aqua,
stats_bg: bg1,
stats_fg: fg3,
},
modal: ModalColors {
border: yellow,
border_accent: orange,
border_warn: red,
border_dim: fg4,
confirm: orange,
rename: purple,
input: blue,
editor: yellow,
preview: fg4,
},
flash: FlashColors {
error_bg: Color::Rgb(70, 45, 45),
error_fg: red,
success_bg: Color::Rgb(50, 65, 45),
success_fg: green,
info_bg: bg1,
info_fg: fg,
event_rgb: (70, 55, 45),
},
list: ListColors {
playing_bg: Color::Rgb(50, 65, 45),
playing_fg: green,
staged_play_bg: Color::Rgb(70, 55, 60),
staged_play_fg: purple,
staged_stop_bg: Color::Rgb(75, 50, 50),
staged_stop_fg: red,
edit_bg: Color::Rgb(50, 65, 55),
edit_fg: aqua,
hover_bg: bg2,
hover_fg: fg,
muted_bg: Color::Rgb(50, 50, 55),
muted_fg: fg4,
soloed_bg: Color::Rgb(70, 65, 40),
soloed_fg: yellow,
},
link_status: LinkStatusColors {
disabled: red,
connected: green,
listening: yellow,
},
syntax: SyntaxColors {
gap_bg: darker_bg,
executed_bg: Color::Rgb(55, 50, 45),
selected_bg: Color::Rgb(85, 70, 45),
emit: (fg, Color::Rgb(80, 55, 50)),
number: (orange, Color::Rgb(70, 50, 40)),
string: (green, Color::Rgb(50, 60, 40)),
comment: (fg4, darker_bg),
keyword: (red, Color::Rgb(70, 45, 45)),
stack_op: (blue, Color::Rgb(50, 55, 60)),
operator: (yellow, Color::Rgb(70, 65, 40)),
sound: (aqua, Color::Rgb(45, 60, 50)),
param: (purple, Color::Rgb(65, 50, 55)),
context: (orange, Color::Rgb(70, 50, 40)),
note: (green, Color::Rgb(50, 60, 40)),
interval: (Color::Rgb(170, 200, 100), Color::Rgb(55, 65, 40)),
variable: (purple, Color::Rgb(65, 50, 55)),
vary: (yellow, Color::Rgb(70, 65, 40)),
generator: (aqua, Color::Rgb(45, 60, 50)),
default: (fg3, darker_bg),
},
table: TableColors {
row_even: darker_bg,
row_odd: bg0,
},
values: ValuesColors {
tempo: orange,
value: fg3,
},
hint: HintColors {
key: orange,
text: fg4,
},
view_badge: ViewBadgeColors { bg: fg, fg: bg0 },
nav: NavColors {
selected_bg: Color::Rgb(80, 65, 50),
selected_fg: fg,
unselected_bg: bg1,
unselected_fg: fg4,
},
editor_widget: EditorWidgetColors {
cursor_bg: fg,
cursor_fg: bg0,
selection_bg: Color::Rgb(70, 65, 55),
completion_bg: bg1,
completion_fg: fg,
completion_selected: orange,
completion_example: aqua,
},
browser: BrowserColors {
directory: blue,
project_file: purple,
selected: orange,
file: fg,
focused_border: orange,
unfocused_border: fg4,
root: fg,
file_icon: fg4,
folder_icon: blue,
empty_text: fg4,
},
input: InputColors {
text: blue,
cursor: fg,
hint: fg4,
},
search: SearchColors {
active: orange,
inactive: fg4,
match_bg: yellow,
match_fg: bg0,
},
markdown: MarkdownColors {
h1: blue,
h2: orange,
h3: purple,
code: green,
code_border: Color::Rgb(80, 75, 70),
link: aqua,
link_url: Color::Rgb(120, 115, 105),
quote: fg4,
text: fg,
list: fg,
},
engine: EngineColors {
header: blue,
header_focused: yellow,
divider: Color::Rgb(75, 70, 65),
scroll_indicator: Color::Rgb(90, 85, 80),
label: Color::Rgb(145, 135, 125),
label_focused: Color::Rgb(175, 165, 155),
label_dim: Color::Rgb(115, 105, 95),
value: Color::Rgb(200, 190, 175),
focused: yellow,
normal: fg,
dim: Color::Rgb(90, 85, 80),
path: Color::Rgb(145, 135, 125),
border_magenta: purple,
border_green: green,
border_cyan: aqua,
separator: Color::Rgb(75, 70, 65),
hint_active: Color::Rgb(220, 180, 80),
hint_inactive: Color::Rgb(75, 70, 65),
},
dict: DictColors {
word_name: green,
word_bg: Color::Rgb(55, 60, 55),
alias: fg4,
stack_sig: purple,
description: fg,
example: Color::Rgb(145, 135, 125),
category_focused: yellow,
category_selected: blue,
category_normal: fg,
category_dimmed: Color::Rgb(90, 85, 80),
border_focused: yellow,
border_normal: Color::Rgb(75, 70, 65),
header_desc: Color::Rgb(165, 155, 145),
},
title: TitleColors {
big_title: orange,
author: yellow,
link: aqua,
license: purple,
prompt: Color::Rgb(165, 155, 145),
subtitle: fg,
},
meter: MeterColors {
low: green,
mid: yellow,
high: red,
low_rgb: (170, 175, 35),
mid_rgb: (235, 180, 45),
high_rgb: (240, 70, 50),
},
sparkle: SparkleColors {
colors: [
(250, 189, 47),
(254, 128, 25),
(184, 187, 38),
(211, 134, 155),
(131, 165, 152),
],
},
confirm: ConfirmColors {
border: orange,
button_selected_bg: orange,
button_selected_fg: bg0,
},
}
}