summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/lualine/themes/meltdown.lua41
-rw-r--r--lua/meltdown.lua50
-rw-r--r--lua/meltdown/highlights.lua205
3 files changed, 296 insertions, 0 deletions
diff --git a/lua/lualine/themes/meltdown.lua b/lua/lualine/themes/meltdown.lua
new file mode 100644
index 0000000..215e32b
--- /dev/null
+++ b/lua/lualine/themes/meltdown.lua
@@ -0,0 +1,41 @@
+local colors = require('meltdown').colors
+local vim = assert(vim)
+
+local n_flip = colors.blue
+local i_flip = colors.radioactive_green
+local v_flip = colors.gold_2
+local r_flip = colors.red
+local c_flip = colors.stormy_blue
+
+return {
+ normal = {
+ a = {bg = n_flip, fg = colors.midnight, gui = 'bold'},
+ b = {bg = colors.midnight, fg = n_flip},
+ c = {bg = colors.bg_1, fg = colors.gold_1}
+ },
+ insert = {
+ a = {bg = i_flip, fg = colors.black, gui = 'bold'},
+ b = {bg = colors.midnight, fg = i_flip},
+ c = {bg = colors.bg_1, fg = colors.gold_1}
+ },
+ visual = {
+ a = {bg = v_flip, fg = colors.midnight, gui = 'bold'},
+ b = {bg = colors.midnight, fg = v_flip},
+ c = {bg = colors.bg_1, fg = colors.gold_1}
+ },
+ replace = {
+ a = {bg = r_flip, fg = colors.midnight, gui = 'bold'},
+ b = {bg = colors.midnight, fg = r_flip},
+ c = {bg = colors.bg_1, fg = colors.gold_1}
+ },
+ command = {
+ a = {bg = c_flip, fg = colors.midnight, gui = 'bold'},
+ b = {bg = colors.midnight, fg = c_flip},
+ c = {bg = colors.bg_1, fg = colors.gold_1}
+ },
+ inactive = {
+ a = {bg = n_flip, fg = colors.midnight, gui = 'bold'},
+ b = {bg = colors.midnight, fg = n_flip},
+ c = {bg = colors.bg_1, fg = colors.gold_1}
+ }
+}
diff --git a/lua/meltdown.lua b/lua/meltdown.lua
new file mode 100644
index 0000000..403f9ca
--- /dev/null
+++ b/lua/meltdown.lua
@@ -0,0 +1,50 @@
+local vim = assert(vim)
+
+local meltdown = {}
+
+meltdown.colors = {
+ bg_0 = "#16161D",
+ bg_1 = "#181820",
+ bg_2 = "#1a1a22",
+ bg_3 = "#1f1f28",
+ bg_4 = "#2a2a37",
+ bg_5 = "#363646",
+ bg_6 = "#54546d",
+
+ near_white = '#e0e0e0',
+ normal_fg = '#d8e5b8',
+
+ blue = '#80a0ff',
+ dark_grey = '#404040',
+ midnight = '#003040',
+ gold_1 = "#ffa034",
+ gold_2 = '#ffb700',
+ gold_5 = "#ffbd2f",
+ gold_3 = "#ffb75f" ,
+ gold_4 = "#ffd780",
+ light_yellow = "#fce094",
+ salmon = '#ff7779',
+ salmon_2 = "#ff9074",
+ lighter_grey = '#9a9a9a',
+ red_2 = "#ff552f",
+ red = '#ff5d34',
+ all_red = '#ff0000',
+ half_red = '#790000',
+ pink = '#ffc0b9',
+ sage = '#9f9a84',
+ sage_2 = '#b0c4a3',
+ teal = '#76dbd8',
+ teal_2 = '#8cf8f7',
+ teal_3 = '#71fffa',
+ stormy_blue = '#8ba3bb',
+ dark_cloud = '#4b4b64',
+ magenta = '#ff74f4',
+ orange = '#ff8f34',
+ cobalt = '#00d0ff',
+ radioactive_green = '#26ff00',
+ black = '#000000',
+ olive = "#aba024",
+ purple = "#af80ff",
+}
+
+return meltdown
diff --git a/lua/meltdown/highlights.lua b/lua/meltdown/highlights.lua
new file mode 100644
index 0000000..a977007
--- /dev/null
+++ b/lua/meltdown/highlights.lua
@@ -0,0 +1,205 @@
+local vim = assert(vim)
+
+local M = {}
+
+local function highlights(colors)
+ local borders = colors.black
+
+ return{
+ -- General Vim UI
+ ["TabLineFill"] = {fg = colors.bg_6, bg = borders},
+ ["IncSearch"] = {fg = colors.bg_0, bg = colors.red},
+ ["CurSearch"] = {fg = colors.bg_0, bg = colors.salmon},
+ ["TabLineSel"] = { fg = colors.bg_4, bg = colors.salmon },
+ ["MatchParen"] = { bg = colors.blue, fg = colors.black },
+ ["VertSplit"] = { fg = colors.black, bg = borders},
+ ["WinSeparator"] = { fg = colors.black, bg = borders},
+ ["Normal"] = { fg = colors.normal_fg, bg = colors.bg_3 },
+ ["DarkGray"] = { fg = colors.dark_grey },
+ ["StatusLine"] = { fg = colors.red, bg = borders, bold = true },
+ ["Title"] = { fg = colors.orange, bg = colors.lighter_grey, bold = true },
+ ["Visual"] = { fg = colors.black, bg = colors.gold_2 },
+ ["CursorLineNr"] = { fg = colors.red, bg = colors.bg_4},
+ ["StatusLineNC"] = { fg = colors.lighter_grey, bg = colors.black, bold = true },
+ ["Folded"] = { fg = colors.black, bg = colors.sage },
+ ["TabLine"] = { fg = colors.near_white, bg = colors.bg_4},
+ ["Search"] = { bg = colors.bg_5, fg = colors.near_white },
+ ["SignColumn"] = { bg = colors.bg_1},
+ ["LineNrAbove"] = { fg = colors.bg_6, bg = colors.bg_1, italic = true },
+ ["LineNr"] = { fg = colors.bg_6, bg = colors.bg_1, bold = true },
+ ["LineNrBelow"] = { fg = colors.bg_6, bg = colors.bg_1, italic = true },
+ ["DocComment"] = { fg = colors.cobalt, italic = true },
+ ["@attribute"] = { fg = colors.magenta },
+ ["@comment.documentation.java"] = { fg = colors.cobalt, italic = true },
+ ["@constructor.lua"] = { fg = colors.blue },
+ ["@lsp.mod.classScope"] = { fg = colors.salmon },
+ ["@lsp.mod.functionScope"] = { fg = colors.sage},
+ ["@lsp.mod.readonly"] = { fg = colors.magenta },
+ ["@lsp.type.class"] = { fg = colors.orange },
+ ["@lsp.type.enum"] = { fg = colors.orange },
+ ["@lsp.type.enum.java"] = { fg = colors.gold_1},
+ ["@lsp.type.interface.java"] = { fg = colors.salmon_2 },
+ ["@lsp.type.namespace"] = { fg = colors.stormy_blue},
+ ["@lsp.type.operator"] = { fg = colors.blue },
+ ["@lsp.type.parameter"] = { fg = colors.red },
+ ["@lsp.type.property"] = { fg = colors.salmon },
+ ["@lsp.type.field"] = { fg = colors.salmon },
+ ["@lsp.type.property.java"] = { fg = colors.salmon },
+ ["@lsp.type.struct"] = { fg = colors.orange },
+ ["@lsp.type.typeParameter"] = { fg = colors.magenta },
+ ["@lsp.type.variable"] = { fg = colors.lighter_grey },
+ ["@lsp.typemod.method"] = { fg = colors.gold_2 },
+ ["@lsp.typemod.parameter.functionScope"] = { fg = colors.red },
+ ["@lsp.typemod.property.static.java"] = { fg = colors.sage_2},
+ ["@lsp.typemod.variable.functionScope.cpp"] = { fg = colors.lighter_grey },
+ ["@module"] = { fg = colors.stormy_blue},
+ ["@punctuation"] = { fg = colors.blue },
+ ["@type.builtin"] = { fg = colors.orange },
+ ["@type.qualifier"] = { fg = colors.blue },
+ ["@variable"] = { fg = colors.lighter_grey },
+ ["@variable.member"] = { fg = colors.salmon },
+ ["@variable.parameter"] = { fg = colors.red },
+ ["luaTable"] = { fg = colors.blue },
+ ["vimFunction"] = { fg = colors.gold_2 },
+ ["vimIsCommand"] = { fg = colors.red },
+ ["vimUserFunc"] = { fg = colors.gold_2 },
+
+ ["CmpItemAbbrDeprecated"] = { fg = colors.salmon, bg = colors.bg_5, strikethrough = true },
+ ["CmpItemAbbrMatch"] = { fg = colors.bg_5, bg = colors.salmon, bold = true },
+ ["PmenuSbar"] = { bg = colors.dark_cloud},
+ ["PmenuThumb"] = { bg = colors.blue},
+
+ ["Pmenu"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpDefault"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpBorder"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpCompletion"] = { fg = colors.red },
+ ["CmpCompletionBorder"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpCompletionExtension"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpCompletionSbar"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpCompletionSel"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpCompletionThumb"] = { fg = colors.radioactive_green },
+ ["CmpDocumentation"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpDocumentationBorder"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpGhostText"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpItemAbbr"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpItemAbbrDefault"] = { fg = colors.salmon },
+ ["CmpItemAbbrDeprecatedDefault"] = { fg = colors.dark_cloud },
+ ["CmpItemAbbrMatchDefault"] = { fg = colors.salmon },
+ ["PmenuSel"] = { fg = colors.midnight, bg = colors.salmon, bold = true },
+ ["CmpItemAbbrMatchFuzzy"] = { fg = colors.midnight, bg = colors.salmon, bold = true },
+ ["CmpItemAbbrMatchFuzzyDefault"] = { fg = colors.salmon },
+ ["CmpItemKind"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpItemKindArray"] = { fg = colors.magenta },
+ ["CmpItemKindBoolean"] = { fg = colors.magenta },
+ ["CmpItemKindClass"] = { fg = colors.orange },
+ ["CmpItemKindCodeium"] = { fg = colors.magenta },
+ ["CmpItemKindColor"] = { fg = colors.magenta },
+ ["CmpItemKindConstant"] = { fg = colors.magenta },
+ ["CmpItemKindConstructor"] = { fg = colors.magenta },
+ ["CmpItemKindCopilot"] = { fg = colors.magenta },
+ ["CmpItemKindDefault"] = { fg = colors.teal_2},
+ ["CmpItemKindEnum"] = { fg = colors.magenta },
+ ["CmpItemKindEnumMember"] = { fg = colors.magenta },
+ ["CmpItemKindEvent"] = { fg = colors.magenta },
+ ["CmpItemKindField"] = { fg = colors.magenta },
+ ["CmpItemKindFile"] = { fg = colors.magenta },
+ ["CmpItemKindFolder"] = { fg = colors.magenta },
+ ["CmpItemKindFunction"] = { fg = colors.gold_2 },
+ ["CmpItemKindInterface"] = { fg = colors.orange },
+ ["CmpItemKindKey"] = { fg = colors.magenta },
+ ["CmpItemKindKeyword"] = { fg = colors.magenta },
+ ["CmpItemKindMethod"] = { fg = colors.magenta },
+ ["CmpItemKindModule"] = { fg = colors.magenta },
+ ["CmpItemKindNamespace"] = { fg = colors.magenta },
+ ["CmpItemKindNull"] = { fg = colors.magenta },
+ ["CmpItemKindNumber"] = { fg = colors.magenta },
+ ["CmpItemKindObject"] = { fg = colors.magenta },
+ ["CmpItemKindOperator"] = { fg = colors.magenta },
+ ["CmpItemKindPackage"] = { fg = colors.magenta },
+ ["CmpItemKindProperty"] = { fg = colors.magenta },
+ ["CmpItemKindReference"] = { fg = colors.magenta },
+ ["CmpItemKindSnippet"] = { fg = colors.magenta },
+ ["CmpItemKindString"] = { fg = colors.magenta },
+ ["CmpItemKindStruct"] = { fg = colors.magenta },
+ ["CmpItemKindTabNine"] = { fg = colors.magenta },
+ ["CmpItemKindText"] = { fg = colors.magenta },
+ ["CmpItemKindTypeParameter"] = { fg = colors.lighter_grey },
+ ["CmpItemKindUnit"] = { fg = colors.magenta },
+ ["CmpItemKindValue"] = { fg = colors.magenta },
+ ["CmpItemKindVariable"] = { fg = colors.lighter_grey },
+ ["CmpItemMenu"] = { fg = colors.cobalt, italic = true },
+ ["CmpItemMenuDefault"] = { fg = colors.salmon },
+ ["CmpKind"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpReady"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpStatus"] = { fg = colors.salmon, bg = colors.midnight},
+ ["CmpZsh"] = { fg = colors.salmon, bg = colors.midnight},
+ ["DiagnosticInfo"] = { fg = colors.teal_3 },
+ ["DiagnosticError"] = { fg = colors.all_red},
+ ["ColorColumn"] = { },
+ ["vimAugroup"] = { fg = colors.magenta },
+ ["vimAutoCmdGroup"] = { fg = colors.magenta },
+ ["vimAutoCmdSfxList"] = { fg = colors.magenta },
+ ["vimAugroupEnd"] = { fg = colors.magenta },
+ ["vimUsrCmd"] = { fg = colors.blue },
+ ["vimSetEqual"] = { fg = colors.teal },
+ ["TabLineCloseSel"] = { fg = colors.half_red, bg = colors.red},
+ ["TabLineClose"] = { fg = colors.black, bg = colors.bg_1},
+ ["TabLineTail"] = { fg = colors.salmon, bg = colors.bg_1},
+ ["DiagnosticUnderlineError"] = { sp = colors.pink, undercurl = true },
+ ["DiagnosticUnderlineWarn"] = { sp = colors.light_yellow, undercurl = true },
+ ["DiagnosticUnderlineInfo"] = { sp = colors.teal_2, undercurl = true },
+ ["WarpNormal"] = { fg = colors.black, bg = colors.salmon, bold = true },
+ ["TelescopeNormal"] = { fg = colors.salmon, bg = colors.bg_1},
+ ["TelescopeSelection"] = { fg = colors.black, bg = colors.salmon },
+ ["TelescopeTitle"] = { fg = colors.salmon, bold = true },
+ ["TelescopeMatching"] = { reverse = true },
+ ["vimMapRhs"] = { fg = colors.magenta },
+ ["vimMapRhsExtend"] = { fg = colors.magenta },
+ ["Delimiter"] = { fg = colors.blue },
+ ["vimMapLhs"] = { fg = colors.orange },
+
+ ["LspReferenceText"] = { bg = colors.bg_5, sp = colors.sage },
+ ["LspReferenceRead"] = { bg = colors.bg_5, sp = colors.sage },
+ ["LspReferenceWrite"] = { bg = colors.bg_5, sp = colors.sage },
+
+ -- Common vim highlight groups
+ ["TagbarAccessProtected"] = { fg = colors.gold_2 },
+ ["javaDocTags"] = { fg = colors.salmon_2},
+ ["xmlTag"] = { fg = colors.blue },
+ ["StorageClass"] = { fg = colors.red },
+ ["Statement"] = { fg = colors.blue },
+ ["javaAnnotation"] = { fg = colors.magenta },
+ ["htmlEndTag"] = { fg = colors.purple },
+ ["Type"] = { fg = colors.orange },
+ ["FoldColumn"] = { fg = colors.radioactive_green },
+ ["Function"] = { fg = colors.gold_2 },
+ ["xmlAttrib"] = { fg = colors.olive},
+ ["Structure"] = { fg = colors.red },
+ ["htmlTagName"] = { fg = colors.blue },
+ ["PreProc"] = { fg = colors.magenta },
+ ["TagbarAccessPublic"] = { fg = colors.radioactive_green },
+ ["xmlEndTag"] = { fg = colors.red },
+ ["Identifier"] = { fg = colors.lighter_grey },
+ ["Number"] = { fg = colors.teal },
+ ["javaOperator"] = { fg = colors.blue },
+ ["String"] = { fg = colors.radioactive_green },
+ ["Comment"] = { fg = colors.dark_cloud, italic = true },
+ ["DiagnosticUnnecessary"] = { fg = colors.lighter_grey, strikethrough = true, sp = colors.bg_1 },
+ ["javaCommentTitle"] = { fg = colors.blue },
+ ["Constant"] = { fg = colors.magenta },
+ ["SpecialKey"] = { fg = colors.blue },
+ ["javaDocComment"] = { fg = colors.dark_cloud, italic = true },
+ ["TagbarAccessPrivate"] = { fg = colors.red },
+ ["htmlTag"] = { fg = colors.purple},
+ ["Operator"] = { fg = colors.blue },
+ ["Special"] = { fg = colors.gold_5},
+ }
+end
+
+function M.highlight(colors)
+ for hl, spec in pairs(highlights(colors)) do
+ vim.api.nvim_set_hl(0, hl, spec)
+ end
+end
+
+return M