Compare commits

..

3 Commits

Author SHA1 Message Date
f6fa507e39 lualine relative to base 2023-12-06 09:18:14 +01:00
ee8d34c0f7 add setup function 2023-12-06 07:15:18 +01:00
272d335276 all colors relative to base 2023-12-06 07:15:12 +01:00
5 changed files with 189 additions and 153 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(00).li(60).hex, fg = c.base.hex },
replace = hsl(10, 50, 75).hex, inactive = { bg = c.base.de(50).li(40).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,72 +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 hsl = lush.hsl
---@diagnostic disable: undefined-global local M = {}
local theme = lush(function()
local base = hsl(210, 40, 75) local default = {
local red = base.hue(0) dark = {
local orange = base.hue(30) base = hsl(210, 40, 75),
local yellow = base.hue(60) },
local yellow_green = base.hue(90) light = {
local green = base.hue(120) base = hsl(210, 50, 35),
local aquamarine = base.hue(150)
local cyan = base.hue(180)
local blue = base.hue(210)
local lavender = base.hue(240)
local purple = base.hue(270)
local fuchsia = base.hue(300)
local hot_pink = base.hue(330)
return {
-- See: h highlight-groups
Normal { bg = hsl(base.h, 15, 20), fg = hsl(base.h, 30, 75) },
CursorLine { bg = Normal.bg.li(10) },
Visual { bg = hsl(base.h, 30, 30) },
Comment { fg = hsl(base.h, 10, 60) },
CursorColumn { CursorLine },
LineNr { Comment, gui = "italic" },
CursorLineNr { fg = blue, bg = CursorLine.bg, gui = "italic" },
Search { bg = yellow, fg = Normal.bg },
IncSearch { bg = yellow_green, fg = Normal.bg },
String { fg = blue },
PreProc { fg = lavender },
Statement { fg = orange },
Type { fg = yellow },
Identifier { fg = Normal.fg },
Function { fg = green },
Operator { fg = aquamarine },
Special { fg = purple },
Constant { fg = cyan },
NonText { fg = Normal.bg.li(10) },
DiffAdd { fg = green },
DiffDelete { fg = red },
diffRemoved { fg = red },
DiffChange { fg = blue },
diffChanged { fg = blue },
SignColumn { Normal },
diffAdded { DiffAdd },
MoreMsg { fg = green, gui = "bold" },
Question { fg = green, gui = "bold" },
TelescopeSelection { CursorLine },
WhichKeyFloat { bg = hsl(base.h, 15, 30) },
DiagnosticError { fg = red },
DiagnosticWarn { fg = orange },
DiagnosticInfo { fg = cyan },
Pmenu { bg = blue.da(45).de(45) },
PmenuSel { bg = blue.da(45) },
Error { bg = red.da(25), fg = Normal.bg },
ErrorMsg { Error },
MatchParen { fg = hot_pink, gui = "bold" },
SpecialKey { fg = red },
Directory { fg = cyan },
Title { fg = fuchsia, gui = "bold" },
Conceal { bg = blue.da(40).de(50) },
SpellBad { fg = red, 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,80 @@
local lush = require('lush')
local hsl = lush.hsl
local M = {}
local base = require('lupancolors.lupan').options.dark.base
M.colors = {
base = base,
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.base.de(65).da(75), fg = c.base.de(25) },
CursorLine { bg = Normal.bg.li(10) },
Visual { bg = Normal.bg.sa(20).li(20) },
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(15) },
DiagnosticError { fg = c.red },
DiagnosticWarn { fg = c.orange },
DiagnosticInfo { fg = c.cyan },
Pmenu { bg = Normal.bg.li(20) },
PmenuSel { bg = Normal.bg.li(25).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 = c.blue.da(40).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,73 +1,80 @@
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 hsl = lush.hsl
local M = {}
local base = require('lupancolors.lupan').options.light.base
M.colors = {
base = base,
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 base = hsl(210, 50, 35) local c = M.colors;
local red = base.hue(0)
local orange = base.hue(30)
local yellow = base.hue(60)
local yellow_green = base.hue(90)
local green = base.hue(120)
local aquamarine = base.hue(150)
local cyan = base.hue(180)
local blue = base.hue(210)
local lavender = base.hue(240)
local purple = base.hue(270)
local fuchsia = base.hue(300)
local hot_pink = base.hue(330)
return { return {
-- See: h highlight-groups -- See: h highlight-groups
Normal { bg = hsl(base.h, 25, 97), fg = hsl(blue.h, 30, 20) }, Normal { bg = c.base.de(70).li(90), fg = c.base.de(75) },
CursorLine { bg = Normal.bg.da(4) }, CursorLine { bg = Normal.bg.da(4) },
Visual { bg = base.de(55).li(65) }, Visual { bg = c.base.de(55).li(65) },
Comment { fg = base.de(60).li(20) }, Comment { fg = c.base.de(60).li(20) },
CursorColumn { CursorLine }, CursorColumn { CursorLine },
LineNr { Comment, gui = "italic" }, LineNr { Comment, gui = "italic" },
CursorLineNr { fg = blue, bg = CursorLine.bg, gui = "italic" }, CursorLineNr { fg = c.blue, bg = CursorLine.bg, gui = "italic" },
Search { bg = yellow, fg = Normal.bg }, Search { bg = c.yellow, fg = Normal.bg },
IncSearch { bg = yellow_green, fg = Normal.bg }, IncSearch { bg = c.yellow_green, fg = Normal.bg },
String { fg = blue }, String { fg = c.blue },
PreProc { fg = lavender }, PreProc { fg = c.lavender },
Statement { fg = orange }, Statement { fg = c.orange },
Type { fg = yellow }, Type { fg = c.yellow },
Identifier { fg = Normal.fg }, Identifier { fg = Normal.fg },
Function { fg = green }, Function { fg = c.green },
Operator { fg = aquamarine }, Operator { fg = c.aquamarine },
Special { fg = purple }, Special { fg = c.purple },
Constant { fg = cyan }, Constant { fg = c.cyan },
NonText { fg = Normal.bg.li(10) }, NonText { fg = Normal.bg.li(10) },
DiffAdd { fg = green }, DiffAdd { fg = c.green },
DiffDelete { fg = red }, DiffDelete { fg = c.red },
diffRemoved { fg = red }, diffRemoved { fg = c.red },
DiffChange { fg = blue }, DiffChange { fg = c.blue },
diffChanged { fg = blue }, diffChanged { fg = c.blue },
SignColumn { Normal }, SignColumn { Normal },
diffAdded { DiffAdd }, diffAdded { DiffAdd },
MoreMsg { fg = green, gui = "bold" }, MoreMsg { fg = c.green, gui = "bold" },
Question { fg = green, 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 = red }, DiagnosticError { fg = c.red },
DiagnosticWarn { fg = orange }, DiagnosticWarn { fg = c.orange },
DiagnosticInfo { fg = cyan }, DiagnosticInfo { fg = c.cyan },
Pmenu { bg = Normal.bg.da(5) }, Pmenu { bg = Normal.bg.da(5) },
PmenuSel { bg = Normal.bg.da(15) }, PmenuSel { bg = Normal.bg.da(15) },
Error { bg = red.da(25), fg = Normal.bg }, Error { bg = c.red.da(25), fg = Normal.bg },
ErrorMsg { Error }, ErrorMsg { Error },
MatchParen { fg = hot_pink, gui = "bold" }, MatchParen { fg = c.hot_pink, gui = "bold" },
SpecialKey { fg = red }, SpecialKey { fg = c.red },
Directory { fg = cyan }, Directory { fg = c.cyan },
Title { fg = fuchsia, 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 = red, gui = "underline" }, SpellBad { fg = c.red, gui = "underline" },
SpellRare { fg = Type.fg, gui = "underline" }, SpellRare { fg = Type.fg, gui = "underline" },
SpellLocal { fg = DiagnosticInfo.fg, gui = "underline" }, SpellLocal { fg = DiagnosticInfo.fg, gui = "underline" },
SpellCap { fg = String.fg, gui = "underline" }, SpellCap { fg = String.fg, gui = "underline" },
} }
end) end)
return M
return theme
-- vi:nowrap:number -- vi:nowrap:number