nvim/after/colors/jpbones.lua

42 lines
1.2 KiB
Lua

local colors_name = "jpbones"
vim.g.colors_name = colors_name -- Required when defining a colorscheme
local lush = require "lush"
local hsluv = lush.hsluv -- Human-friendly hsl
local util = require "zenbones.util"
local bg = vim.o.background
-- Define a palette. Use `palette_extend` to fill unspecified colors
-- Based on https://github.com/gruvbox-community/gruvbox#palette
local palette
palette = util.palette_extend({
bg = hsluv "#000000",
fg = hsluv "#ebdbb2",
rose = hsluv "#e3716e",
leaf = hsluv "#8bae68",
wood = hsluv "#f0e4cf",
water = hsluv "#83a598",
blossom = hsluv "#b279a7",
sky = hsluv "#819b69",
}, bg)
-- Generate the lush specs using the generator util
local generator = require "zenbones.specs"
local base_specs = generator.generate(palette, bg, generator.get_global_config(colors_name, bg))
-- Optionally extend specs using Lush
local specs = lush.extends({ base_specs }).with(function()
return {
Statement { base_specs.Statement, fg = palette.rose },
Special { fg = palette.water },
Type { fg = palette.sky, gui = "italic" },
}
end)
-- Pass the specs to lush to apply
lush(specs)
-- Optionally set term colors
require("zenbones.term").apply_colors(palette)