43 lines
1.2 KiB
Lua
43 lines
1.2 KiB
Lua
---@class Palette : Colors
|
|
---@field none string
|
|
---@field fg string
|
|
---@field bg string
|
|
---@field harder_bg string
|
|
---@field softer_bg string
|
|
---@field bg_gradiant table
|
|
---@field fg_gradiant table
|
|
---@field colored_backgrounds Colors
|
|
---@field term_colors Colors
|
|
---@field gray string
|
|
|
|
local colors = require("astrobox.palette.colors")
|
|
|
|
--- @return Palette
|
|
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 = colors.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],
|
|
term_colors = colors.term_colors,
|
|
|
|
gray = colors.gray,
|
|
}
|
|
-- Append colors
|
|
local palette = vim.tbl_extend("error", base, colors.colors[vimbg])
|
|
|
|
return palette
|
|
end
|