From f7e4be5291637caf41d9358a848e249a72b24db0 Mon Sep 17 00:00:00 2001
From: Gustaf Rydholm <gustaf.rydholm@gmail.com>
Date: Mon, 10 Jan 2022 21:21:00 +0100
Subject: Initial commit

---
 lua/no-clown-fiesta/Git.lua             | 10 ++++
 lua/no-clown-fiesta/LSP.lua             | 92 ++++++++++++++++++++++++++++++
 lua/no-clown-fiesta/Treesitter.lua      | 56 +++++++++++++++++++
 lua/no-clown-fiesta/Whichkey.lua        |  9 +++
 lua/no-clown-fiesta/config.lua          | 23 ++++++++
 lua/no-clown-fiesta/dark/Git.lua        | 10 ++++
 lua/no-clown-fiesta/dark/LSP.lua        | 92 ++++++++++++++++++++++++++++++
 lua/no-clown-fiesta/dark/Treesitter.lua | 56 +++++++++++++++++++
 lua/no-clown-fiesta/dark/Whichkey.lua   |  9 +++
 lua/no-clown-fiesta/dark/config.lua     | 23 ++++++++
 lua/no-clown-fiesta/dark/highlights.lua | 99 +++++++++++++++++++++++++++++++++
 lua/no-clown-fiesta/dark/init.lua       | 30 ++++++++++
 lua/no-clown-fiesta/dark/markdown.lua   | 27 +++++++++
 lua/no-clown-fiesta/dark/palette.lua    | 33 +++++++++++
 lua/no-clown-fiesta/dark/util.lua       | 25 +++++++++
 lua/no-clown-fiesta/highlights.lua      | 99 +++++++++++++++++++++++++++++++++
 lua/no-clown-fiesta/init.lua            | 30 ++++++++++
 lua/no-clown-fiesta/markdown.lua        | 27 +++++++++
 lua/no-clown-fiesta/palette.lua         | 33 +++++++++++
 lua/no-clown-fiesta/util.lua            | 25 +++++++++
 20 files changed, 808 insertions(+)
 create mode 100644 lua/no-clown-fiesta/Git.lua
 create mode 100644 lua/no-clown-fiesta/LSP.lua
 create mode 100644 lua/no-clown-fiesta/Treesitter.lua
 create mode 100644 lua/no-clown-fiesta/Whichkey.lua
 create mode 100644 lua/no-clown-fiesta/config.lua
 create mode 100644 lua/no-clown-fiesta/dark/Git.lua
 create mode 100644 lua/no-clown-fiesta/dark/LSP.lua
 create mode 100644 lua/no-clown-fiesta/dark/Treesitter.lua
 create mode 100644 lua/no-clown-fiesta/dark/Whichkey.lua
 create mode 100644 lua/no-clown-fiesta/dark/config.lua
 create mode 100644 lua/no-clown-fiesta/dark/highlights.lua
 create mode 100644 lua/no-clown-fiesta/dark/init.lua
 create mode 100644 lua/no-clown-fiesta/dark/markdown.lua
 create mode 100644 lua/no-clown-fiesta/dark/palette.lua
 create mode 100644 lua/no-clown-fiesta/dark/util.lua
 create mode 100644 lua/no-clown-fiesta/highlights.lua
 create mode 100644 lua/no-clown-fiesta/init.lua
 create mode 100644 lua/no-clown-fiesta/markdown.lua
 create mode 100644 lua/no-clown-fiesta/palette.lua
 create mode 100644 lua/no-clown-fiesta/util.lua

(limited to 'lua/no-clown-fiesta')

diff --git a/lua/no-clown-fiesta/Git.lua b/lua/no-clown-fiesta/Git.lua
new file mode 100644
index 0000000..b47ccf2
--- /dev/null
+++ b/lua/no-clown-fiesta/Git.lua
@@ -0,0 +1,10 @@
+local Git = {
+  SignAdd = { fg = C.sign_add },
+  SignChange = { fg = C.sign_change },
+  SignDelete = { fg = C.sign_delete },
+  GitSignsAdd = { fg = C.sign_add },
+  GitSignsChange = { fg = C.sign_change },
+  GitSignsDelete = { fg = C.sign_delete },
+}
+
+return Git
diff --git a/lua/no-clown-fiesta/LSP.lua b/lua/no-clown-fiesta/LSP.lua
new file mode 100644
index 0000000..85d0d7e
--- /dev/null
+++ b/lua/no-clown-fiesta/LSP.lua
@@ -0,0 +1,92 @@
+local LSP = {
+  LspDiagnosticsDefaultError = { fg = C.error_red },
+  LspDiagnosticsDefaultWarning = { fg = C.warning_orange },
+  LspDiagnosticsDefaultInformation = { fg = C.info_yellow },
+  LspDiagnosticsDefaultHint = { fg = C.hint_blue },
+  LspDiagnosticsVirtualTextError = { fg = C.error_red },
+  LspDiagnosticsVirtualTextWarning = { fg = C.warning_orange },
+  LspDiagnosticsVirtualTextInformation = { fg = C.info_yellow },
+  LspDiagnosticsVirtualTextHint = { fg = C.hint_blue },
+  LspDiagnosticsFloatingError = { fg = C.error_red },
+  LspDiagnosticsFloatingWarning = { fg = C.warning_orange },
+  LspDiagnosticsFloatingInformation = { fg = C.info_yellow },
+  LspDiagnosticsFloatingHint = { fg = C.hint_blue },
+  LspDiagnosticsSignError = { fg = C.error_red },
+  LspDiagnosticsSignWarning = { fg = C.warning_orange },
+  LspDiagnosticsSignInformation = { fg = C.info_yellow },
+  LspDiagnosticsSignHint = { fg = C.hint_blue },
+  LspDiagnosticsError = { fg = C.error_red },
+  LspDiagnosticsWarning = { fg = C.warning_orange },
+  LspDiagnosticsInformation = { fg = C.info_yellow },
+  LspDiagnosticsHint = { fg = C.hint_blue },
+  LspDiagnosticsUnderlineError = { fg = C.error_red },
+  LspDiagnosticsUnderlineWarning = { fg = C.warning_orange },
+  LspDiagnosticsUnderlineInformation = { fg = C.info_yellow },
+  LspDiagnosticsUnderlineHint = { fg = C.hint_blue },
+  QuickScopePrimary = { fg = C.cyan_test, style = "underline" },
+  QuickScopeSecondary = { fg = C.purple_test, style = "underline" },
+  TelescopeSelection = { fg = C.hint_blue },
+  TelescopeMatching = { fg = C.info_yellow, style = "bold" },
+  TelescopeBorder = { fg = C.gray, bg = C.bg },
+  NvimTreeFolderIcon = { fg = C.blue },
+  NvimTreeIndentMarker = { fg = C.gray },
+  NvimTreeNormal = { fg = C.light_gray, bg = C.alt_bg },
+  NvimTreeVertSplit = { fg = C.alt_bg, bg = C.alt_bg },
+  NvimTreeFolderName = { fg = C.blue },
+  NvimTreeOpenedFolderName = { fg = C.cyan, style = "italic" },
+  NvimTreeImageFile = { fg = C.purple },
+  NvimTreeSpecialFile = { fg = C.orange },
+  NvimTreeGitStaged = { fg = C.sign_add },
+  NvimTreeGitNew = { fg = C.sign_add },
+  NvimTreeGitDirty = { fg = C.sign_add },
+  NvimTreeGitDeleted = { fg = C.sign_delete },
+  NvimTreeGitMerge = { fg = C.sign_change },
+  NvimTreeGitRenamed = { fg = C.sign_change },
+  NvimTreeSymlink = { fg = C.cyan },
+  NvimTreeRootFolder = { fg = C.fg, style = "bold" },
+  NvimTreeExecFile = { fg = C.green },
+  BufferCurrent = { fg = C.fg, bg = C.bg },
+  BufferCurrentIndex = { fg = C.fg, bg = C.bg },
+  BufferCurrentMod = { fg = C.info_yellow, bg = C.bg },
+  BufferCurrentSign = { fg = C.hint_blue, bg = C.bg },
+  BufferCurrentTarget = { fg = C.red, bg = C.bg, style = "bold" },
+  BufferVisible = { fg = C.fg, bg = C.bg },
+  BufferVisibleIndex = { fg = C.fg, bg = C.bg },
+  BufferVisibleMod = { fg = C.info_yellow, bg = C.bg },
+  BufferVisibleSign = { fg = C.hint_blue, bg = C.bg },
+  BufferVisibleTarget = { fg = C.red, bg = C.bg, style = "bold" },
+  BufferInactive = { fg = C.gray, bg = C.alt_bg },
+  BufferInactiveIndex = { fg = C.gray, bg = C.alt_bg },
+  BufferInactiveMod = { fg = C.info_yellow, bg = C.alt_bg },
+  BufferInactiveSign = { fg = C.gray, bg = C.alt_bg },
+  BufferInactiveTarget = { fg = C.red, bg = C.alt_bg, style = "bold" },
+  StatusLine = { fg = C.alt_bg },
+  StatusLineNC = { fg = C.alt_bg },
+  StatusLineSeparator = { fg = C.alt_bg },
+  StatusLineTerm = { fg = C.alt_bg },
+  StatusLineTermNC = { fg = C.alt_bg },
+  CodiVirtualText = { fg = C.pale_purple },
+  IndentBlanklineContextChar = { fg = C.accent },
+  DashboardHeader = { fg = C.blue },
+  DashboardCenter = { fg = C.white },
+  DashboardFooter = { fg = C.gray },
+  CompeDocumentation = { bg = C.alt_bg },
+  DiffViewNormal = { fg = C.gray, bg = C.alt_bg },
+  DiffviewStatusAdded = { fg = C.sign_add },
+  DiffviewStatusModified = { fg = C.sign_change },
+  DiffviewStatusRenamed = { fg = C.sign_change },
+  DiffviewStatusDeleted = { fg = C.sign_delete },
+  DiffviewFilePanelInsertion = { fg = C.sign_add },
+  DiffviewFilePanelDeletion = { fg = C.sign_delete },
+  DiffviewVertSplit = { bg = C.bg },
+  diffAdded = { fg = C.sign_add },
+  diffRemoved = { fg = C.sign_delete },
+  diffFileId = { fg = C.blue, style = "bold,reverse" },
+  diffFile = { fg = C.alt_bg },
+  diffNewFile = { fg = C.green },
+  diffOldFile = { fg = C.red },
+  debugPc = { bg = C.cyan },
+  debugBreakpoint = { fg = C.red, style = "reverse" },
+}
+
+return LSP
diff --git a/lua/no-clown-fiesta/Treesitter.lua b/lua/no-clown-fiesta/Treesitter.lua
new file mode 100644
index 0000000..da9482d
--- /dev/null
+++ b/lua/no-clown-fiesta/Treesitter.lua
@@ -0,0 +1,56 @@
+local Treesitter = {
+  TSComment = { fg = C.gray },
+  TSAnnotation = { fg = C.white },
+  TSAttribute = { fg = C.white },
+  TSConstructor = { fg = C.white },
+  TSType = { fg = C.orange },
+  TSTypeBuiltin = { fg = C.white },
+  TSConditional = { fg = C.red },
+  TSException = { fg = C.red },
+  TSInclude = { fg = C.red },
+  TSKeyword = { fg = C.red },
+  TSKeywordFunction = { fg = C.red },
+  TSLabel = { fg = C.white },
+  TSNamespace = { fg = C.white },
+  TSRepeat = { fg = C.red },
+  TSConstant = { fg = C.orange },
+  TSConstBuiltin = { fg = C.orange },
+  TSFloat = { fg = C.blue },
+  TSNumber = { fg = C.blue },
+  TSBoolean = { fg = C.blue },
+  TSCharacter = { fg = C.light_green },
+  TSError = { fg = C.error_red },
+  TSFunction = { fg = C.white },
+  TSFuncBuiltin = { fg = C.white },
+  TSMethod = { fg = C.white },
+  TSConstMacro = { fg = C.white },
+  TSFuncMacro = { fg = C.white },
+  TSVariable = { fg = C.white },
+  TSVariableBuiltin = { fg = C.white },
+  TSProperty = { fg = C.white },
+  TSOperator = { fg = C.white },
+  TSField = { fg = C.white },
+  TSParameter = { fg = C.white },
+  TSParameterReference = { fg = C.white },
+  TSSymbol = { fg = C.gray },
+  TSText = { fg = C.fg },
+  TSPunctDelimiter = { fg = C.white },
+  TSTagDelimiter = { fg = C.white },
+  TSPunctBracket = { fg = C.white },
+  TSPunctSpecial = { fg = C.gray },
+  TSString = { fg = C.gray },
+  TSStringRegex = { fg = C.gray },
+  TSStringEscape = { fg = C.gray },
+  TSTag = { fg = C.pale_purple },
+  TSEmphasis = { style = "italic" },
+  TSUnderline = { style = "underline" },
+  TSTitle = { fg = C.gray },
+  TSLiteral = { fg = C.gray },
+  TSURI = { fg = C.cyan, style = "underline" },
+  TSKeywordOperator = { fg = C.gray },
+  TSStructure = { fg = C.purple_test },
+  TSStrong = { fg = C.gray },
+  TSQueryLinterError = { fg = C.warning_orange },
+}
+
+return Treesitter
diff --git a/lua/no-clown-fiesta/Whichkey.lua b/lua/no-clown-fiesta/Whichkey.lua
new file mode 100644
index 0000000..9b9fb60
--- /dev/null
+++ b/lua/no-clown-fiesta/Whichkey.lua
@@ -0,0 +1,9 @@
+local Whichkey = {
+  WhichKey = { fg = C.light_gray },
+  WhichKeySeperator = { fg = C.gray },
+  WhichKeyGroup = { fg = C.yellow },
+  WhichKeyDesc = { fg = C.light_gray },
+  WhichKeyFloat = { bg = C.bg },
+}
+
+return Whichkey
diff --git a/lua/no-clown-fiesta/config.lua b/lua/no-clown-fiesta/config.lua
new file mode 100644
index 0000000..ebac710
--- /dev/null
+++ b/lua/no-clown-fiesta/config.lua
@@ -0,0 +1,23 @@
+local config
+
+vim = vim or { g = {}, o = {} }
+
+local function opt(key, default)
+  if vim.g[key] == nil then
+    return default
+  end
+  if vim.g[key] == 0 then
+    return false
+  end
+  return vim.g[key]
+end
+
+config = {
+  transparent_background = opt("transparent_background", false),
+  italic_comments = opt("italic_keywords", true) and "italic" or "NONE",
+  italic_keywords = opt("italic_keywords", true) and "italic" or "NONE",
+  italic_functions = opt("italic_function", false) and "italic" or "NONE",
+  italic_variables = opt("italic_variables", true) and "italic" or "NONE",
+}
+
+return config
diff --git a/lua/no-clown-fiesta/dark/Git.lua b/lua/no-clown-fiesta/dark/Git.lua
new file mode 100644
index 0000000..b47ccf2
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/Git.lua
@@ -0,0 +1,10 @@
+local Git = {
+  SignAdd = { fg = C.sign_add },
+  SignChange = { fg = C.sign_change },
+  SignDelete = { fg = C.sign_delete },
+  GitSignsAdd = { fg = C.sign_add },
+  GitSignsChange = { fg = C.sign_change },
+  GitSignsDelete = { fg = C.sign_delete },
+}
+
+return Git
diff --git a/lua/no-clown-fiesta/dark/LSP.lua b/lua/no-clown-fiesta/dark/LSP.lua
new file mode 100644
index 0000000..85d0d7e
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/LSP.lua
@@ -0,0 +1,92 @@
+local LSP = {
+  LspDiagnosticsDefaultError = { fg = C.error_red },
+  LspDiagnosticsDefaultWarning = { fg = C.warning_orange },
+  LspDiagnosticsDefaultInformation = { fg = C.info_yellow },
+  LspDiagnosticsDefaultHint = { fg = C.hint_blue },
+  LspDiagnosticsVirtualTextError = { fg = C.error_red },
+  LspDiagnosticsVirtualTextWarning = { fg = C.warning_orange },
+  LspDiagnosticsVirtualTextInformation = { fg = C.info_yellow },
+  LspDiagnosticsVirtualTextHint = { fg = C.hint_blue },
+  LspDiagnosticsFloatingError = { fg = C.error_red },
+  LspDiagnosticsFloatingWarning = { fg = C.warning_orange },
+  LspDiagnosticsFloatingInformation = { fg = C.info_yellow },
+  LspDiagnosticsFloatingHint = { fg = C.hint_blue },
+  LspDiagnosticsSignError = { fg = C.error_red },
+  LspDiagnosticsSignWarning = { fg = C.warning_orange },
+  LspDiagnosticsSignInformation = { fg = C.info_yellow },
+  LspDiagnosticsSignHint = { fg = C.hint_blue },
+  LspDiagnosticsError = { fg = C.error_red },
+  LspDiagnosticsWarning = { fg = C.warning_orange },
+  LspDiagnosticsInformation = { fg = C.info_yellow },
+  LspDiagnosticsHint = { fg = C.hint_blue },
+  LspDiagnosticsUnderlineError = { fg = C.error_red },
+  LspDiagnosticsUnderlineWarning = { fg = C.warning_orange },
+  LspDiagnosticsUnderlineInformation = { fg = C.info_yellow },
+  LspDiagnosticsUnderlineHint = { fg = C.hint_blue },
+  QuickScopePrimary = { fg = C.cyan_test, style = "underline" },
+  QuickScopeSecondary = { fg = C.purple_test, style = "underline" },
+  TelescopeSelection = { fg = C.hint_blue },
+  TelescopeMatching = { fg = C.info_yellow, style = "bold" },
+  TelescopeBorder = { fg = C.gray, bg = C.bg },
+  NvimTreeFolderIcon = { fg = C.blue },
+  NvimTreeIndentMarker = { fg = C.gray },
+  NvimTreeNormal = { fg = C.light_gray, bg = C.alt_bg },
+  NvimTreeVertSplit = { fg = C.alt_bg, bg = C.alt_bg },
+  NvimTreeFolderName = { fg = C.blue },
+  NvimTreeOpenedFolderName = { fg = C.cyan, style = "italic" },
+  NvimTreeImageFile = { fg = C.purple },
+  NvimTreeSpecialFile = { fg = C.orange },
+  NvimTreeGitStaged = { fg = C.sign_add },
+  NvimTreeGitNew = { fg = C.sign_add },
+  NvimTreeGitDirty = { fg = C.sign_add },
+  NvimTreeGitDeleted = { fg = C.sign_delete },
+  NvimTreeGitMerge = { fg = C.sign_change },
+  NvimTreeGitRenamed = { fg = C.sign_change },
+  NvimTreeSymlink = { fg = C.cyan },
+  NvimTreeRootFolder = { fg = C.fg, style = "bold" },
+  NvimTreeExecFile = { fg = C.green },
+  BufferCurrent = { fg = C.fg, bg = C.bg },
+  BufferCurrentIndex = { fg = C.fg, bg = C.bg },
+  BufferCurrentMod = { fg = C.info_yellow, bg = C.bg },
+  BufferCurrentSign = { fg = C.hint_blue, bg = C.bg },
+  BufferCurrentTarget = { fg = C.red, bg = C.bg, style = "bold" },
+  BufferVisible = { fg = C.fg, bg = C.bg },
+  BufferVisibleIndex = { fg = C.fg, bg = C.bg },
+  BufferVisibleMod = { fg = C.info_yellow, bg = C.bg },
+  BufferVisibleSign = { fg = C.hint_blue, bg = C.bg },
+  BufferVisibleTarget = { fg = C.red, bg = C.bg, style = "bold" },
+  BufferInactive = { fg = C.gray, bg = C.alt_bg },
+  BufferInactiveIndex = { fg = C.gray, bg = C.alt_bg },
+  BufferInactiveMod = { fg = C.info_yellow, bg = C.alt_bg },
+  BufferInactiveSign = { fg = C.gray, bg = C.alt_bg },
+  BufferInactiveTarget = { fg = C.red, bg = C.alt_bg, style = "bold" },
+  StatusLine = { fg = C.alt_bg },
+  StatusLineNC = { fg = C.alt_bg },
+  StatusLineSeparator = { fg = C.alt_bg },
+  StatusLineTerm = { fg = C.alt_bg },
+  StatusLineTermNC = { fg = C.alt_bg },
+  CodiVirtualText = { fg = C.pale_purple },
+  IndentBlanklineContextChar = { fg = C.accent },
+  DashboardHeader = { fg = C.blue },
+  DashboardCenter = { fg = C.white },
+  DashboardFooter = { fg = C.gray },
+  CompeDocumentation = { bg = C.alt_bg },
+  DiffViewNormal = { fg = C.gray, bg = C.alt_bg },
+  DiffviewStatusAdded = { fg = C.sign_add },
+  DiffviewStatusModified = { fg = C.sign_change },
+  DiffviewStatusRenamed = { fg = C.sign_change },
+  DiffviewStatusDeleted = { fg = C.sign_delete },
+  DiffviewFilePanelInsertion = { fg = C.sign_add },
+  DiffviewFilePanelDeletion = { fg = C.sign_delete },
+  DiffviewVertSplit = { bg = C.bg },
+  diffAdded = { fg = C.sign_add },
+  diffRemoved = { fg = C.sign_delete },
+  diffFileId = { fg = C.blue, style = "bold,reverse" },
+  diffFile = { fg = C.alt_bg },
+  diffNewFile = { fg = C.green },
+  diffOldFile = { fg = C.red },
+  debugPc = { bg = C.cyan },
+  debugBreakpoint = { fg = C.red, style = "reverse" },
+}
+
+return LSP
diff --git a/lua/no-clown-fiesta/dark/Treesitter.lua b/lua/no-clown-fiesta/dark/Treesitter.lua
new file mode 100644
index 0000000..da9482d
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/Treesitter.lua
@@ -0,0 +1,56 @@
+local Treesitter = {
+  TSComment = { fg = C.gray },
+  TSAnnotation = { fg = C.white },
+  TSAttribute = { fg = C.white },
+  TSConstructor = { fg = C.white },
+  TSType = { fg = C.orange },
+  TSTypeBuiltin = { fg = C.white },
+  TSConditional = { fg = C.red },
+  TSException = { fg = C.red },
+  TSInclude = { fg = C.red },
+  TSKeyword = { fg = C.red },
+  TSKeywordFunction = { fg = C.red },
+  TSLabel = { fg = C.white },
+  TSNamespace = { fg = C.white },
+  TSRepeat = { fg = C.red },
+  TSConstant = { fg = C.orange },
+  TSConstBuiltin = { fg = C.orange },
+  TSFloat = { fg = C.blue },
+  TSNumber = { fg = C.blue },
+  TSBoolean = { fg = C.blue },
+  TSCharacter = { fg = C.light_green },
+  TSError = { fg = C.error_red },
+  TSFunction = { fg = C.white },
+  TSFuncBuiltin = { fg = C.white },
+  TSMethod = { fg = C.white },
+  TSConstMacro = { fg = C.white },
+  TSFuncMacro = { fg = C.white },
+  TSVariable = { fg = C.white },
+  TSVariableBuiltin = { fg = C.white },
+  TSProperty = { fg = C.white },
+  TSOperator = { fg = C.white },
+  TSField = { fg = C.white },
+  TSParameter = { fg = C.white },
+  TSParameterReference = { fg = C.white },
+  TSSymbol = { fg = C.gray },
+  TSText = { fg = C.fg },
+  TSPunctDelimiter = { fg = C.white },
+  TSTagDelimiter = { fg = C.white },
+  TSPunctBracket = { fg = C.white },
+  TSPunctSpecial = { fg = C.gray },
+  TSString = { fg = C.gray },
+  TSStringRegex = { fg = C.gray },
+  TSStringEscape = { fg = C.gray },
+  TSTag = { fg = C.pale_purple },
+  TSEmphasis = { style = "italic" },
+  TSUnderline = { style = "underline" },
+  TSTitle = { fg = C.gray },
+  TSLiteral = { fg = C.gray },
+  TSURI = { fg = C.cyan, style = "underline" },
+  TSKeywordOperator = { fg = C.gray },
+  TSStructure = { fg = C.purple_test },
+  TSStrong = { fg = C.gray },
+  TSQueryLinterError = { fg = C.warning_orange },
+}
+
+return Treesitter
diff --git a/lua/no-clown-fiesta/dark/Whichkey.lua b/lua/no-clown-fiesta/dark/Whichkey.lua
new file mode 100644
index 0000000..9b9fb60
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/Whichkey.lua
@@ -0,0 +1,9 @@
+local Whichkey = {
+  WhichKey = { fg = C.light_gray },
+  WhichKeySeperator = { fg = C.gray },
+  WhichKeyGroup = { fg = C.yellow },
+  WhichKeyDesc = { fg = C.light_gray },
+  WhichKeyFloat = { bg = C.bg },
+}
+
+return Whichkey
diff --git a/lua/no-clown-fiesta/dark/config.lua b/lua/no-clown-fiesta/dark/config.lua
new file mode 100644
index 0000000..ebac710
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/config.lua
@@ -0,0 +1,23 @@
+local config
+
+vim = vim or { g = {}, o = {} }
+
+local function opt(key, default)
+  if vim.g[key] == nil then
+    return default
+  end
+  if vim.g[key] == 0 then
+    return false
+  end
+  return vim.g[key]
+end
+
+config = {
+  transparent_background = opt("transparent_background", false),
+  italic_comments = opt("italic_keywords", true) and "italic" or "NONE",
+  italic_keywords = opt("italic_keywords", true) and "italic" or "NONE",
+  italic_functions = opt("italic_function", false) and "italic" or "NONE",
+  italic_variables = opt("italic_variables", true) and "italic" or "NONE",
+}
+
+return config
diff --git a/lua/no-clown-fiesta/dark/highlights.lua b/lua/no-clown-fiesta/dark/highlights.lua
new file mode 100644
index 0000000..45008b7
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/highlights.lua
@@ -0,0 +1,99 @@
+local highlights = {
+  Normal = { fg = C.fg, bg = Config.transparent_background and "NONE" or C.bg },
+  SignColumn = { bg = C.bg },
+  MsgArea = { fg = C.fg, bg = C.bg },
+  ModeMsg = { fg = C.fg, bg = C.bg },
+  MsgSeparator = { fg = C.fg, bg = C.bg },
+  SpellBad = { fg = C.error_red, style = "underline" },
+  SpellCap = { fg = C.yellow, style = "underline" },
+  SpellLocal = { fg = C.green, style = "underline" },
+  SpellRare = { fg = C.purple, style = "underline" },
+  NormalNC = { fg = C.fg, bg = C.bg },
+  Pmenu = { fg = C.white, bg = C.accent },
+  PmenuSel = { fg = C.blue, bg = C.alt_bg },
+  WildMenu = { fg = C.blue, bg = C.alt_bg },
+  CursorLineNr = { fg = C.light_gray, style = "bold" },
+  Comment = { fg = C.blue, style = "italic" },
+  Folded = { fg = C.light_gray, bg = C.alt_bg },
+  FoldColumn = { fg = C.light_gray, bg = C.alt_bg },
+  LineNr = { fg = C.gray },
+  FloatBoder = { fg = C.gray, bg = C.alt_bg },
+  Whitespace = { fg = C.gray },
+  VertSplit = { fg = C.bg, bg = C.accent },
+  CursorLine = { bg = C.alt_bg },
+  CursorColumn = { bg = C.alt_bg },
+  ColorColumn = { bg = C.alt_bg },
+  NormalFloat = { bg = C.alt_bg },
+  Visual = { bg = C.gray },
+  VisualNOS = { bg = C.alt_bg },
+  WarningMsg = { fg = C.error_red, bg = C.bg },
+  DiffAdd = { fg = C.alt_bg, bg = C.sign_add },
+  DiffChange = { fg = C.alt_bg, bg = C.sign_change, style = "underline" },
+  DiffDelete = { fg = C.alt_bg, bg = C.sign_delete },
+  QuickFixLine = { bg = C.accent },
+  PmenuSbar = { bg = C.alt_bg },
+  PmenuThumb = { bg = C.white },
+  MatchWord = { style = "underline" },
+  MatchParen = { fg = C.pale_purple, bg = C.bg, style = "underline" },
+  MatchWordCur = { style = "underline" },
+  MatchParenCur = { style = "underline" },
+  Cursor = { fg = C.cursor_fg, bg = C.cursor_bg },
+  lCursor = { fg = C.cursor_fg, bg = C.cursor_bg },
+  CursorIM = { fg = C.cursor_fg, bg = C.cursor_bg },
+  TermCursor = { fg = C.cursor_fg, bg = C.cursor_bg },
+  TermCursorNC = { fg = C.cursor_fg, bg = C.cursor_bg },
+  Conceal = { fg = C.accent },
+  Directory = { fg = C.blue },
+  SpecialKey = { fg = C.blue },
+  Title = { fg = C.blue },
+  ErrorMsg = { fg = C.error_red, bg = C.bg, style = "bold" },
+  Search = { fg = C.hint_blue, bg = C.alt_bg },
+  IncSearch = { fg = C.hint_blue, bg = C.alt_bg },
+  Substitute = { fg = C.alt_bg, bg = C.gray_blue },
+  MoreMsg = { fg = C.cyan },
+  Question = { fg = C.cyan },
+  EndOfBuffer = { fg = C.bg },
+  NonText = { fg = C.bg },
+  Variable = { fg = C.white },
+  String = { fg = C.blue },
+  Character = { fg = C.light_green },
+  Constant = { fg = C.orange },
+  Number = { fg = C.red },
+  Boolean = { fg = C.red },
+  Float = { fg = C.red },
+  Identifier = { fg = C.white },
+  Function = { fg = C.purple },
+  Operator = { fg = C.orange },
+  Type = { fg = C.white },
+  StorageClass = { fg = C.yellow },
+  Structure = { fg = C.orange },
+  Typedef = { fg = C.purple },
+  Keyword = { fg = C.orange },
+  Statement = { fg = C.orange },
+  Conditional = { fg = C.orange },
+  Repeat = { fg = C.orange },
+  Label = { fg = C.orange },
+  Exception = { fg = C.orange },
+  Include = { fg = C.orange },
+  PreProc = { fg = C.orange },
+  Define = { fg = C.orange },
+  Macro = { fg = C.orange },
+  PreCondit = { fg = C.orange },
+  Special = { fg = C.orange },
+  SpecialChar = { fg = C.orange },
+  Tag = { fg = C.pale_purple },
+  Debug = { fg = C.red },
+  Delimiter = { fg = C.gray },
+  SpecialComment = { fg = C.blue },
+  Underlined = { style = "underline" },
+  Bold = { style = "bold" },
+  Italic = { style = "italic" },
+  Ignore = { fg = C.cyan, bg = C.bg, style = "bold" },
+  Todo = { fg = C.red, bg = C.bg, style = "bold" },
+  Error = { fg = C.error_red, bg = C.bg, style = "bold" },
+  TabLine = { fg = C.white, bg = C.alt_bg },
+  TabLineSel = { fg = C.white, bg = C.alt_bg },
+  TabLineFill = { fg = C.white, bg = C.alt_bg },
+}
+
+return highlights
diff --git a/lua/no-clown-fiesta/dark/init.lua b/lua/no-clown-fiesta/dark/init.lua
new file mode 100644
index 0000000..dd24d95
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/init.lua
@@ -0,0 +1,30 @@
+vim.api.nvim_command "hi clear"
+if vim.fn.exists "syntax_on" then
+  vim.api.nvim_command "syntax reset"
+end
+vim.o.background = "dark"
+vim.o.termguicolors = true
+vim.g.colors_name = "dark"
+
+local util = require "dark.util"
+Config = require "dark.config"
+C = require "dark.palette"
+local highlights = require "dark.highlights"
+local Treesitter = require "dark.Treesitter"
+local markdown = require "dark.markdown"
+local Whichkey = require "dark.Whichkey"
+local Git = require "dark.Git"
+local LSP = require "dark.LSP"
+
+local skeletons = {
+  highlights,
+  Treesitter,
+  markdown,
+  Whichkey,
+  Git,
+  LSP,
+}
+
+for _, skeleton in ipairs(skeletons) do
+  util.initialise(skeleton)
+end
diff --git a/lua/no-clown-fiesta/dark/markdown.lua b/lua/no-clown-fiesta/dark/markdown.lua
new file mode 100644
index 0000000..2b83e05
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/markdown.lua
@@ -0,0 +1,27 @@
+local markdown = {
+  markdownBlockquote = { fg = C.accent },
+  markdownBold = { fg = C.yellow, style = "bold" },
+  markdownCode = { fg = C.green },
+  markdownCodeBlock = { fg = C.green },
+  markdownCodeDelimiter = { fg = C.green },
+  markdownH1 = { fg = C.blue },
+  markdownH2 = { fg = C.blue },
+  markdownH3 = { fg = C.blue },
+  markdownH4 = { fg = C.blue },
+  markdownH5 = { fg = C.blue },
+  markdownH6 = { fg = C.blue },
+  markdownHeadingDelimiter = { fg = C.red },
+  markdownHeadingRule = { fg = C.accent },
+  markdownId = { fg = C.purple },
+  markdownIdDeclaration = { fg = C.blue },
+  markdownIdDelimiter = { fg = C.light_gray },
+  markdownLinkDelimiter = { fg = C.light_gray },
+  markdownItalic = { style = "italic" },
+  markdownLinkText = { fg = C.blue },
+  markdownListMarker = { fg = C.red },
+  markdownOrderedListMarker = { fg = C.red },
+  markdownRule = { fg = C.accent },
+  markdownUrl = { fg = C.cyan, style = "underline" },
+}
+
+return markdown
diff --git a/lua/no-clown-fiesta/dark/palette.lua b/lua/no-clown-fiesta/dark/palette.lua
new file mode 100644
index 0000000..92ff012
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/palette.lua
@@ -0,0 +1,33 @@
+local colors = {
+  fg = "#F2F6F3",
+  bg = "#151515",
+  alt_bg = "#171717",
+  accent = "#202020",
+  white = "#F2F6F3",
+  gray = "#606060",
+  light_gray = "#D0D0D0",
+  blue = "#A5D6FF",
+  gray_blue = "#5F819D",
+  cyan = "#75B5AA",
+  red = "#CC6666",
+  green = "#90A959",
+  light_green = "#90A959",
+  yellow = "#F4BF75",
+  orange = "#FFA557",
+  purple = "#AA749F",
+  pale_purple = "#A5D6FF",
+  magenta = "#AA759F",
+  cursor_fg = "#D0D0D0",
+  cursor_bg = "#151515",
+  sign_add = "#A1B56C",
+  sign_change = "#A5D6FF",
+  sign_delete = "#AA4142",
+  error_red = "#AC4142",
+  warning_orange = "#F4BF75",
+  info_yellow = "#F4BF75",
+  hint_blue = "#A5D6FF",
+  purple_test = "#ff00ff",
+  cyan_test = "#00ffff",
+}
+
+return colors
diff --git a/lua/no-clown-fiesta/dark/util.lua b/lua/no-clown-fiesta/dark/util.lua
new file mode 100644
index 0000000..dbac18a
--- /dev/null
+++ b/lua/no-clown-fiesta/dark/util.lua
@@ -0,0 +1,25 @@
+local M = {}
+
+local function highlight(group, properties)
+  local bg = properties.bg == nil and "" or "guibg=" .. properties.bg
+  local fg = properties.fg == nil and "" or "guifg=" .. properties.fg
+  local style = properties.style == nil and "" or "gui=" .. properties.style
+
+  local cmd = table.concat({
+    "highlight",
+    group,
+    bg,
+    fg,
+    style,
+  }, " ")
+
+  vim.api.nvim_command(cmd)
+end
+
+function M.initialise(skeleton)
+  for group, properties in pairs(skeleton) do
+    highlight(group, properties)
+  end
+end
+
+return M
diff --git a/lua/no-clown-fiesta/highlights.lua b/lua/no-clown-fiesta/highlights.lua
new file mode 100644
index 0000000..45008b7
--- /dev/null
+++ b/lua/no-clown-fiesta/highlights.lua
@@ -0,0 +1,99 @@
+local highlights = {
+  Normal = { fg = C.fg, bg = Config.transparent_background and "NONE" or C.bg },
+  SignColumn = { bg = C.bg },
+  MsgArea = { fg = C.fg, bg = C.bg },
+  ModeMsg = { fg = C.fg, bg = C.bg },
+  MsgSeparator = { fg = C.fg, bg = C.bg },
+  SpellBad = { fg = C.error_red, style = "underline" },
+  SpellCap = { fg = C.yellow, style = "underline" },
+  SpellLocal = { fg = C.green, style = "underline" },
+  SpellRare = { fg = C.purple, style = "underline" },
+  NormalNC = { fg = C.fg, bg = C.bg },
+  Pmenu = { fg = C.white, bg = C.accent },
+  PmenuSel = { fg = C.blue, bg = C.alt_bg },
+  WildMenu = { fg = C.blue, bg = C.alt_bg },
+  CursorLineNr = { fg = C.light_gray, style = "bold" },
+  Comment = { fg = C.blue, style = "italic" },
+  Folded = { fg = C.light_gray, bg = C.alt_bg },
+  FoldColumn = { fg = C.light_gray, bg = C.alt_bg },
+  LineNr = { fg = C.gray },
+  FloatBoder = { fg = C.gray, bg = C.alt_bg },
+  Whitespace = { fg = C.gray },
+  VertSplit = { fg = C.bg, bg = C.accent },
+  CursorLine = { bg = C.alt_bg },
+  CursorColumn = { bg = C.alt_bg },
+  ColorColumn = { bg = C.alt_bg },
+  NormalFloat = { bg = C.alt_bg },
+  Visual = { bg = C.gray },
+  VisualNOS = { bg = C.alt_bg },
+  WarningMsg = { fg = C.error_red, bg = C.bg },
+  DiffAdd = { fg = C.alt_bg, bg = C.sign_add },
+  DiffChange = { fg = C.alt_bg, bg = C.sign_change, style = "underline" },
+  DiffDelete = { fg = C.alt_bg, bg = C.sign_delete },
+  QuickFixLine = { bg = C.accent },
+  PmenuSbar = { bg = C.alt_bg },
+  PmenuThumb = { bg = C.white },
+  MatchWord = { style = "underline" },
+  MatchParen = { fg = C.pale_purple, bg = C.bg, style = "underline" },
+  MatchWordCur = { style = "underline" },
+  MatchParenCur = { style = "underline" },
+  Cursor = { fg = C.cursor_fg, bg = C.cursor_bg },
+  lCursor = { fg = C.cursor_fg, bg = C.cursor_bg },
+  CursorIM = { fg = C.cursor_fg, bg = C.cursor_bg },
+  TermCursor = { fg = C.cursor_fg, bg = C.cursor_bg },
+  TermCursorNC = { fg = C.cursor_fg, bg = C.cursor_bg },
+  Conceal = { fg = C.accent },
+  Directory = { fg = C.blue },
+  SpecialKey = { fg = C.blue },
+  Title = { fg = C.blue },
+  ErrorMsg = { fg = C.error_red, bg = C.bg, style = "bold" },
+  Search = { fg = C.hint_blue, bg = C.alt_bg },
+  IncSearch = { fg = C.hint_blue, bg = C.alt_bg },
+  Substitute = { fg = C.alt_bg, bg = C.gray_blue },
+  MoreMsg = { fg = C.cyan },
+  Question = { fg = C.cyan },
+  EndOfBuffer = { fg = C.bg },
+  NonText = { fg = C.bg },
+  Variable = { fg = C.white },
+  String = { fg = C.blue },
+  Character = { fg = C.light_green },
+  Constant = { fg = C.orange },
+  Number = { fg = C.red },
+  Boolean = { fg = C.red },
+  Float = { fg = C.red },
+  Identifier = { fg = C.white },
+  Function = { fg = C.purple },
+  Operator = { fg = C.orange },
+  Type = { fg = C.white },
+  StorageClass = { fg = C.yellow },
+  Structure = { fg = C.orange },
+  Typedef = { fg = C.purple },
+  Keyword = { fg = C.orange },
+  Statement = { fg = C.orange },
+  Conditional = { fg = C.orange },
+  Repeat = { fg = C.orange },
+  Label = { fg = C.orange },
+  Exception = { fg = C.orange },
+  Include = { fg = C.orange },
+  PreProc = { fg = C.orange },
+  Define = { fg = C.orange },
+  Macro = { fg = C.orange },
+  PreCondit = { fg = C.orange },
+  Special = { fg = C.orange },
+  SpecialChar = { fg = C.orange },
+  Tag = { fg = C.pale_purple },
+  Debug = { fg = C.red },
+  Delimiter = { fg = C.gray },
+  SpecialComment = { fg = C.blue },
+  Underlined = { style = "underline" },
+  Bold = { style = "bold" },
+  Italic = { style = "italic" },
+  Ignore = { fg = C.cyan, bg = C.bg, style = "bold" },
+  Todo = { fg = C.red, bg = C.bg, style = "bold" },
+  Error = { fg = C.error_red, bg = C.bg, style = "bold" },
+  TabLine = { fg = C.white, bg = C.alt_bg },
+  TabLineSel = { fg = C.white, bg = C.alt_bg },
+  TabLineFill = { fg = C.white, bg = C.alt_bg },
+}
+
+return highlights
diff --git a/lua/no-clown-fiesta/init.lua b/lua/no-clown-fiesta/init.lua
new file mode 100644
index 0000000..dd24d95
--- /dev/null
+++ b/lua/no-clown-fiesta/init.lua
@@ -0,0 +1,30 @@
+vim.api.nvim_command "hi clear"
+if vim.fn.exists "syntax_on" then
+  vim.api.nvim_command "syntax reset"
+end
+vim.o.background = "dark"
+vim.o.termguicolors = true
+vim.g.colors_name = "dark"
+
+local util = require "dark.util"
+Config = require "dark.config"
+C = require "dark.palette"
+local highlights = require "dark.highlights"
+local Treesitter = require "dark.Treesitter"
+local markdown = require "dark.markdown"
+local Whichkey = require "dark.Whichkey"
+local Git = require "dark.Git"
+local LSP = require "dark.LSP"
+
+local skeletons = {
+  highlights,
+  Treesitter,
+  markdown,
+  Whichkey,
+  Git,
+  LSP,
+}
+
+for _, skeleton in ipairs(skeletons) do
+  util.initialise(skeleton)
+end
diff --git a/lua/no-clown-fiesta/markdown.lua b/lua/no-clown-fiesta/markdown.lua
new file mode 100644
index 0000000..2b83e05
--- /dev/null
+++ b/lua/no-clown-fiesta/markdown.lua
@@ -0,0 +1,27 @@
+local markdown = {
+  markdownBlockquote = { fg = C.accent },
+  markdownBold = { fg = C.yellow, style = "bold" },
+  markdownCode = { fg = C.green },
+  markdownCodeBlock = { fg = C.green },
+  markdownCodeDelimiter = { fg = C.green },
+  markdownH1 = { fg = C.blue },
+  markdownH2 = { fg = C.blue },
+  markdownH3 = { fg = C.blue },
+  markdownH4 = { fg = C.blue },
+  markdownH5 = { fg = C.blue },
+  markdownH6 = { fg = C.blue },
+  markdownHeadingDelimiter = { fg = C.red },
+  markdownHeadingRule = { fg = C.accent },
+  markdownId = { fg = C.purple },
+  markdownIdDeclaration = { fg = C.blue },
+  markdownIdDelimiter = { fg = C.light_gray },
+  markdownLinkDelimiter = { fg = C.light_gray },
+  markdownItalic = { style = "italic" },
+  markdownLinkText = { fg = C.blue },
+  markdownListMarker = { fg = C.red },
+  markdownOrderedListMarker = { fg = C.red },
+  markdownRule = { fg = C.accent },
+  markdownUrl = { fg = C.cyan, style = "underline" },
+}
+
+return markdown
diff --git a/lua/no-clown-fiesta/palette.lua b/lua/no-clown-fiesta/palette.lua
new file mode 100644
index 0000000..92ff012
--- /dev/null
+++ b/lua/no-clown-fiesta/palette.lua
@@ -0,0 +1,33 @@
+local colors = {
+  fg = "#F2F6F3",
+  bg = "#151515",
+  alt_bg = "#171717",
+  accent = "#202020",
+  white = "#F2F6F3",
+  gray = "#606060",
+  light_gray = "#D0D0D0",
+  blue = "#A5D6FF",
+  gray_blue = "#5F819D",
+  cyan = "#75B5AA",
+  red = "#CC6666",
+  green = "#90A959",
+  light_green = "#90A959",
+  yellow = "#F4BF75",
+  orange = "#FFA557",
+  purple = "#AA749F",
+  pale_purple = "#A5D6FF",
+  magenta = "#AA759F",
+  cursor_fg = "#D0D0D0",
+  cursor_bg = "#151515",
+  sign_add = "#A1B56C",
+  sign_change = "#A5D6FF",
+  sign_delete = "#AA4142",
+  error_red = "#AC4142",
+  warning_orange = "#F4BF75",
+  info_yellow = "#F4BF75",
+  hint_blue = "#A5D6FF",
+  purple_test = "#ff00ff",
+  cyan_test = "#00ffff",
+}
+
+return colors
diff --git a/lua/no-clown-fiesta/util.lua b/lua/no-clown-fiesta/util.lua
new file mode 100644
index 0000000..dbac18a
--- /dev/null
+++ b/lua/no-clown-fiesta/util.lua
@@ -0,0 +1,25 @@
+local M = {}
+
+local function highlight(group, properties)
+  local bg = properties.bg == nil and "" or "guibg=" .. properties.bg
+  local fg = properties.fg == nil and "" or "guifg=" .. properties.fg
+  local style = properties.style == nil and "" or "gui=" .. properties.style
+
+  local cmd = table.concat({
+    "highlight",
+    group,
+    bg,
+    fg,
+    style,
+  }, " ")
+
+  vim.api.nvim_command(cmd)
+end
+
+function M.initialise(skeleton)
+  for group, properties in pairs(skeleton) do
+    highlight(group, properties)
+  end
+end
+
+return M
-- 
cgit v1.2.3-70-g09d2