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 = 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(blue.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 -- vi:nowrap:number