update gruvbones example
This commit is contained in:
@@ -99,70 +99,58 @@ Let's define our
|
||||
```lua
|
||||
vim.g.colors_name = "gruvbones"
|
||||
|
||||
-- let's base bg=dark, bg=light on zenflesh, zenbones specs respectively
|
||||
local base_name = vim.opt.background:get() == "dark" and "zenflesh" or "zenbones"
|
||||
|
||||
-- reset base palette and specs
|
||||
package.loaded[base_name .. ".palette"] = nil
|
||||
package.loaded[base_name] = nil
|
||||
|
||||
local lush = require "lush"
|
||||
local hsl = lush.hsl
|
||||
local hsluv = lush.hsluv -- human-friendly hsl
|
||||
local util = require "zenbones.util"
|
||||
|
||||
-- modify base palette (before requiring specs)
|
||||
-- and we can also define our own
|
||||
-- note: non-exhaustive copy of gruvbox palette. Ref: https://github.com/gruvbox-community/gruvbox#palette
|
||||
local base = require(base_name .. ".palette")
|
||||
local gruv
|
||||
-- let's base bg=dark, bg=light on zenflesh, zenbones specs respectively
|
||||
local base_name = util.bg_to_base_name()
|
||||
|
||||
-- create a palette. Use palette_extend to fill unspecified colors
|
||||
-- based on https://github.com/gruvbox-community/gruvbox#palette
|
||||
local palette
|
||||
if base_name == "zenbones" then
|
||||
base.bg = hsl "#fbf1c7"
|
||||
base.fg = hsl "#3c3836"
|
||||
gruv = {
|
||||
gray = hsl "#7c6f64",
|
||||
fg0 = hsl "#282828",
|
||||
fg1 = hsl "#3c3836",
|
||||
fg2 = hsl "#504945",
|
||||
fg3 = hsl "#665c54",
|
||||
fg4 = hsl "#7c6f64",
|
||||
}
|
||||
palette = util.palette_extend({
|
||||
bg = hsluv "#fbf1c7",
|
||||
fg = hsluv "#3c3836",
|
||||
rose = hsluv "#9d0006",
|
||||
leaf = hsluv "#79740e",
|
||||
wood = hsluv "#b57614",
|
||||
water = hsluv "#076678",
|
||||
blossom = hsluv "#8f3f71",
|
||||
sky = hsluv "#427b58",
|
||||
}, "zenbones")
|
||||
else
|
||||
base.bg = hsl "#282828"
|
||||
base.fg = hsl "#ebdbb2"
|
||||
gruv = {
|
||||
gray = hsl "#a89984",
|
||||
fg0 = hsl "#fbf1c7",
|
||||
fg1 = hsl "#ebdbb2",
|
||||
fg2 = hsl "#d5c4a1",
|
||||
fg3 = hsl "#d5c4a1",
|
||||
fg4 = hsl "#a89984",
|
||||
}
|
||||
palette = util.palette_extend({
|
||||
bg = hsluv "#282828",
|
||||
fg = hsluv "#ebdbb2",
|
||||
rose = hsluv "#fb4934",
|
||||
leaf = hsluv "#b8bb26",
|
||||
wood = hsluv "#fabd2f",
|
||||
water = hsluv "#83a598",
|
||||
blossom = hsluv "#d3869b",
|
||||
sky = hsluv "#83c07c",
|
||||
}, "zenflesh")
|
||||
end
|
||||
|
||||
base.rose = hsl "#cc241d"
|
||||
base.leaf = hsl "#98971a"
|
||||
base.wood = hsl "#d79921"
|
||||
base.water = hsl "#458588"
|
||||
base.blossom = hsl "#b16286"
|
||||
base.sky = hsl "#689d6a"
|
||||
-- generate the lush specs using the generator util
|
||||
local generator = require(base_name .. ".specs")
|
||||
local base_specs = generator.generate(palette, generator.get_global_config(base_name))
|
||||
|
||||
-- extend specs using Lush
|
||||
local theme = require(base_name)
|
||||
local specs = lush.extends({ theme }).with(function()
|
||||
-- optionally extend specs using Lush
|
||||
local specs = lush.extends({ base_specs }).with(function()
|
||||
return {
|
||||
Constant { fg = gruv.fg4, gui = "italic" },
|
||||
Identifier { fg = gruv.fg2, gui = "italic" },
|
||||
Special { fg = gruv.fg3, gui = "bold" },
|
||||
Delimiter { fg = gruv.gray },
|
||||
Comment { fg = gruv.gray, gui = "italic" },
|
||||
LineNr { fg = Comment.fg },
|
||||
Statement { base_specs.Statement, fg = palette.rose },
|
||||
Special { fg = palette.water },
|
||||
Type { fg = palette.sky, gui = "italic" },
|
||||
}
|
||||
end)
|
||||
|
||||
-- apply terminal colors
|
||||
require(base_name .. ".term").setup()
|
||||
|
||||
-- include our theme file and pass it to lush to apply
|
||||
lush(specs)
|
||||
|
||||
-- optionally, set term colors
|
||||
require("zenbones.term").apply_colors(palette)
|
||||
```
|
||||
|
||||
And there you have it. Just call `colorscheme gruvbones` to use your new
|
||||
|
||||
Reference in New Issue
Block a user