" Quantum - A 24-bit Material color scheme for Vim " Author: Brandon Siders " License: MIT highlight clear if exists('syntax_on') syntax reset endif set background=dark let g:colors_name = 'quantum' let g:quantum_italics = get(g:, 'quantum_italics', 0) let g:quantum_black = get(g:, 'quantum_black', 0) " Color Palette let s:gray1 = g:quantum_black ? '#212121' : '#263238' let s:gray2 = g:quantum_black ? '#292929' : '#2c3a41' let s:gray3 = g:quantum_black ? '#474646' : '#425762' let s:gray4 = g:quantum_black ? '#6a6c6c' : '#658494' let s:gray5 = g:quantum_black ? '#b7bdc0' : '#aebbc5' let s:red = '#dd7186' let s:green = '#87bb7c' let s:yellow = '#d5b875' let s:blue = '#70ace5' let s:purple = '#a48add' let s:cyan = '#69c5ce' let s:orange = '#d7956e' let s:indigo = '#7681de' function! s:HL(group, fg, bg, attr) let l:attr = a:attr if !g:quantum_italics && l:attr ==# 'italic' let l:attr = 'none' endif if !empty(a:fg) exec 'hi ' . a:group . ' guifg=' . a:fg endif if !empty(a:bg) exec 'hi ' . a:group . ' guibg=' . a:bg endif if !empty(a:attr) exec 'hi ' . a:group . ' gui=' . l:attr . ' cterm=' . l:attr endif endfun " Vim Editor call s:HL('ColorColumn', '', s:gray3, '') call s:HL('Cursor', s:gray2, s:gray5, '') call s:HL('CursorColumn', '', s:gray2, '') call s:HL('CursorLine', '', s:gray2, 'none') call s:HL('CursorLineNr', s:cyan, s:gray2, 'none') call s:HL('Directory', s:blue, '', '') call s:HL('DiffAdd', s:green, s:gray2, 'none') call s:HL('DiffChange', s:yellow, s:gray2, 'none') call s:HL('DiffDelete', s:red, s:gray2, 'none') call s:HL('DiffText', s:blue, s:gray2, 'none') call s:HL('ErrorMsg', s:red, s:gray1, 'bold') call s:HL('FoldColumn', s:gray4, s:gray1, '') call s:HL('Folded', s:gray3, s:gray1, '') call s:HL('IncSearch', s:yellow, '', '') call s:HL('LineNr', s:gray3, '', '') call s:HL('MatchParen', s:gray4, s:cyan, 'bold') call s:HL('ModeMsg', s:green, '', '') call s:HL('MoreMsg', s:green, '', '') call s:HL('NonText', s:gray4, '', 'none') call s:HL('Normal', s:gray5, s:gray1, 'none') call s:HL('Pmenu', s:gray5, s:gray3, '') call s:HL('PmenuSbar', '', s:gray2, '') call s:HL('PmenuSel', s:gray2, s:cyan, '') call s:HL('PmenuThumb', '', s:gray4, '') call s:HL('Question', s:blue, '', 'none') call s:HL('Search', s:gray1, s:yellow, '') call s:HL('SignColumn', s:gray5, s:gray1, '') call s:HL('SpecialKey', s:gray4, '', '') call s:HL('SpellCap', s:blue, s:gray2, 'undercurl') call s:HL('SpellBad', s:red, s:gray2, 'undercurl') call s:HL('StatusLine', s:gray5, s:gray3, 'none') call s:HL('StatusLineNC', s:gray2, s:gray4, '') call s:HL('TabLine', s:gray4, s:gray2, 'none') call s:HL('TabLineFill', s:gray4, s:gray2, 'none') call s:HL('TabLineSel', s:yellow, s:gray3, 'none') call s:HL('Title', s:green, '', 'none') call s:HL('VertSplit', s:gray4, s:gray1, 'none') call s:HL('Visual', s:gray5, s:gray3, '') call s:HL('WarningMsg', s:red, '', '') call s:HL('WildMenu', s:gray2, s:cyan, '') " Standard Syntax call s:HL('Comment', s:gray4, '', 'italic') call s:HL('Constant', s:orange, '', '') call s:HL('String', s:green, '', '') call s:HL('Character', s:green, '', '') call s:HL('Identifier', s:red, '', 'none') call s:HL('Function', s:blue, '', '') call s:HL('Statement', s:purple, '', 'none') call s:HL('Operator', s:cyan, '', '') call s:HL('PreProc', s:cyan, '', '') call s:HL('Include', s:blue, '', '') call s:HL('Define', s:purple, '', 'none') call s:HL('Macro', s:purple, '', '') call s:HL('Type', s:yellow, '', 'none') call s:HL('Structure', s:cyan, '', '') call s:HL('Special', s:indigo, '', '') call s:HL('Underlined', s:blue, '', 'none') call s:HL('Error', s:red, s:gray1, 'bold') call s:HL('Todo', s:orange, s:gray1, 'bold') " CSS call s:HL('cssAttrComma', s:purple, '', '') call s:HL('cssAttributeSelector', s:green, '', '') call s:HL('cssBraces', s:gray5, '', '') call s:HL('cssClassName', s:yellow, '', '') call s:HL('cssClassNameDot', s:yellow, '', '') call s:HL('cssFontDescriptor', s:purple, '', '') call s:HL('cssFunctionName', s:blue, '', '') call s:HL('cssIdentifier', s:blue, '', '') call s:HL('cssMediaType', s:orange, '', '') call s:HL('cssProp', s:gray5, '', '') call s:HL('cssSelectorOp', s:indigo, '', '') call s:HL('cssSelectorOp2', s:indigo, '', '') " Git Commit call s:HL('gitcommitBranch', s:blue, '', '') call s:HL('gitcommitUnmerged', s:green, '', '') call s:HL('gitcommitUntrackedFile', s:cyan, '', '') call s:HL('gitcommitSelectedFile', s:green, '', '') call s:HL('gitcommitDiscardedFile', s:red, '', '') call s:HL('gitcommitUnmergedFile', s:yellow, '', '') call s:HL('gitcommitSelectedType', s:green, '', '') call s:HL('gitcommitDiscardedType', s:red, '', '') hi link gitcommitNoBranch gitcommitBranch hi link gitcommitUntracked gitcommitComment hi link gitcommitDiscarded gitcommitComment hi link gitcommitSelected gitcommitComment hi link gitcommitDiscardedArrow gitcommitDiscardedFile hi link gitcommitSelectedArrow gitcommitSelectedFile hi link gitcommitUnmergedArrow gitcommitUnmergedFile " HTML call s:HL('htmlEndTag', s:blue, '', '') call s:HL('htmlLink', s:red, '', '') call s:HL('htmlTag', s:blue, '', '') call s:HL('htmlTitle', s:gray5, '', '') call s:HL('htmlSpecialTagName', s:purple, '', '') " Javascript call s:HL('javaScriptBraces', s:gray5, '', '') call s:HL('javaScriptNull', s:orange, '', '') call s:HL('javaScriptIdentifier', s:purple, '', '') call s:HL('javaScriptNumber', s:orange, '', '') call s:HL('javaScriptRequire', s:cyan, '', '') call s:HL('javaScriptReserved', s:purple, '', '') " pangloss/vim-javascript call s:HL('jsArrowFunction', s:purple, '', '') call s:HL('jsClassKeywords', s:purple, '', '') call s:HL('jsDocParam', s:green, '', '') call s:HL('jsDocTags', s:cyan, '', '') call s:HL('jsFuncCall', s:blue, '', '') call s:HL('jsFunction', s:purple, '', '') call s:HL('jsGlobalObjects', s:yellow, '', '') call s:HL('jsGlobalNodeObjects', s:yellow, '', '') call s:HL('jsNull', s:orange, '', '') call s:HL('jsStorageClass', s:purple, '', '') call s:HL('jsThis', s:red, '', '') call s:HL('jsUndefined', s:orange, '', '') " JSON call s:HL('jsonCommentError', s:red, '', 'reverse') call s:HL('jsonMissingCommaError', s:red, '', 'reverse') call s:HL('jsonNoQuotesError', s:red, '', 'reverse') call s:HL('jsonNumError', s:red, '', 'reverse') call s:HL('jsonStringSQError', s:red, '', 'reverse') call s:HL('jsonSemicolonError', s:red, '', 'reverse') " Less call s:HL('lessAmpersand', s:purple, '', '') call s:HL('lessClassChar', s:yellow, '', '') call s:HL('lessCssAttribute', s:gray5, '', '') call s:HL('lessFunction', s:blue, '', '') " Markdown call s:HL('markdownBold', s:orange, '', 'bold') call s:HL('markdownCode', s:cyan, '', '') call s:HL('markdownCodeBlock', s:cyan, '', '') call s:HL('markdownCodeDelimiter', s:cyan, '', '') call s:HL('markdownHeadingDelimiter', s:green, '', '') call s:HL('markdownHeadingRule', s:gray4, '', '') call s:HL('markdownId', s:purple, '', '') call s:HL('markdownItalic', s:blue, '', 'italic') call s:HL('markdownListMarker', s:indigo, '', '') call s:HL('markdownOrderedListMarker', s:indigo, '', '') call s:HL('markdownRule', s:gray4, '', '') call s:HL('markdownUrl', s:purple, '', '') call s:HL('markdownUrlTitleDelimiter', s:green, '', '') " Ruby call s:HL('rubyInterpolation', s:cyan, '', '') call s:HL('rubyInterpolationDelimiter', s:indigo, '', '') call s:HL('rubyRegexp', s:cyan, '', '') call s:HL('rubyRegexpDelimiter', s:indigo, '', '') call s:HL('rubyStringDelimiter', s:green, '', '') " Sass call s:HL('sassAmpersand', s:purple, '', '') call s:HL('sassClassChar', s:yellow, '', '') " Vim-Fugitive call s:HL('diffAdded', s:green, '', '') call s:HL('diffRemoved', s:red, '', '') " Vim-Gittgutter call s:HL('GitGutterAdd', s:green, '', '') call s:HL('GitGutterChange', s:yellow, '', '') call s:HL('GitGutterChangeDelete', s:orange, '', '') call s:HL('GitGutterDelete', s:red, '', '') " Vim-Signify hi link SignifySignAdd GitGutterAdd hi link SignifySignChange GitGutterChange hi link SignifySignDelete GitGutterDelete " XML call s:HL('xmlAttrib', s:yellow, '', '') call s:HL('xmlEndTag', s:blue, '', '') call s:HL('xmlTag', s:blue, '', '') call s:HL('xmlTagName', s:blue, '', '') " Neovim terminal colors if has('nvim') let g:terminal_color_0 = s:gray1 let g:terminal_color_1 = s:red let g:terminal_color_2 = s:green let g:terminal_color_3 = s:yellow let g:terminal_color_4 = s:blue let g:terminal_color_5 = s:purple let g:terminal_color_6 = s:cyan let g:terminal_color_7 = s:gray5 let g:terminal_color_8 = s:gray3 let g:terminal_color_9 = s:red let g:terminal_color_10 = s:green let g:terminal_color_11 = s:yellow let g:terminal_color_12 = s:blue let g:terminal_color_13 = s:purple let g:terminal_color_14 = s:cyan let g:terminal_color_15 = s:gray4 let g:terminal_color_background = g:terminal_color_0 let g:terminal_color_foreground = g:terminal_color_7 endif