use background as lookup instead of base_name

This commit is contained in:
Michael Chris Lopez
2021-10-11 14:38:05 +08:00
parent 1fdce6cfd4
commit 8266247200
16 changed files with 39 additions and 59 deletions

View File

@@ -3,7 +3,5 @@ vim.g.colors_name = "neobones"
package.loaded["neobones"] = nil
require "lush"(require "neobones")
local util = require "zenbones.util"
local base_name = util.bg_to_base_name()
local p = require("neobones.palette")[base_name]
local p = require("neobones.palette")[vim.opt.background:get()]
require("zenbones.term").apply_colors(p)

View File

@@ -6,7 +6,5 @@ package.loaded["rosebones"] = nil
-- include our theme file and pass it to lush to apply
require "lush"(require "rosebones")
local util = require "zenbones.util"
local base_name = util.bg_to_base_name()
local p = require("rosebones.palette")[base_name]
local p = require("rosebones.palette")[vim.opt.background:get()]
require("zenbones.term").apply_colors(p)

View File

@@ -139,13 +139,12 @@ local lush = require "lush"
local hsluv = lush.hsluv -- Human-friendly hsl
local util = require "zenbones.util"
-- Let's base bg=dark, bg=light on zenflesh, zenbones specs respectively
local base_name = util.bg_to_base_name()
local bg = vim.opt.background:get()
-- Define 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
if bg == "light" then
palette = util.palette_extend({
bg = hsluv "#fbf1c7",
fg = hsluv "#3c3836",
@@ -170,8 +169,8 @@ else
end
-- 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))
local generator = require "zenbones.specs"
local base_specs = generator.generate(palette, bg, generator.get_global_config("gruvbones", bg))
-- Optionally extend specs using Lush
local specs = lush.extends({ base_specs }).with(function()

View File

@@ -2,12 +2,13 @@ local lush = require "lush"
local util = require "zenbones.util"
local hsluv = lush.hsluv
local base_name = util.bg_to_base_name()
local p = require("neobones.palette")[base_name]
local generator = require "zenbones.specs"
local specs = generator.generate(p, base_name, generator.get_global_config(base_name, "neobones"))
local bg = vim.opt.background:get()
local p = require("neobones.palette")[bg]
if base_name == "zenbones" then
local generator = require "zenbones.specs"
local specs = generator.generate(p, bg, generator.get_global_config("neobones", bg))
if bg == "light" then
return lush.extends({ specs }).with(function()
return {
helpHyperTextJump { fg = hsluv "#195174" }, -- --link-color

View File

@@ -4,17 +4,17 @@ local hsluv = lush.hsluv
local M = {}
M.zenbones = util.palette_extend({
M.light = util.palette_extend({
-- bg = hsluv "#d3e4db" -- --accent-bg-color
bg = hsluv "#e7eee8", -- --bg-color
fg = hsluv "#202e18", -- --accent-color
}, "zenbones")
M.zenbones.leaf = M.zenbones.leaf.sa(24).li(8) -- need to make green more prominent
}, "light")
M.light.leaf = M.light.leaf.sa(24).li(8) -- need to make green more prominent
M.zenflesh = util.palette_extend({
M.dark = util.palette_extend {
bg = hsluv "#0f191f", -- --bg-color
fg = hsluv "#c7d6d0", -- --fg-color
leaf = hsluv "#8fff6d", -- --accent-color
}, "zenflesh")
}
return M

View File

@@ -1,11 +1,9 @@
local lush = require "lush"
local util = require "zenbones.util"
local base_name = util.bg_to_base_name()
local p = require("rosebones.palette")[base_name]
local bg = vim.opt.background:get()
local p = require("rosebones.palette")[bg]
local generator = require "zenbones.specs"
local specs = generator.generate(p, base_name, generator.get_global_config(base_name, "rosebones"))
local specs = generator.generate(p, bg, generator.get_global_config("rosebones", bg))
-- extend specs using Lush
return lush.extends({ specs }).with(function()

View File

@@ -4,7 +4,7 @@ local hsluv = lush.hsluv
local M = {}
M.zenbones = util.palette_extend({
M.light = util.palette_extend({
bg = hsluv(57.9, 49.8, 96.5), -- base
fg = hsluv(14.5, 32, 36), -- rose, base: 14.5, 51.1, 63.3
rose = hsluv(355.6, 38.5, 51.9), -- love
@@ -14,9 +14,9 @@ M.zenbones = util.palette_extend({
blossom = hsluv(283.8, 30.2, 54.8), -- iris
sky = hsluv(208.6, 65.3, 57.7), -- foam
text = hsluv(270.1, 22.9, 36.8), -- text, base: 270.1, 22.9, 36.8
}, "zenbones")
}, "light")
M.zenflesh = util.palette_extend({
M.dark = util.palette_extend {
bg = hsluv(271.2, 20.2, 8.5), -- base
bg_warm = hsluv(268.9, 24.5, 13.9), -- base moon
fg = hsluv(14.8, 21, 82), -- rose, base: 2, 55, 83
@@ -27,6 +27,6 @@ M.zenflesh = util.palette_extend({
blossom = hsluv(283.1, 67.3, 73), -- iris
sky = hsluv(206.7, 42.9, 80), -- foam
text = hsluv(269.4, 56, 89.2), -- text, base: 269.4, 63.6, 89.2
}, "zenflesh")
}
return M

View File

@@ -77,12 +77,12 @@ function M.run()
-- neobones light
package.loaded["neobones"] = nil
vim.opt.background = "light"
build("neobones_light", require "neobones", require("neobones.palette").zenbones, { exclude = { "vim" } })
build("neobones_light", require "neobones", require("neobones.palette").light, { exclude = { "vim" } })
-- neobones dark
package.loaded["neobones"] = nil
vim.opt.background = "dark"
build("neobones_dark", require "neobones", require("neobones.palette").zenflesh, { exclude = { "vim" } })
build("neobones_dark", require "neobones", require("neobones.palette").dark, { exclude = { "vim" } })
end
return M

View File

@@ -1,4 +1,4 @@
local generator = require "zenbones.specs"
local p = require "zenbones.palette"
return generator.generate(p, "zenbones", generator.get_global_config "zenbones")
return generator.generate(p, "light", generator.get_global_config "zenbones")

View File

@@ -1,3 +1,3 @@
local util = require "zenbones.util"
return util.palette_extend({}, "zenbones")
return util.palette_extend({}, "light")

View File

@@ -1,34 +1,26 @@
local M = {}
function M.get_global_config(base_name, prefix)
prefix = type(prefix) == "string" and prefix or base_name
if base_name == "zenbones" then
function M.get_global_config(prefix, base_bg)
if base_bg == "light" then
return {
lightness = vim.g[prefix .. "_lightness"],
comment_gui = vim.g[prefix .. "_italic_comments"] ~= false and "italic" or "NONE",
dim_noncurrent_window = vim.g[prefix .. "_dim_noncurrent_window"],
solid_vert_split = vim.g[prefix .. "_solid_vert_split"],
}
elseif base_name == "zenflesh" then
else
return {
darkness = vim.g[prefix .. "_darkness"],
comment_gui = vim.g[prefix .. "_italic_comments"] ~= false and "italic" or "NONE",
lighten_noncurrent_window = vim.g[prefix .. "_lighten_noncurrent_window"],
solid_vert_split = vim.g[prefix .. "_solid_vert_split"],
}
else
error "Unknown base_name"
end
end
function M.generate(p, base_name, opt)
if base_name == "zenbones" then
return require "zenbones.specs.zenbones"(p, opt)
elseif base_name == "zenflesh" then
return require "zenbones.specs.zenflesh"(p, opt)
else
error "Unknown base_name"
end
function M.generate(p, base_bg, opt)
base_bg = base_bg ~= nil and base_bg or "dark"
return require("zenbones.specs." .. base_bg)(p, opt)
end
return M

View File

@@ -7,14 +7,10 @@ function M.interp(s, tab)
end))
end
function M.bg_to_base_name()
return vim.opt.background:get() == "light" and "zenbones" or "zenflesh"
end
function M.palette_extend(p, base_name)
function M.palette_extend(p, base_bg)
local lush = require "lush"
local hsluv = lush.hsluv
if base_name == "zenbones" then
if base_bg == "light" then
p = vim.tbl_extend("keep", p, {
bg = hsluv(39, 12, 94), -- sand
fg = hsluv(230, 30, 22), -- stone
@@ -37,7 +33,7 @@ function M.palette_extend(p, base_name)
sky1 = p.sky.sa(20).da(16),
fg1 = p.fg.li(22),
})
elseif base_name == "zenflesh" then
else
-- default
p = vim.tbl_extend("keep", p, {
bg = hsluv(39, 9, 9), -- sand
@@ -62,8 +58,6 @@ function M.palette_extend(p, base_name)
sky1 = p.sky.sa(20).li(16),
fg1 = p.fg.da(22),
})
else
error "Unknown base_name"
end
end

View File

@@ -1,4 +1,4 @@
local generator = require "zenbones.specs"
local p = require "zenflesh.palette"
return generator.generate(p, "zenflesh", generator.get_global_config "zenflesh")
return generator.generate(p, "dark", generator.get_global_config "zenflesh")

View File

@@ -1,3 +1,3 @@
local util = require "zenbones.util"
return util.palette_extend({}, "zenflesh")
return util.palette_extend {}