73 lines
2.4 KiB
Lua

local lush = require('lush')
local hsl = lush.hsl -- We'll use hsl a lot so its nice to bind it separately
---@diagnostic disable: undefined-global
local theme = lush(function()
local base = hsl(210, 40, 75)
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 {
-- See: h highlight-groups
Normal { bg = base.de(65).da(75), fg = base.de(25) },
CursorLine { bg = Normal.bg.li(10) },
Visual { bg = Normal.bg.sa(20).li(20) },
Comment { fg = base.de(75).da(20) },
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 = Normal.bg.li(15) },
DiagnosticError { fg = red },
DiagnosticWarn { fg = orange },
DiagnosticInfo { fg = cyan },
Pmenu { bg = Normal.bg.li(20) },
PmenuSel { bg = Normal.bg.li(25).sa(20) },
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
-- vi:nowrap:number