Files
Astrobox/lua/astrobox/palette.lua
2024-02-14 18:40:07 +01:00

89 lines
2.4 KiB
Lua

local colors = require("astrobox.colors")
return function(config)
local vimbg = vim.o.background
local dark = vimbg == "dark"
local vimbg_reversed = dark and "light" or "dark"
-- Build base colors
local base = {
none = "NONE",
fg = colors.grayscale[vimbg_reversed][1],
bg = colors.bg[vimbg][config.contrast],
harder_bg = colors.bg.harder[vimbg][config.contrast],
softer_bg = colors.bg.softer[vimbg][config.contrast],
bg_gradiant = colors.grayscale[vimbg],
fg_gradiant = colors.grayscale[vimbg_reversed],
colored_backgrounds = colors.colored_backgrounds[vimbg][config.contrast],
gray = colors.gray,
}
-- Append colors
local palette = vim.tbl_extend("error", base, colors.colors[vimbg])
palette.ui = {
fg = palette.fg,
bg = palette.none,
bg_hard = palette.harder_bg,
fg_inactive = palette.fg_gradiant[4],
bg_inactive = palette.bg_gradiant[2],
float = {
title = palette.green,
title2 = palette.aqua,
border = palette.fg_gradiant[3],
text = palette.fg_gradiant[2],
scroll = palette.blue,
},
statusbar = {
fg = palette.fg,
bg = palette.bg_gradiant[1],
},
winbar = {
fg = palette.fg_gradiant[1],
bg = palette.harder_bg,
fg_inactive = palette.bg_gradiant[3],
bg_inactive = palette.harder_bg,
},
selection = {
fg = palette.fg,
bg = palette.colored_backgrounds.blue,
},
win = {
separator = palette.fg_gradiant[4],
},
}
palette.other = {
conceal = palette.bg_gradiant[3],
hard_bg = palette.harder_bg,
bg_active = palette.softer_bg,
-- Special HL group to find what a group maps to
error_hl = { fg = "#000000", bg = "#FF00FF" },
}
palette.term_colors = {
palette.bg,
colors.term_colors.red,
colors.term_colors.green,
colors.term_colors.yellow,
colors.term_colors.blue,
colors.term_colors.purple,
colors.term_colors.aqua,
palette.fg_gradiant[4],
palette.gray,
colors.colors.red,
colors.colors.green,
colors.colors.yellow,
colors.colors.blue,
colors.colors.purple,
colors.colors.aqua,
palette.fg,
}
return palette
end