71 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 red = hsl(0, 50, 75)
local orange = hsl(30, 50, 75)
local yellow = hsl(60, 50, 75)
local yellow_green = hsl(90, 50, 75)
local green = hsl(120, 50, 75)
local aquamarine = hsl(150, 50, 75)
local cyan = hsl(180, 50, 75)
local blue = hsl(210, 50, 75)
local lavender = hsl(240, 50, 75)
local purple = hsl(270, 50, 75)
local fuchsia = hsl(300, 50, 75)
local hot_pink = hsl(330, 50, 75)
return {
-- See: h highlight-groups
Normal { bg = hsl(blue.h, 15, 20), fg = hsl(blue.h, 20, 75) },
CursorLine { bg = Normal.bg.li(10) },
Visual { bg = hsl(blue.h, 30, 30) },
Comment { fg = hsl(blue.h, 10, 60) },
CursorColumn { CursorLine },
LineNr { Comment, gui = "italic" },
CursorLineNr { fg = blue, bg = CursorLine.bg, gui = "italic" },
Search { bg = hsl(yellow.h, 15, 60), fg = Normal.bg },
IncSearch { bg = hsl(green.h, 15, 60), fg = Normal.bg },
String { fg = blue },
PreProc { fg = fuchsia },
Statement { fg = orange },
Type { fg = yellow },
Identifier { fg = Normal.fg },
Function { fg = green },
Operator { fg = purple },
Special { fg = hot_pink },
Constant { fg = cyan },
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(blue.h, 15, 30) },
DiagnosticError { fg = red },
DiagnosticWarn { fg = orange },
DiagnosticInfo { fg = cyan },
Pmenu { bg = Normal.bg.li(20) },
PmenuSel { bg = Normal.bg.li(30) },
Error { bg = hsl(red.h, 50, 50), fg = Normal.fg },
ErrorMsg { Error },
MatchParen { bg = hsl(aquamarine.h, 50, 75), fg = Normal.bg },
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
-- vi:nowrap:number