mirror of
https://github.com/LunarVim/LunarVim.git
synced 2025-08-04 01:55:08 +02:00
push builtin spacegray theme
This commit is contained in:
parent
e0b1654377
commit
52020733da
1 changed files with 364 additions and 0 deletions
364
lua/lv-themes/spacegray.lua
Normal file
364
lua/lv-themes/spacegray.lua
Normal file
|
@ -0,0 +1,364 @@
|
|||
local lush = require('lush')
|
||||
local hsl = lush.hsl
|
||||
|
||||
local theme = lush(function()
|
||||
local c = {
|
||||
bg = hsl("#212121"),
|
||||
bg1 = hsl("#2a2a2a"),
|
||||
-- bg2 = hsl("#3a3a3a"),
|
||||
bg2 = hsl("#383d45"),
|
||||
|
||||
white = hsl("#c8c9d1"),
|
||||
|
||||
gray = hsl("#858585"),
|
||||
light_gray = hsl("#c8c9c1"),
|
||||
|
||||
error_red = hsl("#F44747"),
|
||||
warning_orange = hsl("#ff8800"),
|
||||
info_yellow = hsl("#ffcc66"),
|
||||
hint_blue = hsl("#4fc1ff"),
|
||||
|
||||
red = hsl("#f07178"),
|
||||
|
||||
blue = hsl("#5486c0"),
|
||||
gray_blue = hsl("#66899d"),
|
||||
|
||||
-- yellow = hsl("#ffcb6b"),
|
||||
yellow = hsl("#eeba5a"),
|
||||
|
||||
-- orange = hsl("#c98a75"),
|
||||
orange = hsl("#c6735a"),
|
||||
|
||||
green = hsl("#87b379"),
|
||||
light_green = hsl("#b2d77c"),
|
||||
|
||||
-- aqua = hsl("#46b1d0"),
|
||||
aqua = hsl("#65a7c5"),
|
||||
|
||||
purple = hsl("#bf83c1"),
|
||||
pale_purple = hsl("#7199ee"),
|
||||
|
||||
sign_add = hsl("#587C0C"),
|
||||
sign_change = hsl("#0C7D9D"),
|
||||
sign_delete = hsl("#94151B"),
|
||||
|
||||
test = hsl("#ff00ff")
|
||||
}
|
||||
return {
|
||||
Normal {bg = c.bg, fg = c.white, gui = "NONE"}, -- used for the columns set with 'colorcolumn'
|
||||
SignColumn {Normal},
|
||||
ModeMsg {Normal},
|
||||
MsgArea {Normal},
|
||||
MsgSeparator {Normal},
|
||||
SpellBad {bg = "NONE", fg = c.white, gui = "underline", sp = c.red},
|
||||
SpellCap {bg = "NONE", fg = c.white, gui = "underline", sp = c.yellow},
|
||||
SpellLocal {bg = "NONE", fg = c.white, gui = "underline", sp = c.green},
|
||||
SpellRare {bg = "NONE", fg = c.white, gui = "underline", sp = c.blue},
|
||||
NormalNC {Normal},
|
||||
Pmenu {bg = c.bg2, fg = c.white, gui = "NONE"},
|
||||
PmenuSel {bg = c.gray_blue, fg = c.bg1.da(5), gui = "NONE"},
|
||||
WildMenu {PmenuSel}, -- Non Defaults
|
||||
CursorLineNr {bg = "NONE", fg = c.light_gray, gui = "bold"},
|
||||
Comment {bg = "NONE", fg = c.gray, gui = "italic"}, -- any comment
|
||||
Folded {bg = c.bg1, fg = c.gray, gui = "NONE"},
|
||||
FoldColumn {Normal, fg = c.gray, gui = "NONE"},
|
||||
LineNr {bg = "NONE", fg = c.gray, gui = "NONE"},
|
||||
FloatBorder {bg = c.bg1, fg = c.gray, gui = "NONE"},
|
||||
Whitespace {bg = "NONE", fg = c.gray.da(35), gui = "NONE"},
|
||||
VertSplit {bg = "NONE", fg = c.bg2, gui = "NONE"},
|
||||
CursorLine {bg = c.bg1, fg = "NONE", gui = "NONE"},
|
||||
CursorColumn {CursorLine},
|
||||
ColorColumn {CursorLine},
|
||||
NormalFloat {bg = c.bg2.da(30), fg = "NONE", gui = "NONE"},
|
||||
Visual {bg = c.bg2.da(25), fg = "NONE", gui = "NONE"},
|
||||
VisualNOS {Visual}, WarningMsg {bg = "NONE", fg = c.red, gui = "NONE"},
|
||||
DiffText {bg = "NONE", fg = "NONE", gui = "NONE"},
|
||||
DiffAdd {bg = c.sign_add, fg = "NONE", gui = "NONE"},
|
||||
DiffChange {bg = c.sign_change, fg = "NONE", gui = "NONE"},
|
||||
DiffDelete {bg = c.sign_delete, fg = "NONE", gui = "NONE"},
|
||||
QuickFixLine {CursorLine},
|
||||
PmenuSbar {bg = c.bg2.li(15), fg = "NONE", gui = "NONE"},
|
||||
PmenuThumb {bg = c.white, fg = "NONE", gui = "NONE"},
|
||||
MatchParen {CursorLine, fg = "NONE", gui = "underline"},
|
||||
Cursor {fg = "NONE", bg = "NONE", gui = "reverse"},
|
||||
lCursor {Cursor},
|
||||
CursorIM {Cursor},
|
||||
TermCursor {Cursor}, TermCursorNC {Cursor},
|
||||
Conceal {bg = "NONE", fg = c.blue, gui = "NONE"},
|
||||
Directory {bg = "NONE", fg = c.blue, gui = "NONE"},
|
||||
SpecialKey {bg = "NONE", fg = c.blue, gui = "bold"},
|
||||
Title {bg = "NONE", fg = c.blue, gui = "bold"},
|
||||
ErrorMsg {bg = "NONE", fg = c.error_red, gui = "NONE"},
|
||||
Search {bg = c.gray_blue, fg = c.white},
|
||||
IncSearch {Search},
|
||||
Substitute {Search},
|
||||
MoreMsg {bg = "NONE", fg = c.aqua, gui = "NONE"},
|
||||
Question {MoreMsg},
|
||||
EndOfBuffer {bg = "NONE", fg = c.bg, gui = "NONE"},
|
||||
NonText {EndOfBuffer},
|
||||
|
||||
String {fg = c.green},
|
||||
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.yellow},
|
||||
Operator {fg = c.gray_blue},
|
||||
|
||||
Type {fg = c.purple},
|
||||
StorageClass {Type},
|
||||
Structure {Type},
|
||||
Typedef {Type},
|
||||
|
||||
Keyword {fg = c.blue},
|
||||
Statement {Keyword },
|
||||
Conditional {Keyword},
|
||||
Repeat {Keyword},
|
||||
Label {Keyword},
|
||||
Exception {Keyword},
|
||||
|
||||
Include {Keyword},
|
||||
PreProc {fg = c.aqua},
|
||||
Define {PreProc},
|
||||
Macro {PreProc},
|
||||
PreCondit {PreProc},
|
||||
|
||||
|
||||
Special {fg = c.orange},
|
||||
SpecialChar {Character},
|
||||
Tag {fg = c.pale_purple},
|
||||
Debug {fg = c.red},
|
||||
Delimiter {fg = c.white.da(25)},
|
||||
SpecialComment {fg = c.gray},
|
||||
Underlined {fg = "NONE", gui = "underline"},
|
||||
Bold {fg = "NONE", gui = "bold"},
|
||||
Italic {fg = "NONE", gui = "italic"},
|
||||
|
||||
-- Todo
|
||||
-- ("Ignore", below, may be invisible...)
|
||||
Ignore {fg = c.white},
|
||||
Todo {bg = "NONE", fg = c.red, gui = "bold"},
|
||||
Error {fg = c.error_red},
|
||||
|
||||
-- Treesitter
|
||||
TSComment {Comment}, -- comment blocks.
|
||||
luaTSConstructor {bg = "NONE", fg = c.white.da(25)}, -- override Lua curly braces
|
||||
TSAnnotation {bg = "NONE", fg = c.aqua}, -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
|
||||
TSAttribute {bg = "NONE", fg = c.aqua}, -- (unstable) TODO: docs
|
||||
TSConstructor {Type}, -- For constructor calls and definitions: `{ }` in Lua, and Java constructors.
|
||||
TSType {Type}, -- types.
|
||||
TSTypeBuiltin {Type}, -- builtin types.
|
||||
TSConditional {Conditional}, -- keywords related to conditionnals.
|
||||
TSException {Exception}, -- exception related keywords.
|
||||
TSInclude {Include}, -- includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua.
|
||||
TSKeyword {Keyword}, -- keywords that don't fall in previous categories.
|
||||
TSKeywordFunction {Keyword}, -- keywords used to define a fuction.
|
||||
TSLabel {Label}, -- labels: `label:` in C and `:label:` in Lua.
|
||||
TSNamespace {bg = "NONE", fg = c.blue}, -- For identifiers referring to modules and namespaces.
|
||||
TSRepeat {Repeat}, -- keywords related to loops.
|
||||
TSConstant {Constant}, -- constants
|
||||
TSConstBuiltin {Constant}, -- constant that are built in the language: `nil` in Lua.
|
||||
TSFloat {Float}, -- floats.
|
||||
TSNumber {Number}, -- all numbers
|
||||
TSBoolean {Boolean}, -- booleans.
|
||||
TSCharacter {Character}, -- characters.
|
||||
TSError {bg = "NONE", fg = "NONE"}, -- For syntax/parser errors.
|
||||
TSFunction {Function}, -- function (calls and definitions).
|
||||
TSFuncBuiltin {Function}, -- builtin functions: `table.insert` in Lua.
|
||||
TSMethod {Function}, -- method calls and definitions.
|
||||
TSConstMacro {Macro}, -- constants that are defined by macros: `NULL` in C.
|
||||
TSFuncMacro {Macro}, -- macro defined fuctions (calls and definitions): each `macro_rules` in Rust.
|
||||
TSVariableBuiltin {bg = "NONE", fg = c.aqua}, -- Variable names that are defined by the languages, like `this` or `self`.
|
||||
TSProperty {fg = c.aqua},
|
||||
TSOperator {Operator}, -- any operator: `+`, but also `->` and `*` in C.
|
||||
TSVariable {bg = "NONE", fg = c.white}, -- Any variable name that does not have another highlight.
|
||||
TSField {bg = "NONE", fg = c.white}, -- For fields.
|
||||
TSParameter {TSField}, -- parameters of a function.
|
||||
TSParameterReference {TSParameter}, -- references to parameters of a function.
|
||||
TSSymbol {Identifier}, -- identifiers referring to symbols or atoms.
|
||||
TSText {fg = c.white}, -- strings considered text in a markup language.
|
||||
TSPunctDelimiter {Delimiter}, -- delimiters ie: `.`
|
||||
TSTagDelimiter {Delimiter}, -- Tag delimiter like `<` `>` `/`
|
||||
TSPunctBracket {Delimiter}, -- brackets and parens.
|
||||
TSPunctSpecial {Delimiter}, -- special punctutation that does not fall in the catagories before.
|
||||
TSString {String}, -- strings.
|
||||
TSStringRegex {TSString}, -- regexes.
|
||||
TSStringEscape {Character}, -- escape characters within a string.
|
||||
TSWarning {Todo}, -- Variable names that are defined by the languages, like `this` or `self`.
|
||||
TSTag {Tag}, -- Tags like html tag names.
|
||||
TSEmphasis {gui = "italic"}, -- text to be represented with emphasis.
|
||||
TSUnderline {gui = "underline"}, -- text to be represented with an underline.
|
||||
TSStrike {gui = "strikethrough"}, -- strikethrough text.
|
||||
TSTitle {Title}, -- Text that is part of a title.
|
||||
TSLiteral {String}, -- Literal text.
|
||||
TSURI {fg = c.aqua}, -- Any URI like a link or email.
|
||||
-- TSNone { }, -- TODO: docs
|
||||
|
||||
-- These groups are for the native LSP client. Some other LSP clients may
|
||||
-- use these groups, or use their own. Consult your LSP client's
|
||||
-- documentation.
|
||||
|
||||
LspDiagnosticsDefaultError {bg = "NONE", fg = c.error_red, gui = "underline"},
|
||||
LspDiagnosticsDefaultWarning {bg = "NONE", fg = c.warning_orange, gui = "underline"},
|
||||
LspDiagnosticsDefaultInformation {bg = "NONE", fg = c.info_yellow, gui = "underline"},
|
||||
LspDiagnosticsDefaultHint {bg = "NONE", fg = c.hint_blue, gui = "underline"},
|
||||
|
||||
LspDiagnosticsVirtualTextError {LspDiagnosticsDefaultError},
|
||||
LspDiagnosticsVirtualTextWarning {LspDiagnosticsDefaultWarning},
|
||||
LspDiagnosticsVirtualTextInformation {LspDiagnosticsDefaultInformation},
|
||||
LspDiagnosticsVirtualTextHint {LspDiagnosticsDefaultHint},
|
||||
|
||||
LspDiagnosticsFloatingError {fg = c.error_red, gui = "NONE"},
|
||||
LspDiagnosticsFloatingWarning {fg = c.warning_orange, gui = "NONE"},
|
||||
LspDiagnosticsFloatingInformation {fg = c.info_yellow, gui = "NONE"},
|
||||
LspDiagnosticsFloatingHint {fg = c.hint_blue, gui = "NONE"},
|
||||
|
||||
LspDiagnosticsSignError {fg = c.error_red, gui = "NONE"},
|
||||
LspDiagnosticsSignWarning {fg = c.warning_orange, gui = "NONE"},
|
||||
LspDiagnosticsSignInformation {fg = c.info_yellow, gui = "NONE"},
|
||||
LspDiagnosticsSignHint {fg = c.hint_blue, gui = "NONE"}, -- Tree-Sitter
|
||||
|
||||
LspDiagnosticsError {LspDiagnosticsSignError},
|
||||
LspDiagnosticsWarning {LspDiagnosticsSignWarning},
|
||||
LspDiagnosticsInformation {LspDiagnosticsSignInformation},
|
||||
LspDiagnosticsHint {LspDiagnosticsSignHint},
|
||||
|
||||
LspReferenceText {bg = c.bg1, fg = "NONE", gui = "underline"},
|
||||
LspReferenceRead {bg = c.bg1, fg = "NONE", gui = "underline"},
|
||||
LspReferenceWrite {bg = c.bg1, fg = "NONE", gui = "underline"},
|
||||
|
||||
LspDiagnosticsUnderlineError {fg = "NONE", gui = "underline", sp = c.red},
|
||||
LspDiagnosticsUnderlineWarning {fg = "NONE", gui = "underline", sp = c.yellow},
|
||||
LspDiagnosticsUnderlineInformation {fg = "NONE", gui = "underline", sp = c.blue},
|
||||
LspDiagnosticsUnderlineHint {fg = "NONE", gui = "underline", sp = c.green},
|
||||
|
||||
-- gitsigns.nvim
|
||||
SignAdd {fg = c.sign_add},
|
||||
SignChange {fg = c.sign_change},
|
||||
SignDelete {fg = c.sign_delete}, -- Any URI like a link or email.
|
||||
GitSignsAdd {fg = c.sign_add},
|
||||
GitSignsChange { fg = c.sign_change},
|
||||
GitSignsDelete {fg = c.sign_delete},
|
||||
|
||||
-- telescope.nvim
|
||||
TelescopeSelection {bg = "NONE", fg = c.aqua},
|
||||
TelescopeMatching {bg = "NONE", fg = c.red, gui = "bold"},
|
||||
TelescopeBorder {bg = c.bg1, fg = c.gray}, -- nvim-tree.lua
|
||||
|
||||
-- Nvimtree
|
||||
NvimTreeFolderIcon {fg = c.blue},
|
||||
NvimTreeIndentMarker {fg = c.gray},
|
||||
NvimTreeNormal {fg = c.white.da(10), bg = c.bg1},
|
||||
NvimTreeFolderName {fg = c.blue},
|
||||
NvimTreeOpenedFolderName {fg = c.aqua.da(10), gui = "italic"},
|
||||
NvimTreeOpenedFile {NvimTreeOpenedFolderName},
|
||||
NvimTreeRootFolder {fg = c.blue.da(20)},
|
||||
NvimTreeExecFile {fg = c.green},
|
||||
NvimTreeImageFile {fg = c.purple},
|
||||
NvimTreeSpecialFile {fg = c.aqua},
|
||||
|
||||
NvimTreeGitStaged {fg = c.sign_add},
|
||||
NvimTreeGitNew {fg = c.sign_add},
|
||||
NvimTreeGitDirty {fg = c.sign_add},
|
||||
NvimTreeGitRenamed {fg = c.sign_change},
|
||||
NvimTreeGitMerge {fg = c.sign_change},
|
||||
NvimTreeGitDelete {fg = c.sign_delete},
|
||||
NvimTreeVertSplit {fg = c.bg1, bg = c.bg1},
|
||||
|
||||
-- BarBar
|
||||
TabLine {bg = c.bg1, fg = c.white, gui = "NONE"},
|
||||
TabLineFill {bg = c.bg1, fg = c.white, gui = "NONE"},
|
||||
TabLineSel {bg = c.blue, fg = c.bg1, gui = "NONE"},
|
||||
|
||||
BufferCurrent {fg = c.fg, bg = c.bg},
|
||||
BufferCurrentIndex {fg = c.aqua, bg = c.bg},
|
||||
BufferCurrentMod {fg = c.info_yellow, bg = c.bg},
|
||||
BufferCurrentSign {fg = c.aqua, bg = c.bg},
|
||||
BufferCurrentTarget {fg = c.red, bg = c.bg, gui = "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.info_yellow, bg = c.bg},
|
||||
BufferVisibleTarget {fg = c.red, bg = c.bg, gui = "bold"},
|
||||
|
||||
BufferInactive {fg = c.gray, bg = c.bg1},
|
||||
BufferInactiveIndex {fg = c.gray, bg = c.bg1},
|
||||
BufferInactiveMod {fg = c.info_yellow, bg = c.bg1},
|
||||
BufferInactiveSign {fg = c.gray, bg = c.bg1},
|
||||
BufferInactiveTarget {fg = c.red, bg = c.bg1},
|
||||
|
||||
-- some fix for html related stuff
|
||||
htmlH1 {Title}, -- markdown stuff
|
||||
mkdLink {fg = c.aqua, gui = "underline"},
|
||||
mkdLineBreak {bg = "NONE", fg = "NONE", gui = "NONE"},
|
||||
mkdHeading {fg = c.white},
|
||||
mkdInlineURL {mkdLink},
|
||||
mkdUnderline {fg = c.gray},
|
||||
markdownUrl {mkdLink},
|
||||
markdownCode {fg = c.orange, bg = "NONE"},
|
||||
markdownLinkTextDelimiter {Delimiter},
|
||||
markdownLinkDelimiter {Delimiter},
|
||||
markdownIdDelimiter {Delimiter},
|
||||
markdownLinkText {fg = c.aqua},
|
||||
markdownItalic {fg = "NONE", gui = "italic"}, -- flutter-tools.nvim
|
||||
FlutterWidgetGuides {fg = c.gray.li(10)}, -- statusline
|
||||
|
||||
StatusLine {bg = c.bg1, fg = c.white},
|
||||
StatusLineNC {bg = c.bg1, fg = c.gray},
|
||||
StatusLineMode {bg = c.gray, fg = c.bg, gui = "bold"},
|
||||
StatusLineDeco {bg = c.bg2, fg = c.yellow},
|
||||
StatusLineLCol {bg = c.bg2, fg = c.white},
|
||||
StatusLineLColAlt {bg = c.bg1, fg = c.white},
|
||||
StatusLineFT {bg = c.bg2, fg = c.white},
|
||||
StatusLineFTAlt {bg = c.bg2, fg = c.white},
|
||||
StatusLineGit {bg = c.gray, fg = c.bg},
|
||||
StatusLineGitAlt {bg = c.gray, fg = c.bg},
|
||||
StatusLineLSP {bg = c.bg1, fg = c.gray.li(25)},
|
||||
StatusLineFileName {bg = c.bg1, fg = c.white, gui = "bold"},
|
||||
|
||||
|
||||
-- lsp-trouble.nvim
|
||||
LspTroubleIndent {fg = c.gray.li(10)}, -- tabline stuff
|
||||
|
||||
-- tabline diagnostic
|
||||
TabLineError {LspDiagnosticsSignError},
|
||||
TabLineWarning {LspDiagnosticsSignWarning},
|
||||
TabLineHint {LspDiagnosticsSignHint},
|
||||
TabLineInformation {LspDiagnosticsSignInformation}, -- which-key.nvim
|
||||
|
||||
WhichKey {fg = c.purple}, -- nvim-compe
|
||||
WhichKeySeperator {fg = c.green}, -- nvim-compe
|
||||
WhichKeyGroup {fg = c.blue}, -- nvim-compe
|
||||
WhichKeyDesc {fg = c.aqua}, -- nvim-compe
|
||||
WhichKeyFloat {bg = c.bg1}, -- nvim-compe
|
||||
|
||||
|
||||
CompeDocumentation {Pmenu, fg = "NONE"}, -- diffview
|
||||
|
||||
DiffviewNormal {NvimTreeNormal},
|
||||
DiffviewStatusAdded {SignAdd},
|
||||
DiffviewStatusModified {SignChange},
|
||||
DiffviewStatusRenamed {SignChange},
|
||||
DiffviewStatusDeleted {SignDelete},
|
||||
DiffviewFilePanelInsertion {SignAdd},
|
||||
DiffviewFilePanelDeletion {SignDelete},
|
||||
DiffviewVertSplit {fg = c.gray, bg = c.bg},
|
||||
|
||||
DashboardHeader {fg = c.blue},
|
||||
DashboardCenter {fg = c.purple},
|
||||
DashboardFooter {fg = c.aqua},
|
||||
|
||||
IndentBlanklineContextChar {fg = c.gray.da(20)},
|
||||
|
||||
CodiVirtualText {fg = c.hint_blue}
|
||||
}
|
||||
end)
|
||||
|
||||
-- return our parsed theme for extension or use else where.
|
||||
return theme
|
||||
|
||||
-- vi:nowrap
|
Loading…
Add table
Add a link
Reference in a new issue