local M = {} ---@param P Palette ---@param C Config ---@return Theme ---@diagnostic disable-next-line: unused-local function M.make_theme(P, C) ---@class Theme local T = { none = { fg = P.none, bg = P.none }, normal = { fg = P.fg, bg = P.bg }, highlight = { fg = P.fg_gradiant[1], bg = P.none }, highlight_bold = { fg = P.fg_gradiant[1], bg = P.none, bold = true }, inverted = { fg = P.bg, bg = P.fg }, inactive = { fg = P.fg_gradiant[4] }, conceal = { fg = P.bg_gradiant[3], bg = P.harder_bg }, active = { fg = P.none, bg = P.softer_bg }, } T.error = { fg = "#000000", bg = "#FF00FF" } T.colors = { accent = P.blue, accent2 = P.green, accent3 = P.aqua, } T.backgrounds = { red = { fg = P.none, bg = P.colored_backgrounds.red }, green = { fg = P.none, bg = P.colored_backgrounds.green }, yellow = { fg = P.none, bg = P.colored_backgrounds.yellow }, blue = { fg = P.none, bg = P.colored_backgrounds.blue }, purple = { fg = P.none, bg = P.colored_backgrounds.purple }, aqua = { fg = P.none, bg = P.colored_backgrounds.aqua }, orange = { fg = P.none, bg = P.colored_backgrounds.orange }, } T.diff = { normal = { add = { fg = P.green, bg = P.none }, text = { fg = P.yellow, bg = P.none }, change = { fg = P.blue, bg = P.none }, del = { fg = P.red, bg = P.none }, merge = { fg = P.purple, bg = P.none }, staged = { fg = P.aqua, bg = P.none }, }, bg = { add = T.backgrounds.green, text = T.backgrounds.yellow, change = T.backgrounds.blue, del = T.backgrounds.red, }, } T.msg = { error = { fg = P.red, bg = P.none }, warning = { fg = P.yellow, bg = P.none }, info = { fg = P.blue, bg = P.none }, hint = { fg = P.aqua, bg = P.none }, } T.files = { directory = { fg = T.colors.accent }, file = { fg = T.normal.fg }, root = { fg = T.normal.fg, bold = true }, added = { fg = T.colors.diffadd }, changed = { fg = T.colors.difftext }, untracked = { fg = P.orange }, } T.scrollbar = { fg = P.none, bg = P.colored_backgrounds.blue } T.windows = { separator = { fg = P.fg_gradiant[4], bg = P.none }, } T.popup = { normal = T.normal, conceal = T.conceal, inactive = { fg = P.fg_gradiant[4], bg = P.bg_gradiant[2], }, border = T.windows.separator, title = { fg = T.colors.accent2, bg = P.none, bold = true }, -- TODO need to switch to normal.bg? title2 = { fg = T.colors.accent3, bg = P.none, bold = true }, -- TODO need to switch to normal.bg? } T.selection = { fg = P.fg, bg = P.colored_backgrounds.blue, } T.menu = { normal = { fg = P.fg_gradiant[1], bg = P.harder_bg }, selection = { fg = P.fg_gradiant[1], bg = T.selection.bg }, } T.statusbar = { normal = { fg = P.fg_gradiant[1], bg = P.bg_gradiant[1], }, active = { fg = P.fg_gradiant[1], bg = P.harder_bg, bold = true, }, inactive = { fg = P.fg_gradiant[2], bg = P.bg, }, } T.winbar = { normal = { fg = P.fg_gradiant[1], bg = P.harder_bg, }, active = { fg = P.fg_gradiant[1], bg = P.bg, }, inactive = { fg = P.fg_gradiant[4], bg = P.harder_bg, }, } T.term_colors = { P.bg, P.term_colors.red, P.term_colors.green, P.term_colors.yellow, P.term_colors.blue, P.term_colors.purple, P.term_colors.aqua, P.fg_gradiant[4], P.gray, P.red, P.green, P.yellow, P.blue, P.purple, P.aqua, P.fg, } return T end return M