Compare commits

..

10 Commits

5 changed files with 193 additions and 124 deletions

View File

@@ -1,8 +1,8 @@
vim.g.colors_name = 'lupan' vim.g.colors_name = 'lupan'
if vim.o.background == "dark" then if vim.o.background == "dark" then
package.loaded["lupancolors.lupan"] = nil package.loaded["lupancolors.lupandark"] = nil
require("lush")(require("lupancolors.lupan")) require("lush")(require("lupancolors.lupandark").theme)
else else
package.loaded["lupancolors.lupanlight"] = nil package.loaded["lupancolors.lupanlight"] = nil
require("lush")(require("lupancolors.lupanlight")) require("lush")(require("lupancolors.lupanlight").theme)
end end

View File

@@ -4,64 +4,62 @@ local hsl = lush.hsl
local colors; local colors;
if vim.o.background == "dark" then if vim.o.background == "dark" then
local c = require('lupancolors.lupandark').colors
colors = { colors = {
bg = hsl(210, 15, 20).hex, bg = c.base.da(70).hex,
fg = hsl(210, 30, 85).hex, normal = c.blue.hex,
linebg = hsl(210, 15, 40).hex, insert = c.green.hex,
linefg = hsl(210, 30, 85).hex, visual = c.purple.hex,
black = hsl(210, 15, 5).hex, replace = c.red.hex,
normal = hsl(210, 50, 75).hex, command = c.yellow.hex,
insert = hsl(130, 50, 75).hex, b = { bg = c.base.da(70).hex, fg = c.base.hex },
visual = hsl(210, 30, 30).hex, c = { bg = c.base.de(50).da(50).hex, fg = c.base.de(50).hex },
replace = hsl(10, 50, 75).hex, inactive = { bg = c.base.de(50).da(70).hex, fg = c.base.de(50).hex },
command = hsl(50, 50, 75).hex,
gray = hsl(210, 10, 60).hex,
} }
else else
local c = require('lupancolors.lupanlight').colors
colors = { colors = {
bg = hsl(210, 15, 20).hex, bg = c.base.li(80).hex,
fg = hsl(210, 30, 85).hex, normal = c.blue.hex,
linebg = hsl(210, 15, 80).hex, insert = c.green.hex,
linefg = hsl(210, 15, 20).hex, visual = c.purple.hex,
black = hsl(210, 15, 5).hex, replace = c.red.hex,
normal = hsl(210, 50, 75).hex, command = c.yellow.hex,
insert = hsl(130, 50, 75).hex, b = { bg = c.base.de(50).li(70).hex, fg = c.base.hex },
visual = hsl(210, 30, 30).hex, c = { bg = c.base.de(30).li(60).hex, fg = c.base.hex },
replace = hsl(10, 50, 75).hex, inactive = { bg = c.base.de(50).li(50).hex, fg = c.base.da(30).hex },
command = hsl(50, 50, 75).hex,
gray = hsl(210, 10, 60).hex,
} }
end end
return { return {
normal = { normal = {
a = { bg = colors.normal, fg = colors.bg }, a = { bg = colors.normal, fg = colors.bg },
b = { bg = colors.black, fg = colors.fg }, b = colors.b,
c = { bg = colors.linebg, fg = colors.linefg }, c = colors.c,
}, },
insert = { insert = {
a = { bg = colors.insert, fg = colors.bg }, a = { bg = colors.insert, fg = colors.bg },
b = { bg = colors.black, fg = colors.fg }, b = colors.b,
c = { bg = colors.linebg, fg = colors.linefg }, c = colors.c,
}, },
visual = { visual = {
a = { bg = colors.visual, fg = colors.fg }, a = { bg = colors.visual, fg = colors.bg },
b = { bg = colors.black, fg = colors.fg }, b = colors.b,
c = { bg = colors.linebg, fg = colors.linefg }, c = colors.c,
}, },
replace = { replace = {
a = { bg = colors.replace, fg = colors.bg }, a = { bg = colors.replace, fg = colors.bg },
b = { bg = colors.black, fg = colors.fg }, b = colors.b,
c = { bg = colors.linebg, fg = colors.linefg }, c = colors.c,
}, },
command = { command = {
a = { bg = colors.command, fg = colors.bg }, a = { bg = colors.command, fg = colors.bg },
b = { bg = colors.black, fg = colors.fg }, b = colors.b,
c = { bg = colors.linebg, fg = colors.linefg }, c = colors.c,
}, },
inactive = { inactive = {
a = { bg = colors.black, fg = colors.fg }, a = colors.inactive,
b = { bg = colors.black, fg = colors.bg }, b = colors.inactive,
c = { bg = colors.black, fg = colors.linefg }, c = colors.inactive,
}, },
} }

View File

@@ -1,57 +1,23 @@
local lush = require('lush') local lush = require('lush')
local hsl = lush.hsl -- We'll use hsl a lot so its nice to bind it separately local hsluv = lush.hsluv
---@diagnostic disable: undefined-global local M = {}
local theme = lush(function()
return { local default = {
-- See: h highlight-groups dark = {
Normal { bg = hsl(210, 15, 20), fg = hsl(210, 20, 75) }, base = hsluv(210, 40, 75),
CursorLine { bg = Normal.bg.li(10) }, },
Visual { bg = hsl(210, 30, 30) }, light = {
Comment { fg = hsl(210, 10, 60) }, base = hsluv(210, 70, 50),
CursorColumn { CursorLine }, }
LineNr { Comment, gui = "italic" },
CursorLineNr { fg = hsl(210, 50, 75), bg = CursorLine.bg, gui = "italic" },
Search { bg = hsl(50, 15, 60), fg = Normal.bg },
IncSearch { bg = hsl(130, 15, 60), fg = Normal.bg },
String { fg = hsl(210, 50, 75) },
PreProc { fg = hsl(300, 50, 75) },
Statement { fg = hsl(10, 50, 75) },
Type { fg = hsl(50, 50, 75) },
Identifier { fg = Normal.fg },
Function { fg = hsl(130, 50, 75) },
Operator { fg = hsl(270, 50, 75) },
Special { fg = hsl(325, 50, 75) },
Constant { fg = hsl(185, 50, 75) },
NonText { fg = Normal.bg.li(10) },
DiffAdd { Function },
DiffDelete { Special },
DiffChange { String },
SignColumn { Normal },
diffAdded { DiffAdd },
MoreMsg { Function, gui = "bold" },
Question { Function, gui = "bold" },
TelescopeSelection { CursorLine },
WhichKeyFloat { bg = hsl(210, 15, 30) },
DiagnosticError { fg = hsl(0, 80, 75) },
DiagnosticWarn { fg = hsl(25, 80, 75) },
DiagnosticInfo { fg = hsl(195, 80, 75) },
Pmenu { bg = Normal.bg.li(20) },
PmenuSel { bg = Normal.bg.li(30) },
Error { bg = hsl(0, 50, 50), fg = Normal.fg },
ErrorMsg { Error },
MatchParen { bg = hsl(195, 50, 35), fg = Normal.fg },
SpecialKey { fg = "red" },
Directory { Constant },
Title { Operator, gui = "bold" },
Conceal { bg = Normal.bg.li(40).de(30) },
SpellBad { fg = Special.fg, gui = "underline" },
SpellRare { fg = Type.fg, gui = "underline" },
SpellLocal { fg = DiagnosticInfo.fg, gui = "underline" },
SpellCap { fg = String.fg, gui = "underline" },
} }
end)
return theme function M.setup(options)
if options then
M.options = options
else
M.options = default
end
end
-- vi:nowrap:number return M

View File

@@ -0,0 +1,81 @@
local lush = require('lush')
local M = {}
local base = require('lupancolors.lupan').options.dark.base
M.colors = {
base = base,
bg = base.de(10).da(70),
fg = base.de(75),
red = base.hue(0),
orange = base.hue(30),
yellow = base.hue(60),
yellow_green = base.hue(90),
green = base.hue(120),
aquamarine = base.hue(150),
cyan = base.hue(180),
blue = base.hue(210),
lavender = base.hue(240),
purple = base.hue(270),
fuchsia = base.hue(300),
hot_pink = base.hue(330),
}
---@diagnostic disable: undefined-global
M.theme = lush(function()
local c = M.colors
return {
-- See: h highlight-groups
Normal { bg = c.bg, fg = c.fg },
CursorLine { bg = Normal.bg.li(5) },
Visual { bg = Normal.bg.sa(20).li(10) },
Comment { fg = c.base.de(75).da(20) },
CursorColumn { CursorLine },
LineNr { Comment, gui = "italic" },
CursorLineNr { fg = c.blue, bg = CursorLine.bg, gui = "italic" },
Search { bg = c.yellow, fg = Normal.bg },
IncSearch { bg = c.yellow_green, fg = Normal.bg },
String { fg = c.blue },
PreProc { fg = c.lavender },
Statement { fg = c.orange },
Type { fg = c.yellow },
Identifier { fg = Normal.fg },
Function { fg = c.green },
Operator { fg = c.aquamarine },
Special { fg = c.purple },
Constant { fg = c.cyan },
NonText { fg = Normal.bg.li(10) },
DiffAdd { fg = c.green },
DiffDelete { fg = c.red },
diffRemoved { fg = c.red },
DiffChange { fg = c.blue },
diffChanged { fg = c.blue },
SignColumn { Normal },
diffAdded { DiffAdd },
MoreMsg { fg = c.green, gui = "bold" },
Question { fg = c.green, gui = "bold" },
TelescopeSelection { CursorLine },
WhiKeyFloat { bg = Normal.bg.li(10) },
DiagnosticError { fg = c.red },
DiagnosticWarn { fg = c.orange },
DiagnosticInfo { fg = c.cyan },
Pmenu { bg = Normal.bg.li(10) },
PmenuSel { bg = Normal.bg.li(20).sa(20) },
Error { bg = c.red.da(25), fg = Normal.bg },
ErrorMsg { Error },
MatParen { fg = c.hot_pink, gui = "bold" },
SpecialKey { fg = c.red },
Directory { fg = c.cyan },
Title { fg = c.fuchsia, gui = "bold" },
Conceal { bg = Normal.bg.li(20).de(50) },
SpellBad { fg = c.red, gui = "underline" },
SpellRare { fg = Type.fg, gui = "underline" },
SpellLocal { fg = DiagnosticInfo.fg, gui = "underline" },
SpellCap { fg = String.fg, gui = "underline" },
}
end)
return M
-- vi:nowrap:number

View File

@@ -1,57 +1,81 @@
local lush = require('lush') local lush = require('lush')
local hsl = lush.hsl -- We'll use hsl a lot so its nice to bind it separately
local M = {}
local base = require('lupancolors.lupan').options.light.base
M.colors = {
base = base,
bg = base.de(60).li(90),
fg = base.de(75),
red = base.hue(0),
orange = base.hue(30),
yellow = base.hue(60),
yellow_green = base.hue(90),
green = base.hue(120),
aquamarine = base.hue(150),
cyan = base.hue(180),
blue = base.hue(210),
lavender = base.hue(240),
purple = base.hue(270),
fuchsia = base.hue(300),
hot_pink = base.hue(330),
}
---@diagnostic disable: undefined-global ---@diagnostic disable: undefined-global
local theme = lush(function() M.theme = lush(function()
local c = M.colors;
return { return {
-- See: h highlight-groups -- See: h highlight-groups
Normal { bg = hsl(210, 25, 97), fg = hsl(210, 30, 20) }, Normal { bg = c.bg, fg = c.fg },
CursorLine { bg = Normal.bg.da(4) }, CursorLine { bg = Normal.bg.da(4) },
Visual { bg = hsl(210, 30, 75) }, Visual { bg = c.base.de(55).li(70) },
Comment { fg = hsl(210, 10, 50) }, Comment { fg = c.base.de(60).li(20) },
CursorColumn { CursorLine }, CursorColumn { CursorLine },
LineNr { Comment, gui = "italic" }, LineNr { Comment, gui = "italic" },
CursorLineNr { fg = hsl(210, 50, 30), bg = CursorLine.bg, gui = "italic" }, CursorLineNr { fg = c.blue, bg = CursorLine.bg, gui = "italic" },
Search { bg = hsl(50, 15, 60), fg = Normal.fg }, Search { bg = c.yellow, fg = Normal.bg },
IncSearch { bg = hsl(130, 15, 60), fg = Normal.fg }, IncSearch { bg = c.yellow_green, fg = Normal.bg },
String { fg = hsl(210, 50, 35) }, String { fg = c.blue },
PreProc { fg = hsl(300, 50, 35) }, PreProc { fg = c.lavender },
Statement { fg = hsl(10, 50, 35) }, Statement { fg = c.orange },
Type { fg = hsl(50, 50, 35) }, Type { fg = c.yellow },
Identifier { fg = Normal.fg }, Identifier { fg = Normal.fg },
Function { fg = hsl(130, 50, 35) }, Function { fg = c.green },
Operator { fg = hsl(270, 50, 35) }, Operator { fg = c.aquamarine },
Special { fg = hsl(325, 50, 35) }, Special { fg = c.purple },
Constant { fg = hsl(195, 50, 35) }, Constant { fg = c.cyan },
NonText { fg = Normal.bg.li(10) }, NonText { fg = Normal.bg.li(10) },
DiffAdd { Function }, DiffAdd { fg = c.green },
DiffDelete { Special }, DiffDelete { fg = c.red },
DiffChange { String }, diffRemoved { fg = c.red },
DiffChange { fg = c.blue },
diffChanged { fg = c.blue },
SignColumn { Normal }, SignColumn { Normal },
diffAdded { DiffAdd }, diffAdded { DiffAdd },
MoreMsg { Function, gui = "bold" }, MoreMsg { fg = c.green, gui = "bold" },
Question { Function, gui = "bold" }, Question { fg = c.green, gui = "bold" },
TelescopeSelection { CursorLine }, TelescopeSelection { CursorLine },
WhichKeyFloat { bg = Normal.bg.da(5) }, WhichKeyFloat { bg = Normal.bg.da(5) },
DiagnosticError { fg = hsl(0, 80, 35) }, DiagnosticError { fg = c.red },
DiagnosticWarn { fg = hsl(25, 80, 35) }, DiagnosticWarn { fg = c.orange },
DiagnosticInfo { fg = hsl(195, 80, 35) }, DiagnosticInfo { fg = c.cyan },
Pmenu { bg = Normal.bg.da(5) }, Pmenu { bg = Normal.bg.da(5) },
PmenuSel { bg = Normal.bg.da(10) }, PmenuSel { bg = Normal.bg.da(15) },
Error { bg = hsl(0, 50, 65), fg = Normal.fg }, Error { bg = c.red.da(25), fg = Normal.bg },
ErrorMsg { Error }, ErrorMsg { Error },
MatchParen { bg = hsl(195, 50, 65), fg = Normal.fg }, MatchParen { fg = c.hot_pink, gui = "bold" },
SpecialKey { fg = "red" }, SpecialKey { fg = c.red },
Directory { Constant }, Directory { fg = c.cyan },
Title { Operator, gui = "bold" }, Title { fg = c.fuchsia, gui = "bold" },
Conceal { bg = Normal.bg.da(15).de(30) }, Conceal { bg = Normal.bg.da(15).de(30) },
SpellBad { fg = Special.fg, gui = "underline" }, SpellBad { fg = c.red, gui = "underline" },
SpellRare { fg = Type.fg, gui = "underline" }, SpellRare { fg = Type.fg, gui = "underline" },
SpellLocal { fg = Constant.fg, gui = "underline" }, SpellLocal { fg = DiagnosticInfo.fg, gui = "underline" },
SpellCap { fg = String.fg, gui = "underline" }, SpellCap { fg = String.fg, gui = "underline" },
} }
end) end)
return theme return M
-- vi:nowrap:number -- vi:nowrap:number