diff --git a/colors/rosebones.lua b/colors/rosebones.lua index 0132855..de0ce9a 100644 --- a/colors/rosebones.lua +++ b/colors/rosebones.lua @@ -1,14 +1,9 @@ vim.g.colors_name = "rosebones" -local base_name = require("zenbones.util").bg_to_base_name() - --- reset base palette and specs -package.loaded[base_name .. ".palette"] = nil -package.loaded[base_name] = nil -package.loaded["zenbones.rosebones.palette"] = nil +-- reset specs package.loaded["zenbones.rosebones"] = nil -- include our theme file and pass it to lush to apply require "lush"(require "zenbones.rosebones") -require("zenbones.rosebones.terminal").setup() +-- require("zenbones.rosebones.terminal").setup() diff --git a/lua/zenbones/init.lua b/lua/zenbones/init.lua index a01ce8e..920bc61 100644 --- a/lua/zenbones/init.lua +++ b/lua/zenbones/init.lua @@ -1,9 +1,5 @@ local specs = require "zenbones.specs" local p = require "zenbones.palette" +local config = require("zenbones.util").resolve_config "zenbones" -return specs.generate(p, { - lightness = vim.g.zenbones_lightness, - comment_gui = vim.g.zenbones_italic_comments ~= false and "italic" or "NONE", - dim_noncurrent_window = vim.g.zenbones_dim_noncurrent_window, - solid_vert_split = vim.g.zenbones_solid_vert_split, -}) +return specs.generate(p, config) diff --git a/lua/zenbones/rosebones/init.lua b/lua/zenbones/rosebones/init.lua index c2a42e9..ad03714 100644 --- a/lua/zenbones/rosebones/init.lua +++ b/lua/zenbones/rosebones/init.lua @@ -1,18 +1,16 @@ local lush = require "lush" +local util = require "zenbones.util" --- modify base palette (before requiring specs) -local palette = require "zenbones.rosebones.palette" +local base_name = util.bg_to_base_name() +local p = require "zenbones.rosebones.palette" + +local specs = require(base_name .. ".specs").generate(p[base_name], util.resolve_config(base_name)) -- extend specs using Lush -local base_name = require("zenbones.util").bg_to_base_name() -local theme = require(base_name) - -local specs = lush.extends({ theme }).with(function() +return lush.extends({ specs }).with(function() return { - Statement { fg = palette.leaf, gui = "bold" }, - Special { fg = palette.water, gui = "bold" }, - Type { fg = palette.text }, + Statement { fg = p.leaf, gui = "bold" }, + Special { fg = p.water, gui = "bold" }, + Type { fg = p.text }, } end) - -return specs diff --git a/lua/zenbones/rosebones/palette.lua b/lua/zenbones/rosebones/palette.lua index edf2844..12ad34f 100644 --- a/lua/zenbones/rosebones/palette.lua +++ b/lua/zenbones/rosebones/palette.lua @@ -1,33 +1,36 @@ local lush = require "lush" local hsl = lush.hsl -local base_name = require("zenbones.util").bg_to_base_name() -local palette = require(base_name .. ".palette") +local M = {} -if base_name == "zenbones" then - palette.bg = hsl(32, 57, 95) -- base - palette.bg_bright = palette.bg.abs_li(3).sa(6) - palette.bg_dim = palette.bg.abs_da(3) - palette.fg = hsl(3, 24, 38) -- rose, base: 3, 53, 67 - palette.rose = hsl(343, 35, 55) -- love - palette.leaf = hsl(197, 53, 34) -- pine - palette.wood = hsl(35, 81, 56) -- gold - palette.water = hsl(189, 30, 48) -- foam - palette.blossom = hsl(268, 21, 57) -- iris - palette.sky = hsl(189, 30, 48) -- foam - palette.text = hsl(248, 12, 40) -- text, base: 248, 19, 40 -else - palette.bg = hsl(249, 22, 12) -- base - palette.bg_stark = palette.bg.abs_da(3).sa(8) - palette.bg_warm = hsl(246, 24, 17) -- base moon - palette.fg = hsl(2, 18, 83) -- rose, base: 2, 55, 83 - palette.rose = hsl(343, 76, 68) -- love - palette.leaf = hsl(197, 49, 38) -- pine - palette.wood = hsl(35, 88, 72) -- gold - palette.water = hsl(189, 43, 73) -- foam - palette.blossom = hsl(267, 57, 78) -- iris - palette.sky = hsl(190, 15, 73) -- foam - palette.text = hsl(245, 20, 78) -- text, base: 245, 50, 91 -end +local zenbones = { + bg = hsl(32, 57, 95), -- base + fg = hsl(3, 24, 38), -- rose, base: 3, 53, 67 + rose = hsl(343, 35, 55), -- love + leaf = hsl(197, 53, 34), -- pine + wood = hsl(35, 81, 56), -- gold + water = hsl(189, 30, 48), -- foam + blossom = hsl(268, 21, 57), -- iris + sky = hsl(189, 30, 48), -- foam + text = hsl(248, 12, 40), -- text, base: 248, 19, 40 +} +zenbones.bg_bright = zenbones.bg.abs_li(3).sa(6) +zenbones.bg_dim = zenbones.bg.abs_da(3) +M.zenbones = zenbones -return palette +local zenflesh = { + bg = hsl(249, 22, 12), -- base + fg = hsl(2, 18, 83), -- rose, base: 2, 55, 83 + rose = hsl(343, 76, 68), -- love + leaf = hsl(197, 49, 38), -- pine + wood = hsl(35, 88, 72), -- gold + water = hsl(189, 43, 73), -- foam + blossom = hsl(267, 57, 78), -- iris + sky = hsl(190, 15, 73), -- foam + text = hsl(245, 20, 78), -- text, base: 245, 50, 91 +} +zenflesh.bg_stark = zenflesh.bg.abs_da(3).sa(8) +zenflesh.bg_warm = hsl(246, 24, 17) -- base moon +M.zenflesh = zenflesh + +return M diff --git a/lua/zenbones/util.lua b/lua/zenbones/util.lua index 83207ba..d06b95d 100644 --- a/lua/zenbones/util.lua +++ b/lua/zenbones/util.lua @@ -29,4 +29,22 @@ function M.build(name, specs, palette, terminal, options) end end +function M.resolve_config(base_name) + if base_name == "zenbones" then + return { + lightness = vim.g.zenbones_lightness, + comment_gui = vim.g.zenbones_italic_comments ~= false and "italic" or "NONE", + dim_noncurrent_window = vim.g.zenbones_dim_noncurrent_window, + solid_vert_split = vim.g.zenbones_solid_vert_split, + } + else + return { + darkness = vim.g.zenflesh_darkness, + comment_gui = vim.g.zenflesh_italic_comments ~= false and "italic" or "NONE", + lighten_noncurrent_window = vim.g.zenflesh_lighten_noncurrent_window, + solid_vert_split = vim.g.zenflesh_solid_vert_split, + } + end +end + return M diff --git a/lua/zenflesh/init.lua b/lua/zenflesh/init.lua index 50798b3..62c5d3b 100644 --- a/lua/zenflesh/init.lua +++ b/lua/zenflesh/init.lua @@ -1,10 +1,5 @@ local specs = require "zenflesh.specs" local p = require "zenflesh.palette" +local config = require("zenbones.util").resolve_config "zenflesh" -return specs.generate(p, { - darkness = vim.g.zenflesh_darkness, - comment_gui = vim.g.zenflesh_italic_comments ~= false and "italic" or "NONE", - lighten_noncurrent_window = vim.g.zenflesh_lighten_noncurrent_window, - solid_vert_split = vim.g.zenflesh_solid_vert_split, -}) --- vi:nowrap +return specs.generate(p, config)