local lush = require('lush') 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 M.theme = lush(function() local c = M.colors; return { -- See: h highlight-groups Normal { bg = c.base.de(60).li(90), fg = c.base.de(75) }, CursorLine { bg = Normal.bg.da(4) }, Visual { bg = c.base.de(55).li(70) }, Comment { fg = c.base.de(60).li(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 }, WhichKeyFloat { bg = Normal.bg.da(5) }, DiagnosticError { fg = c.red }, DiagnosticWarn { fg = c.orange }, DiagnosticInfo { fg = c.cyan }, Pmenu { bg = Normal.bg.da(5) }, PmenuSel { bg = Normal.bg.da(15) }, Error { bg = c.red.da(25), fg = Normal.bg }, ErrorMsg { Error }, MatchParen { fg = c.hot_pink, gui = "bold" }, SpecialKey { fg = c.red }, Directory { fg = c.cyan }, Title { fg = c.fuchsia, gui = "bold" }, Conceal { bg = Normal.bg.da(15).de(30) }, 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