]> git.madduck.net Git - etc/vim.git/blobdiff - colors/artesanal.vim

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

- migrate to Colortemplate v2
[etc/vim.git] / colors / artesanal.vim
index a31970d9f3dde1e736483b54c04dbc2f38142907..4a225b27012b160704e94e429c40fd446697ffa5 100644 (file)
@@ -4,13 +4,9 @@
 " Maintainer:   Stefan Wimmer <wimstefan@gmail.com>
 " Website:      https://github.com/wimstefan/vim-artesanal
 " License:      Vim License (see `:help license`)
-" Last Updated: Fri 18 Jan 2019 01:48:53 PM CET
+" Last Updated: Wed 12 Jun 2019 12:15:55 AM CEST
 
-if !(has('termguicolors') && &termguicolors) && !has('gui_running')
-      \ && (!exists('&t_Co') || &t_Co < 256)
-  echoerr '[Artesanal] There are not enough colors.'
-  finish
-endif
+" Generated by Colortemplate v2.0.0b3
 
 hi clear
 if exists('syntax_on')
@@ -19,79 +15,245 @@ endif
 
 let g:colors_name = 'artesanal'
 
-if &background ==# 'dark'
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 2
+let s:italics = (((&t_ZH != '' && &t_ZH != '\e[7m') || has('gui_running')) && !has('iOS')) || has('nvim')
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  if &background ==# 'dark'
+    let g:terminal_ansi_colors = ['#575c66', '#e84256', '#00bf8a', '#fff176',
+          \ '#6699cc', '#fa75e2', '#00bbcc', '#ffffff', '#121419', '#dc1b33',
+          \ '#008c65', '#e5d85c', '#517aa3', '#f844d8', '#0095a3', '#eff1f4']
+    if has('nvim')
+      let g:terminal_color_0 = '#575c66'
+      let g:terminal_color_1 = '#e84256'
+      let g:terminal_color_2 = '#00bf8a'
+      let g:terminal_color_3 = '#fff176'
+      let g:terminal_color_4 = '#6699cc'
+      let g:terminal_color_5 = '#fa75e2'
+      let g:terminal_color_6 = '#00bbcc'
+      let g:terminal_color_7 = '#ffffff'
+      let g:terminal_color_8 = '#121419'
+      let g:terminal_color_9 = '#dc1b33'
+      let g:terminal_color_10 = '#008c65'
+      let g:terminal_color_11 = '#e5d85c'
+      let g:terminal_color_12 = '#517aa3'
+      let g:terminal_color_13 = '#f844d8'
+      let g:terminal_color_14 = '#0095a3'
+      let g:terminal_color_15 = '#eff1f4'
+    endif
+    if !has('gui_running') && get(g:, 'artesanal_transp_bg', 0)
+      hi Normal guifg=#e4e6eb guibg=NONE guisp=NONE gui=NONE cterm=NONE
+      hi CursorLineNr guifg=#fff176 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+      hi FoldColumn guifg=#575c66 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+      hi SignColumn guifg=#cdd2db guibg=NONE guisp=NONE gui=NONE cterm=NONE
+      hi VertSplit guifg=#546e7a guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    else
+      hi Normal guifg=#e4e6eb guibg=#2e3440 guisp=NONE gui=NONE cterm=NONE
+      hi CursorLineNr guifg=#fff176 guibg=#37474f guisp=NONE gui=NONE cterm=NONE
+      hi FoldColumn guifg=#575c66 guibg=#37474f guisp=NONE gui=NONE cterm=NONE
+      hi SignColumn guifg=#cdd2db guibg=#37474f guisp=NONE gui=NONE cterm=NONE
+      hi VertSplit guifg=#546e7a guibg=#2e3440 guisp=NONE gui=NONE cterm=NONE
+    endif
+    hi ColorColumn guifg=NONE guibg=#37474f guisp=NONE gui=NONE cterm=NONE
+    hi Conceal guifg=#6699cc guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi Cursor guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+    hi! link CursorColumn ColorColumn
+    hi! link CursorLine ColorColumn
+    hi DiffAdd guifg=#abddcc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+    hi DiffAdded guifg=#abddcc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+    hi DiffChange guifg=#aec0e0 guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+    hi DiffDelete guifg=#ddabbc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+    hi DiffRemoved guifg=#ddabbc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+    hi DiffText guifg=#abddcc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+    hi Directory guifg=#6699cc guibg=NONE guisp=NONE gui=bold cterm=bold
+    hi EndOfBuffer guifg=#2e3440 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi Error guifg=#e84256 guibg=NONE guisp=NONE gui=bold,standout cterm=bold,standout
+    hi! link ErrorMsg Error
+    hi Folded guifg=#546e7a guibg=#37474f guisp=NONE gui=italic cterm=italic
+    hi! link IncSearch Search
+    hi LineNr guifg=#546e7a guibg=#37474f guisp=NONE gui=NONE cterm=NONE
+    hi MatchParen guifg=NONE guibg=#455a64 guisp=NONE gui=bold cterm=bold
+    hi ModeMsg guifg=#6699cc guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi MoreMsg guifg=#00bf8a guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi NonText guifg=#90a4ae guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi Pmenu guifg=#e4e6eb guibg=#455a64 guisp=NONE gui=NONE cterm=NONE
+    hi PmenuSbar guifg=NONE guibg=#455a64 guisp=NONE gui=NONE cterm=NONE
+    hi PmenuSel guifg=#37474f guibg=#cdd2db guisp=NONE gui=bold cterm=bold
+    hi PmenuThumb guifg=NONE guibg=#90a4ae guisp=NONE gui=NONE cterm=NONE
+    hi Question guifg=#e5d85c guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi! link QuickFixLine Search
+    hi Search guifg=#ffffa8 guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+    hi SpecialKey guifg=#90a4ae guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi SpellBad guifg=#e84256 guibg=NONE guisp=#e84256 gui=italic,undercurl cterm=italic,undercurl
+    hi SpellCap guifg=#6699cc guibg=NONE guisp=#6699cc gui=italic,undercurl cterm=italic,undercurl
+    hi SpellLocal guifg=#00bbcc guibg=NONE guisp=#00bbcc gui=italic,undercurl cterm=italic,undercurl
+    hi SpellRare guifg=#fa75e2 guibg=NONE guisp=#fa75e2 gui=italic,undercurl cterm=italic,undercurl
+    hi StatusLine guifg=#455a64 guibg=#e4e6eb guisp=NONE gui=reverse cterm=reverse
+    hi StatusLineNC guifg=#37474f guibg=#cdd2db guisp=NONE gui=reverse cterm=reverse
+    hi! link StatusLineTerm StatusLine
+    hi! link StatusLineTermNC StatusLineNC
+    hi! link TabLine TabLineFill
+    hi TabLineFill guifg=#cdd2db guibg=#546e7a guisp=NONE gui=NONE cterm=NONE
+    hi TabLineSel guifg=#e4e6eb guibg=#37474f guisp=NONE gui=NONE cterm=NONE
+    hi Title guifg=#eff1f4 guibg=NONE guisp=NONE gui=bold cterm=bold
+    hi Visual guifg=NONE guibg=#37474f guisp=NONE gui=NONE cterm=NONE
+    hi! link VisualNOS Visual
+    hi WarningMsg guifg=#e84256 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi WildMenu guifg=#6699cc guibg=#455a64 guisp=NONE gui=bold cterm=bold
+    hi! link Boolean Constant
+    hi! link Character Constant
+    hi Comment guifg=#b6bdcb guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi! link Conditional Statement
+    hi Constant guifg=#00bf8a guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi! link Define PreProc
+    hi! link Debug Special
+    hi! link Delimiter Special
+    hi! link Exception Statement
+    hi! link Float Constant
+    hi Function guifg=#00bbcc guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi Identifier guifg=#6699cc guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi Ignore guifg=fg guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi! link Include PreProc
+    hi! link Keyword Statement
+    hi! link Label Statement
+    hi! link Macro PreProc
+    hi! link Number Constant
+    hi! link Operator Statement
+    hi! link PreCondit PreProc
+    hi PreProc guifg=#00bbcc guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi! link Repeat Statement
+    hi! link SpecialChar Special
+    hi! link SpecialComment Special
+    hi Statement guifg=#e84256 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi! link StorageClass Type
+    hi Special guifg=#fff176 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi! link String Constant
+    hi! link Structure Type
+    hi! link Tag Special
+    hi Todo guifg=#00bbcc guibg=NONE guisp=NONE gui=reverse cterm=reverse
+    hi Type guifg=#0095a3 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi! link Typedef Type
+    hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
+    hi! link lCursor Cursor
+    hi CursorIM guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+    hi ToolbarLine guifg=NONE guibg=#546e7a guisp=NONE gui=NONE cterm=NONE
+    hi ToolbarButton guifg=#eff1f4 guibg=#546e7a guisp=NONE gui=bold cterm=bold
+    hi! link iCursor Cursor
+    hi! link vCursor Cursor
+    hi NormalMode guifg=#cdd2db guibg=#2e3440 guisp=NONE gui=reverse cterm=reverse
+    hi InsertMode guifg=#6699cc guibg=#2e3440 guisp=NONE gui=reverse cterm=reverse
+    hi ReplaceMode guifg=#00bbcc guibg=#2e3440 guisp=NONE gui=reverse cterm=reverse
+    hi VisualMode guifg=#fff176 guibg=#2e3440 guisp=NONE gui=reverse cterm=reverse
+    hi CommandMode guifg=#fa75e2 guibg=#2e3440 guisp=NONE gui=reverse cterm=reverse
+    hi Warnings guifg=#fff176 guibg=#2e3440 guisp=NONE gui=reverse cterm=reverse
+    if !s:italics
+      hi Folded gui=NONE cterm=NONE
+      hi SpellBad gui=undercurl cterm=undercurl
+      hi SpellCap gui=undercurl cterm=undercurl
+      hi SpellLocal gui=undercurl cterm=undercurl
+      hi SpellRare gui=undercurl cterm=undercurl
+    endif
+    if has('nvim')
+      hi! link TermCursor Cursor
+      hi TermCursorNC guifg=#37474f guibg=#e4e6eb guisp=NONE gui=NONE cterm=NONE
+    endif
+    unlet s:t_Co s:italics
+    finish
+  endif
+  " Light background
+  let g:terminal_ansi_colors = ['#121419', '#971223', '#00814b', '#cc7000',
+        \ '#00409b', '#9a008d', '#007681', '#eff1f4', '#575c66', '#ae1528',
+        \ '#009a5a', '#ff8c00', '#004bb4', '#b300a4', '#008d9a', '#ffffff']
+  if has('nvim')
+    let g:terminal_color_0 = '#121419'
+    let g:terminal_color_1 = '#971223'
+    let g:terminal_color_2 = '#00814b'
+    let g:terminal_color_3 = '#cc7000'
+    let g:terminal_color_4 = '#00409b'
+    let g:terminal_color_5 = '#9a008d'
+    let g:terminal_color_6 = '#007681'
+    let g:terminal_color_7 = '#eff1f4'
+    let g:terminal_color_8 = '#575c66'
+    let g:terminal_color_9 = '#ae1528'
+    let g:terminal_color_10 = '#009a5a'
+    let g:terminal_color_11 = '#ff8c00'
+    let g:terminal_color_12 = '#004bb4'
+    let g:terminal_color_13 = '#b300a4'
+    let g:terminal_color_14 = '#008d9a'
+    let g:terminal_color_15 = '#ffffff'
+  endif
   if !has('gui_running') && get(g:, 'artesanal_transp_bg', 0)
-    hi Normal ctermfg=254 ctermbg=NONE guifg=#e0e0e0 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-    hi CursorLineNr ctermfg=228 ctermbg=NONE guifg=#fff176 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-    hi FoldColumn ctermfg=59 ctermbg=NONE guifg=#575c66 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-    hi SignColumn ctermfg=250 ctermbg=NONE guifg=#bdbdbd guibg=NONE guisp=NONE cterm=NONE gui=NONE
-    hi VertSplit ctermfg=242 ctermbg=NONE guifg=#546e7a guibg=NONE guisp=NONE cterm=NONE gui=NONE
+    hi Normal guifg=#37474f guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi CursorLineNr guifg=#ff8c00 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi FoldColumn guifg=#575c66 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi SignColumn guifg=#455a64 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+    hi VertSplit guifg=#b6bdcb guibg=NONE guisp=NONE gui=NONE cterm=NONE
   else
-    hi Normal ctermfg=254 ctermbg=236 guifg=#e0e0e0 guibg=#2e3440 guisp=NONE cterm=NONE gui=NONE
-    hi CursorLineNr ctermfg=228 ctermbg=238 guifg=#fff176 guibg=#37474f guisp=NONE cterm=NONE gui=NONE
-    hi FoldColumn ctermfg=59 ctermbg=238 guifg=#575c66 guibg=#37474f guisp=NONE cterm=NONE gui=NONE
-    hi SignColumn ctermfg=250 ctermbg=238 guifg=#bdbdbd guibg=#37474f guisp=NONE cterm=NONE gui=NONE
-    hi VertSplit ctermfg=242 ctermbg=236 guifg=#546e7a guibg=#2e3440 guisp=NONE cterm=NONE gui=NONE
+    hi Normal guifg=#37474f guibg=#eff1f4 guisp=NONE gui=NONE cterm=NONE
+    hi CursorLineNr guifg=#ff8c00 guibg=#e4e6eb guisp=NONE gui=NONE cterm=NONE
+    hi FoldColumn guifg=#575c66 guibg=#e4e6eb guisp=NONE gui=NONE cterm=NONE
+    hi SignColumn guifg=#455a64 guibg=#e4e6eb guisp=NONE gui=NONE cterm=NONE
+    hi VertSplit guifg=#b6bdcb guibg=#eff1f4 guisp=NONE gui=NONE cterm=NONE
   endif
-  hi ColorColumn ctermfg=NONE ctermbg=238 guifg=NONE guibg=#37474f guisp=NONE cterm=NONE gui=NONE
-  hi Conceal ctermfg=67 ctermbg=NONE guifg=#6699cc guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi Cursor ctermfg=NONE ctermbg=NONE guifg=NONE guibg=NONE guisp=NONE cterm=NONE,reverse gui=NONE,reverse
+  hi ColorColumn guifg=NONE guibg=#e4e6eb guisp=NONE gui=NONE cterm=NONE
+  hi Conceal guifg=#004bb4 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi Cursor guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
   hi! link CursorColumn ColorColumn
   hi! link CursorLine ColorColumn
-  hi DiffAdd ctermfg=152 ctermbg=233 guifg=#abddcc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi DiffAdded ctermfg=152 ctermbg=233 guifg=#abddcc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi DiffChange ctermfg=153 ctermbg=233 guifg=#aec0e0 guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi DiffDelete ctermfg=181 ctermbg=233 guifg=#ddabbc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi DiffRemoved ctermfg=181 ctermbg=233 guifg=#ddabbc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi DiffText ctermfg=152 ctermbg=233 guifg=#abddcc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi Directory ctermfg=67 ctermbg=NONE guifg=#6699cc guibg=NONE guisp=NONE cterm=NONE,bold gui=NONE,bold
-  hi EndOfBuffer ctermfg=236 ctermbg=NONE guifg=#2e3440 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi Error ctermfg=167 ctermbg=NONE guifg=#e84256 guibg=NONE guisp=NONE cterm=NONE,bold,reverse gui=NONE,bold,standout
+  hi DiffAdd guifg=#abddcc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+  hi DiffAdded guifg=#abddcc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+  hi DiffChange guifg=#aec0e0 guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+  hi DiffDelete guifg=#ddabbc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+  hi DiffRemoved guifg=#ddabbc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+  hi DiffText guifg=#abddcc guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+  hi Directory guifg=#004bb4 guibg=NONE guisp=NONE gui=bold cterm=bold
+  hi EndOfBuffer guifg=#eff1f4 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi Error guifg=#ae1528 guibg=NONE guisp=NONE gui=bold,standout cterm=bold,standout
   hi! link ErrorMsg Error
-  hi Folded ctermfg=242 ctermbg=238 guifg=#546e7a guibg=#37474f guisp=NONE cterm=NONE gui=NONE,italic
+  hi Folded guifg=#b6bdcb guibg=#e4e6eb guisp=NONE gui=italic cterm=italic
   hi! link IncSearch Search
-  hi LineNr ctermfg=242 ctermbg=238 guifg=#546e7a guibg=#37474f guisp=NONE cterm=NONE gui=NONE
-  hi MatchParen ctermfg=NONE ctermbg=240 guifg=NONE guibg=#455a64 guisp=NONE cterm=NONE,bold gui=NONE,bold
-  hi ModeMsg ctermfg=67 ctermbg=NONE guifg=#6699cc guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi MoreMsg ctermfg=36 ctermbg=NONE guifg=#00bf8a guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi NonText ctermfg=247 ctermbg=NONE guifg=#90a4ae guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi Pmenu ctermfg=254 ctermbg=240 guifg=#e0e0e0 guibg=#455a64 guisp=NONE cterm=NONE gui=NONE
-  hi PmenuSbar ctermfg=NONE ctermbg=240 guifg=NONE guibg=#455a64 guisp=NONE cterm=NONE gui=NONE
-  hi PmenuSel ctermfg=238 ctermbg=250 guifg=#37474f guibg=#bdbdbd guisp=NONE cterm=NONE,bold gui=NONE,bold
-  hi PmenuThumb ctermfg=NONE ctermbg=247 guifg=NONE guibg=#90a4ae guisp=NONE cterm=NONE gui=NONE
-  hi Question ctermfg=185 ctermbg=NONE guifg=#e5d85c guibg=NONE guisp=NONE cterm=NONE gui=NONE
+  hi LineNr guifg=#b6bdcb guibg=#e4e6eb guisp=NONE gui=NONE cterm=NONE
+  hi MatchParen guifg=NONE guibg=#cdd2db guisp=NONE gui=bold cterm=bold
+  hi ModeMsg guifg=#004bb4 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi MoreMsg guifg=#009a5a guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi NonText guifg=#9fa8ba guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi Pmenu guifg=#37474f guibg=#cdd2db guisp=NONE gui=NONE cterm=NONE
+  hi PmenuSbar guifg=NONE guibg=#cdd2db guisp=NONE gui=NONE cterm=NONE
+  hi PmenuSel guifg=#e4e6eb guibg=#455a64 guisp=NONE gui=bold cterm=bold
+  hi PmenuThumb guifg=NONE guibg=#9fa8ba guisp=NONE gui=NONE cterm=NONE
+  hi Question guifg=#cc7000 guibg=NONE guisp=NONE gui=NONE cterm=NONE
   hi! link QuickFixLine Search
-  hi Search ctermfg=229 ctermbg=233 guifg=#ffffa8 guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi SpecialKey ctermfg=247 ctermbg=NONE guifg=#90a4ae guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi SpellBad ctermfg=167 ctermbg=NONE guifg=#e84256 guibg=NONE guisp=#e84256 cterm=NONE,underline gui=NONE,italic,undercurl
-  hi SpellCap ctermfg=67 ctermbg=NONE guifg=#6699cc guibg=NONE guisp=#6699cc cterm=NONE,underline gui=NONE,italic,undercurl
-  hi SpellLocal ctermfg=37 ctermbg=NONE guifg=#00bbcc guibg=NONE guisp=#00bbcc cterm=NONE,underline gui=NONE,italic,undercurl
-  hi SpellRare ctermfg=206 ctermbg=NONE guifg=#fa75e2 guibg=NONE guisp=#fa75e2 cterm=NONE,underline gui=NONE,italic,undercurl
-  hi StatusLine ctermfg=240 ctermbg=254 guifg=#455a64 guibg=#e0e0e0 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi StatusLineNC ctermfg=238 ctermbg=250 guifg=#37474f guibg=#bdbdbd guisp=NONE cterm=NONE,reverse gui=NONE,reverse
+  hi Search guifg=#ffc57f guibg=#121419 guisp=NONE gui=reverse cterm=reverse
+  hi SpecialKey guifg=#9fa8ba guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi SpellBad guifg=#ae1528 guibg=NONE guisp=#ae1528 gui=italic,undercurl cterm=italic,undercurl
+  hi SpellCap guifg=#004bb4 guibg=NONE guisp=#004bb4 gui=italic,undercurl cterm=italic,undercurl
+  hi SpellLocal guifg=#008d9a guibg=NONE guisp=#008d9a gui=italic,undercurl cterm=italic,undercurl
+  hi SpellRare guifg=#b300a4 guibg=NONE guisp=#b300a4 gui=italic,undercurl cterm=italic,undercurl
+  hi StatusLine guifg=#cdd2db guibg=#37474f guisp=NONE gui=reverse cterm=reverse
+  hi StatusLineNC guifg=#e4e6eb guibg=#455a64 guisp=NONE gui=reverse cterm=reverse
   hi! link StatusLineTerm StatusLine
   hi! link StatusLineTermNC StatusLineNC
   hi! link TabLine TabLineFill
-  hi TabLineFill ctermfg=250 ctermbg=242 guifg=#bdbdbd guibg=#546e7a guisp=NONE cterm=NONE gui=NONE
-  hi TabLineSel ctermfg=254 ctermbg=238 guifg=#e0e0e0 guibg=#37474f guisp=NONE cterm=NONE gui=NONE
-  hi Title ctermfg=255 ctermbg=NONE guifg=#eaeaeb guibg=NONE guisp=NONE cterm=NONE,bold gui=NONE,bold
-  hi Visual ctermfg=NONE ctermbg=238 guifg=NONE guibg=#37474f guisp=NONE cterm=NONE gui=NONE
+  hi TabLineFill guifg=#455a64 guibg=#b6bdcb guisp=NONE gui=NONE cterm=NONE
+  hi TabLineSel guifg=#37474f guibg=#e4e6eb guisp=NONE gui=NONE cterm=NONE
+  hi Title guifg=#2e3440 guibg=NONE guisp=NONE gui=bold cterm=bold
+  hi Visual guifg=NONE guibg=#e4e6eb guisp=NONE gui=NONE cterm=NONE
   hi! link VisualNOS Visual
-  hi WarningMsg ctermfg=167 ctermbg=NONE guifg=#e84256 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi WildMenu ctermfg=67 ctermbg=240 guifg=#6699cc guibg=#455a64 guisp=NONE cterm=NONE,bold gui=NONE,bold
+  hi WarningMsg guifg=#ae1528 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi WildMenu guifg=#004bb4 guibg=#cdd2db guisp=NONE gui=bold cterm=bold
   hi! link Boolean Constant
   hi! link Character Constant
-  hi Comment ctermfg=247 ctermbg=NONE guifg=#9e9e9e guibg=NONE guisp=NONE cterm=NONE gui=NONE
+  hi Comment guifg=#546e7a guibg=NONE guisp=NONE gui=NONE cterm=NONE
   hi! link Conditional Statement
-  hi Constant ctermfg=36 ctermbg=NONE guifg=#00bf8a guibg=NONE guisp=NONE cterm=NONE gui=NONE
+  hi Constant guifg=#009a5a guibg=NONE guisp=NONE gui=NONE cterm=NONE
   hi! link Define PreProc
   hi! link Debug Special
   hi! link Delimiter Special
   hi! link Exception Statement
   hi! link Float Constant
-  hi Function ctermfg=37 ctermbg=NONE guifg=#00bbcc guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi Identifier ctermfg=67 ctermbg=NONE guifg=#6699cc guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi Ignore ctermfg=fg ctermbg=NONE guifg=fg guibg=NONE guisp=NONE cterm=NONE gui=NONE
+  hi Function guifg=#008d9a guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi Identifier guifg=#004bb4 guibg=NONE guisp=NONE gui=NONE cterm=NONE
+  hi Ignore guifg=fg guibg=NONE guisp=NONE gui=NONE cterm=NONE
   hi! link Include PreProc
   hi! link Keyword Statement
   hi! link Label Statement
@@ -99,211 +261,519 @@ if &background ==# 'dark'
   hi! link Number Constant
   hi! link Operator Statement
   hi! link PreCondit PreProc
-  hi PreProc ctermfg=37 ctermbg=NONE guifg=#00bbcc guibg=NONE guisp=NONE cterm=NONE gui=NONE
+  hi PreProc guifg=#008d9a guibg=NONE guisp=NONE gui=NONE cterm=NONE
   hi! link Repeat Statement
   hi! link SpecialChar Special
   hi! link SpecialComment Special
-  hi Statement ctermfg=167 ctermbg=NONE guifg=#e84256 guibg=NONE guisp=NONE cterm=NONE gui=NONE
+  hi Statement guifg=#ae1528 guibg=NONE guisp=NONE gui=NONE cterm=NONE
   hi! link StorageClass Type
-  hi Special ctermfg=228 ctermbg=NONE guifg=#fff176 guibg=NONE guisp=NONE cterm=NONE gui=NONE
+  hi Special guifg=#ff8c00 guibg=NONE guisp=NONE gui=NONE cterm=NONE
   hi! link String Constant
   hi! link Structure Type
   hi! link Tag Special
-  hi Todo ctermfg=37 ctermbg=NONE guifg=#00bbcc guibg=NONE guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi Type ctermfg=30 ctermbg=NONE guifg=#0095a3 guibg=NONE guisp=NONE cterm=NONE gui=NONE
+  hi Todo guifg=#008d9a guibg=NONE guisp=NONE gui=reverse cterm=reverse
+  hi Type guifg=#007681 guibg=NONE guisp=NONE gui=NONE cterm=NONE
   hi! link Typedef Type
-  hi Underlined ctermfg=NONE ctermbg=NONE guifg=NONE guibg=NONE guisp=NONE cterm=NONE,underline gui=NONE,underline
+  hi Underlined guifg=NONE guibg=NONE guisp=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
   hi! link lCursor Cursor
-  hi CursorIM ctermfg=NONE ctermbg=NONE guifg=NONE guibg=NONE guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi ToolbarLine ctermfg=NONE ctermbg=242 guifg=NONE guibg=#546e7a guisp=NONE cterm=NONE gui=NONE
-  hi ToolbarButton ctermfg=255 ctermbg=242 guifg=#eaeaeb guibg=#546e7a guisp=NONE cterm=NONE,bold gui=NONE,bold
-  if get(g:, "artesanal_italic", 0)
-    hi Comment cterm=italic
-    hi Folded cterm=italic
-    hi SpellBad cterm=italic,underline
-    hi SpellCap cterm=italic,underline
-    hi SpellLocal cterm=italic,underline
-    hi SpellRare cterm=italic,underline
-    hi Todo cterm=italic
-  endif
+  hi CursorIM guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi ToolbarLine guifg=NONE guibg=#b6bdcb guisp=NONE gui=NONE cterm=NONE
+  hi ToolbarButton guifg=#2e3440 guibg=#b6bdcb guisp=NONE gui=bold cterm=bold
   hi! link iCursor Cursor
   hi! link vCursor Cursor
-  hi NormalMode ctermfg=250 ctermbg=236 guifg=#bdbdbd guibg=#2e3440 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi InsertMode ctermfg=67 ctermbg=236 guifg=#6699cc guibg=#2e3440 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi ReplaceMode ctermfg=37 ctermbg=236 guifg=#00bbcc guibg=#2e3440 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi VisualMode ctermfg=228 ctermbg=236 guifg=#fff176 guibg=#2e3440 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi CommandMode ctermfg=206 ctermbg=236 guifg=#fa75e2 guibg=#2e3440 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  hi Warnings ctermfg=228 ctermbg=236 guifg=#fff176 guibg=#2e3440 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-  let g:terminal_ansi_colors = [
-        \ '#2e3440',
-        \ '#e84256',
-        \ '#00bf8a',
-        \ '#fff176',
-        \ '#6699cc',
-        \ '#fa75e2',
-        \ '#00bbcc',
-        \ '#eaeaeb',
-        \ '#2e3440',
-        \ '#e84256',
-        \ '#00bf8a',
-        \ '#fff176',
-        \ '#6699cc',
-        \ '#fa75e2',
-        \ '#00bbcc',
-        \ '#bdbdbd'
-        \ ]
-  hi! link TermCursor Cursor
-  hi TermCursorNC ctermfg=238 ctermbg=254 guifg=#37474f guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE
+  hi NormalMode guifg=#455a64 guibg=#eff1f4 guisp=NONE gui=reverse cterm=reverse
+  hi InsertMode guifg=#004bb4 guibg=#eff1f4 guisp=NONE gui=reverse cterm=reverse
+  hi ReplaceMode guifg=#008d9a guibg=#eff1f4 guisp=NONE gui=reverse cterm=reverse
+  hi VisualMode guifg=#ff8c00 guibg=#eff1f4 guisp=NONE gui=reverse cterm=reverse
+  hi CommandMode guifg=#b300a4 guibg=#eff1f4 guisp=NONE gui=reverse cterm=reverse
+  hi Warnings guifg=#ff8c00 guibg=#eff1f4 guisp=NONE gui=reverse cterm=reverse
+  if !s:italics
+    hi Folded gui=NONE cterm=NONE
+    hi SpellBad gui=undercurl cterm=undercurl
+    hi SpellCap gui=undercurl cterm=undercurl
+    hi SpellLocal gui=undercurl cterm=undercurl
+    hi SpellRare gui=undercurl cterm=undercurl
+  endif
+  if has('nvim')
+    hi! link TermCursor Cursor
+    hi TermCursorNC guifg=#e4e6eb guibg=#37474f guisp=NONE gui=NONE cterm=NONE
+  endif
+  unlet s:t_Co s:italics
   finish
 endif
 
-if !has('gui_running') && get(g:, 'artesanal_transp_bg', 0)
-  hi Normal ctermfg=238 ctermbg=NONE guifg=#37474f guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi CursorLineNr ctermfg=208 ctermbg=NONE guifg=#ff8c00 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi FoldColumn ctermfg=59 ctermbg=NONE guifg=#575c66 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi SignColumn ctermfg=240 ctermbg=NONE guifg=#455a64 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-  hi VertSplit ctermfg=248 ctermbg=NONE guifg=#aaaaaa guibg=NONE guisp=NONE cterm=NONE gui=NONE
-else
-  hi Normal ctermfg=238 ctermbg=255 guifg=#37474f guibg=#eaeaeb guisp=NONE cterm=NONE gui=NONE
-  hi CursorLineNr ctermfg=208 ctermbg=254 guifg=#ff8c00 guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE
-  hi FoldColumn ctermfg=59 ctermbg=254 guifg=#575c66 guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE
-  hi SignColumn ctermfg=240 ctermbg=254 guifg=#455a64 guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE
-  hi VertSplit ctermfg=248 ctermbg=255 guifg=#aaaaaa guibg=#eaeaeb guisp=NONE cterm=NONE gui=NONE
+if s:t_Co >= 256
+  if &background ==# 'dark'
+    if !has('gui_running') && get(g:, 'artesanal_transp_bg', 0)
+      hi Normal ctermfg=254 ctermbg=NONE cterm=NONE
+      hi CursorLineNr ctermfg=228 ctermbg=NONE cterm=NONE
+      hi FoldColumn ctermfg=59 ctermbg=NONE cterm=NONE
+      hi SignColumn ctermfg=252 ctermbg=NONE cterm=NONE
+      hi VertSplit ctermfg=242 ctermbg=NONE cterm=NONE
+    else
+      hi Normal ctermfg=254 ctermbg=236 cterm=NONE
+      if !has('patch-8.0.0616') && !has('nvim') " Fix for Vim bug
+        set background=dark
+      endif
+      hi CursorLineNr ctermfg=228 ctermbg=238 cterm=NONE
+      hi FoldColumn ctermfg=59 ctermbg=238 cterm=NONE
+      hi SignColumn ctermfg=252 ctermbg=238 cterm=NONE
+      hi VertSplit ctermfg=242 ctermbg=236 cterm=NONE
+    endif
+    hi ColorColumn ctermfg=NONE ctermbg=238 cterm=NONE
+    hi Conceal ctermfg=67 ctermbg=NONE cterm=NONE
+    hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
+    hi! link CursorColumn ColorColumn
+    hi! link CursorLine ColorColumn
+    hi DiffAdd ctermfg=152 ctermbg=233 cterm=reverse
+    hi DiffAdded ctermfg=152 ctermbg=233 cterm=reverse
+    hi DiffChange ctermfg=153 ctermbg=233 cterm=reverse
+    hi DiffDelete ctermfg=181 ctermbg=233 cterm=reverse
+    hi DiffRemoved ctermfg=181 ctermbg=233 cterm=reverse
+    hi DiffText ctermfg=152 ctermbg=233 cterm=reverse
+    hi Directory ctermfg=67 ctermbg=NONE cterm=bold
+    hi EndOfBuffer ctermfg=236 ctermbg=NONE cterm=NONE
+    hi Error ctermfg=167 ctermbg=NONE cterm=bold,reverse
+    hi! link ErrorMsg Error
+    hi Folded ctermfg=242 ctermbg=238 cterm=NONE
+    hi! link IncSearch Search
+    hi LineNr ctermfg=242 ctermbg=238 cterm=NONE
+    hi MatchParen ctermfg=NONE ctermbg=240 cterm=bold
+    hi ModeMsg ctermfg=67 ctermbg=NONE cterm=NONE
+    hi MoreMsg ctermfg=36 ctermbg=NONE cterm=NONE
+    hi NonText ctermfg=247 ctermbg=NONE cterm=NONE
+    hi Pmenu ctermfg=254 ctermbg=240 cterm=NONE
+    hi PmenuSbar ctermfg=NONE ctermbg=240 cterm=NONE
+    hi PmenuSel ctermfg=238 ctermbg=252 cterm=bold
+    hi PmenuThumb ctermfg=NONE ctermbg=247 cterm=NONE
+    hi Question ctermfg=185 ctermbg=NONE cterm=NONE
+    hi! link QuickFixLine Search
+    hi Search ctermfg=229 ctermbg=233 cterm=reverse
+    hi SpecialKey ctermfg=247 ctermbg=NONE cterm=NONE
+    hi SpellBad ctermfg=167 ctermbg=NONE cterm=underline
+    hi SpellCap ctermfg=67 ctermbg=NONE cterm=underline
+    hi SpellLocal ctermfg=37 ctermbg=NONE cterm=underline
+    hi SpellRare ctermfg=206 ctermbg=NONE cterm=underline
+    hi StatusLine ctermfg=240 ctermbg=254 cterm=reverse
+    hi StatusLineNC ctermfg=238 ctermbg=252 cterm=reverse
+    hi! link StatusLineTerm StatusLine
+    hi! link StatusLineTermNC StatusLineNC
+    hi! link TabLine TabLineFill
+    hi TabLineFill ctermfg=252 ctermbg=242 cterm=NONE
+    hi TabLineSel ctermfg=254 ctermbg=238 cterm=NONE
+    hi Title ctermfg=255 ctermbg=NONE cterm=bold
+    hi Visual ctermfg=NONE ctermbg=238 cterm=NONE
+    hi! link VisualNOS Visual
+    hi WarningMsg ctermfg=167 ctermbg=NONE cterm=NONE
+    hi WildMenu ctermfg=67 ctermbg=240 cterm=bold
+    hi! link Boolean Constant
+    hi! link Character Constant
+    hi Comment ctermfg=250 ctermbg=NONE cterm=NONE
+    hi! link Conditional Statement
+    hi Constant ctermfg=36 ctermbg=NONE cterm=NONE
+    hi! link Define PreProc
+    hi! link Debug Special
+    hi! link Delimiter Special
+    hi! link Exception Statement
+    hi! link Float Constant
+    hi Function ctermfg=37 ctermbg=NONE cterm=NONE
+    hi Identifier ctermfg=67 ctermbg=NONE cterm=NONE
+    hi Ignore ctermfg=fg ctermbg=NONE cterm=NONE
+    hi! link Include PreProc
+    hi! link Keyword Statement
+    hi! link Label Statement
+    hi! link Macro PreProc
+    hi! link Number Constant
+    hi! link Operator Statement
+    hi! link PreCondit PreProc
+    hi PreProc ctermfg=37 ctermbg=NONE cterm=NONE
+    hi! link Repeat Statement
+    hi! link SpecialChar Special
+    hi! link SpecialComment Special
+    hi Statement ctermfg=167 ctermbg=NONE cterm=NONE
+    hi! link StorageClass Type
+    hi Special ctermfg=228 ctermbg=NONE cterm=NONE
+    hi! link String Constant
+    hi! link Structure Type
+    hi! link Tag Special
+    hi Todo ctermfg=37 ctermbg=NONE cterm=reverse
+    hi Type ctermfg=30 ctermbg=NONE cterm=NONE
+    hi! link Typedef Type
+    hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+    hi! link lCursor Cursor
+    hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse
+    hi ToolbarLine ctermfg=NONE ctermbg=242 cterm=NONE
+    hi ToolbarButton ctermfg=255 ctermbg=242 cterm=bold
+    hi! link iCursor Cursor
+    hi! link vCursor Cursor
+    hi NormalMode ctermfg=252 ctermbg=236 cterm=reverse
+    hi InsertMode ctermfg=67 ctermbg=236 cterm=reverse
+    hi ReplaceMode ctermfg=37 ctermbg=236 cterm=reverse
+    hi VisualMode ctermfg=228 ctermbg=236 cterm=reverse
+    hi CommandMode ctermfg=206 ctermbg=236 cterm=reverse
+    hi Warnings ctermfg=228 ctermbg=236 cterm=reverse
+    if has('nvim')
+      hi! link TermCursor Cursor
+      hi TermCursorNC ctermfg=238 ctermbg=254 cterm=NONE
+    endif
+    unlet s:t_Co s:italics
+    finish
+  endif
+  " Light background
+  if !has('gui_running') && get(g:, 'artesanal_transp_bg', 0)
+    hi Normal ctermfg=238 ctermbg=NONE cterm=NONE
+    hi CursorLineNr ctermfg=208 ctermbg=NONE cterm=NONE
+    hi FoldColumn ctermfg=59 ctermbg=NONE cterm=NONE
+    hi SignColumn ctermfg=240 ctermbg=NONE cterm=NONE
+    hi VertSplit ctermfg=250 ctermbg=NONE cterm=NONE
+  else
+    hi Normal ctermfg=238 ctermbg=255 cterm=NONE
+    hi CursorLineNr ctermfg=208 ctermbg=254 cterm=NONE
+    hi FoldColumn ctermfg=59 ctermbg=254 cterm=NONE
+    hi SignColumn ctermfg=240 ctermbg=254 cterm=NONE
+    hi VertSplit ctermfg=250 ctermbg=255 cterm=NONE
+  endif
+  hi ColorColumn ctermfg=NONE ctermbg=254 cterm=NONE
+  hi Conceal ctermfg=26 ctermbg=NONE cterm=NONE
+  hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi! link CursorColumn ColorColumn
+  hi! link CursorLine ColorColumn
+  hi DiffAdd ctermfg=152 ctermbg=233 cterm=reverse
+  hi DiffAdded ctermfg=152 ctermbg=233 cterm=reverse
+  hi DiffChange ctermfg=153 ctermbg=233 cterm=reverse
+  hi DiffDelete ctermfg=181 ctermbg=233 cterm=reverse
+  hi DiffRemoved ctermfg=181 ctermbg=233 cterm=reverse
+  hi DiffText ctermfg=152 ctermbg=233 cterm=reverse
+  hi Directory ctermfg=26 ctermbg=NONE cterm=bold
+  hi EndOfBuffer ctermfg=255 ctermbg=NONE cterm=NONE
+  hi Error ctermfg=124 ctermbg=NONE cterm=bold,reverse
+  hi! link ErrorMsg Error
+  hi Folded ctermfg=250 ctermbg=254 cterm=NONE
+  hi! link IncSearch Search
+  hi LineNr ctermfg=250 ctermbg=254 cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=252 cterm=bold
+  hi ModeMsg ctermfg=26 ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=35 ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=248 ctermbg=NONE cterm=NONE
+  hi Pmenu ctermfg=238 ctermbg=252 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=252 cterm=NONE
+  hi PmenuSel ctermfg=254 ctermbg=240 cterm=bold
+  hi PmenuThumb ctermfg=NONE ctermbg=248 cterm=NONE
+  hi Question ctermfg=166 ctermbg=NONE cterm=NONE
+  hi! link QuickFixLine Search
+  hi Search ctermfg=215 ctermbg=233 cterm=reverse
+  hi SpecialKey ctermfg=248 ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=124 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=26 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=30 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=127 ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=252 ctermbg=238 cterm=reverse
+  hi StatusLineNC ctermfg=254 ctermbg=240 cterm=reverse
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi! link TabLine TabLineFill
+  hi TabLineFill ctermfg=240 ctermbg=250 cterm=NONE
+  hi TabLineSel ctermfg=238 ctermbg=254 cterm=NONE
+  hi Title ctermfg=236 ctermbg=NONE cterm=bold
+  hi Visual ctermfg=NONE ctermbg=254 cterm=NONE
+  hi! link VisualNOS Visual
+  hi WarningMsg ctermfg=124 ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=26 ctermbg=252 cterm=bold
+  hi! link Boolean Constant
+  hi! link Character Constant
+  hi Comment ctermfg=242 ctermbg=NONE cterm=NONE
+  hi! link Conditional Statement
+  hi Constant ctermfg=35 ctermbg=NONE cterm=NONE
+  hi! link Define PreProc
+  hi! link Debug Special
+  hi! link Delimiter Special
+  hi! link Exception Statement
+  hi! link Float Constant
+  hi Function ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=26 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=fg ctermbg=NONE cterm=NONE
+  hi! link Include PreProc
+  hi! link Keyword Statement
+  hi! link Label Statement
+  hi! link Macro PreProc
+  hi! link Number Constant
+  hi! link Operator Statement
+  hi! link PreCondit PreProc
+  hi PreProc ctermfg=30 ctermbg=NONE cterm=NONE
+  hi! link Repeat Statement
+  hi! link SpecialChar Special
+  hi! link SpecialComment Special
+  hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
+  hi! link StorageClass Type
+  hi Special ctermfg=208 ctermbg=NONE cterm=NONE
+  hi! link String Constant
+  hi! link Structure Type
+  hi! link Tag Special
+  hi Todo ctermfg=30 ctermbg=NONE cterm=reverse
+  hi Type ctermfg=30 ctermbg=NONE cterm=NONE
+  hi! link Typedef Type
+  hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+  hi! link lCursor Cursor
+  hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi ToolbarLine ctermfg=NONE ctermbg=250 cterm=NONE
+  hi ToolbarButton ctermfg=236 ctermbg=250 cterm=bold
+  hi! link iCursor Cursor
+  hi! link vCursor Cursor
+  hi NormalMode ctermfg=240 ctermbg=255 cterm=reverse
+  hi InsertMode ctermfg=26 ctermbg=255 cterm=reverse
+  hi ReplaceMode ctermfg=30 ctermbg=255 cterm=reverse
+  hi VisualMode ctermfg=208 ctermbg=255 cterm=reverse
+  hi CommandMode ctermfg=127 ctermbg=255 cterm=reverse
+  hi Warnings ctermfg=208 ctermbg=255 cterm=reverse
+  if has('nvim')
+    hi! link TermCursor Cursor
+    hi TermCursorNC ctermfg=254 ctermbg=238 cterm=NONE
+  endif
+  unlet s:t_Co s:italics
+  finish
 endif
-hi ColorColumn ctermfg=NONE ctermbg=254 guifg=NONE guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE
-hi Conceal ctermfg=26 ctermbg=NONE guifg=#004bb4 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi Cursor ctermfg=NONE ctermbg=NONE guifg=NONE guibg=NONE guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi! link CursorColumn ColorColumn
-hi! link CursorLine ColorColumn
-hi DiffAdd ctermfg=152 ctermbg=233 guifg=#abddcc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi DiffAdded ctermfg=152 ctermbg=233 guifg=#abddcc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi DiffChange ctermfg=153 ctermbg=233 guifg=#aec0e0 guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi DiffDelete ctermfg=181 ctermbg=233 guifg=#ddabbc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi DiffRemoved ctermfg=181 ctermbg=233 guifg=#ddabbc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi DiffText ctermfg=152 ctermbg=233 guifg=#abddcc guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi Directory ctermfg=26 ctermbg=NONE guifg=#004bb4 guibg=NONE guisp=NONE cterm=NONE,bold gui=NONE,bold
-hi EndOfBuffer ctermfg=255 ctermbg=NONE guifg=#eaeaeb guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi Error ctermfg=124 ctermbg=NONE guifg=#ae1528 guibg=NONE guisp=NONE cterm=NONE,bold,reverse gui=NONE,bold,standout
-hi! link ErrorMsg Error
-hi Folded ctermfg=248 ctermbg=254 guifg=#aaaaaa guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE,italic
-hi! link IncSearch Search
-hi LineNr ctermfg=248 ctermbg=254 guifg=#aaaaaa guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE
-hi MatchParen ctermfg=NONE ctermbg=250 guifg=NONE guibg=#bdbdbd guisp=NONE cterm=NONE,bold gui=NONE,bold
-hi ModeMsg ctermfg=26 ctermbg=NONE guifg=#004bb4 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi MoreMsg ctermfg=35 ctermbg=NONE guifg=#009a5a guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi NonText ctermfg=242 ctermbg=NONE guifg=#707070 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi Pmenu ctermfg=238 ctermbg=250 guifg=#37474f guibg=#bdbdbd guisp=NONE cterm=NONE gui=NONE
-hi PmenuSbar ctermfg=NONE ctermbg=250 guifg=NONE guibg=#bdbdbd guisp=NONE cterm=NONE gui=NONE
-hi PmenuSel ctermfg=254 ctermbg=240 guifg=#e0e0e0 guibg=#455a64 guisp=NONE cterm=NONE,bold gui=NONE,bold
-hi PmenuThumb ctermfg=NONE ctermbg=242 guifg=NONE guibg=#707070 guisp=NONE cterm=NONE gui=NONE
-hi Question ctermfg=166 ctermbg=NONE guifg=#cc7000 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi! link QuickFixLine Search
-hi Search ctermfg=215 ctermbg=233 guifg=#ffc57f guibg=#121419 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi SpecialKey ctermfg=242 ctermbg=NONE guifg=#707070 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi SpellBad ctermfg=124 ctermbg=NONE guifg=#ae1528 guibg=NONE guisp=#ae1528 cterm=NONE,underline gui=NONE,italic,undercurl
-hi SpellCap ctermfg=26 ctermbg=NONE guifg=#004bb4 guibg=NONE guisp=#004bb4 cterm=NONE,underline gui=NONE,italic,undercurl
-hi SpellLocal ctermfg=30 ctermbg=NONE guifg=#008d9a guibg=NONE guisp=#008d9a cterm=NONE,underline gui=NONE,italic,undercurl
-hi SpellRare ctermfg=127 ctermbg=NONE guifg=#b300a4 guibg=NONE guisp=#b300a4 cterm=NONE,underline gui=NONE,italic,undercurl
-hi StatusLine ctermfg=250 ctermbg=238 guifg=#bdbdbd guibg=#37474f guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi StatusLineNC ctermfg=254 ctermbg=240 guifg=#e0e0e0 guibg=#455a64 guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi! link StatusLineTerm StatusLine
-hi! link StatusLineTermNC StatusLineNC
-hi! link TabLine TabLineFill
-hi TabLineFill ctermfg=240 ctermbg=248 guifg=#455a64 guibg=#aaaaaa guisp=NONE cterm=NONE gui=NONE
-hi TabLineSel ctermfg=238 ctermbg=254 guifg=#37474f guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE
-hi Title ctermfg=236 ctermbg=NONE guifg=#2e3440 guibg=NONE guisp=NONE cterm=NONE,bold gui=NONE,bold
-hi Visual ctermfg=NONE ctermbg=254 guifg=NONE guibg=#e0e0e0 guisp=NONE cterm=NONE gui=NONE
-hi! link VisualNOS Visual
-hi WarningMsg ctermfg=124 ctermbg=NONE guifg=#ae1528 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi WildMenu ctermfg=26 ctermbg=250 guifg=#004bb4 guibg=#bdbdbd guisp=NONE cterm=NONE,bold gui=NONE,bold
-hi! link Boolean Constant
-hi! link Character Constant
-hi Comment ctermfg=242 ctermbg=NONE guifg=#546e7a guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi! link Conditional Statement
-hi Constant ctermfg=35 ctermbg=NONE guifg=#009a5a guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi! link Define PreProc
-hi! link Debug Special
-hi! link Delimiter Special
-hi! link Exception Statement
-hi! link Float Constant
-hi Function ctermfg=30 ctermbg=NONE guifg=#008d9a guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi Identifier ctermfg=26 ctermbg=NONE guifg=#004bb4 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi Ignore ctermfg=fg ctermbg=NONE guifg=fg guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi! link Include PreProc
-hi! link Keyword Statement
-hi! link Label Statement
-hi! link Macro PreProc
-hi! link Number Constant
-hi! link Operator Statement
-hi! link PreCondit PreProc
-hi PreProc ctermfg=30 ctermbg=NONE guifg=#008d9a guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi! link Repeat Statement
-hi! link SpecialChar Special
-hi! link SpecialComment Special
-hi Statement ctermfg=124 ctermbg=NONE guifg=#ae1528 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi! link StorageClass Type
-hi Special ctermfg=208 ctermbg=NONE guifg=#ff8c00 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi! link String Constant
-hi! link Structure Type
-hi! link Tag Special
-hi Todo ctermfg=30 ctermbg=NONE guifg=#008d9a guibg=NONE guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi Type ctermfg=30 ctermbg=NONE guifg=#007681 guibg=NONE guisp=NONE cterm=NONE gui=NONE
-hi! link Typedef Type
-hi Underlined ctermfg=NONE ctermbg=NONE guifg=NONE guibg=NONE guisp=NONE cterm=NONE,underline gui=NONE,underline
-hi! link lCursor Cursor
-hi CursorIM ctermfg=NONE ctermbg=NONE guifg=NONE guibg=NONE guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi ToolbarLine ctermfg=NONE ctermbg=248 guifg=NONE guibg=#aaaaaa guisp=NONE cterm=NONE gui=NONE
-hi ToolbarButton ctermfg=236 ctermbg=248 guifg=#2e3440 guibg=#aaaaaa guisp=NONE cterm=NONE,bold gui=NONE,bold
-if get(g:, "artesanal_italic", 0)
-  hi Comment cterm=italic
-  hi Folded cterm=italic
-  hi SpellBad cterm=italic,underline
-  hi SpellCap cterm=italic,underline
-  hi SpellLocal cterm=italic,underline
-  hi SpellRare cterm=italic,underline
-  hi Todo cterm=italic
+
+if s:t_Co >= 16
+  if &background ==# 'dark'
+    if !has('gui_running') && get(g:, 'artesanal_transp_bg', 0)
+      hi Normal ctermfg=White ctermbg=NONE cterm=NONE
+      hi CursorLineNr ctermfg=Yellow ctermbg=NONE cterm=NONE
+      hi FoldColumn ctermfg=DarkGray ctermbg=NONE cterm=NONE
+      hi SignColumn ctermfg=LightGrey ctermbg=NONE cterm=NONE
+      hi VertSplit ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+    else
+      hi Normal ctermfg=White ctermbg=Black cterm=NONE
+      hi CursorLineNr ctermfg=Yellow ctermbg=Black cterm=NONE
+      hi FoldColumn ctermfg=DarkGray ctermbg=Black cterm=NONE
+      hi SignColumn ctermfg=LightGrey ctermbg=Black cterm=NONE
+      hi VertSplit ctermfg=DarkGrey ctermbg=Black cterm=NONE
+    endif
+    hi ColorColumn ctermfg=NONE ctermbg=Black cterm=NONE
+    hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE
+    hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
+    hi! link CursorColumn ColorColumn
+    hi! link CursorLine ColorColumn
+    hi DiffAdd ctermfg=LightGreen ctermbg=Black cterm=reverse
+    hi DiffAdded ctermfg=LightGreen ctermbg=Black cterm=reverse
+    hi DiffChange ctermfg=LightBlue ctermbg=Black cterm=reverse
+    hi DiffDelete ctermfg=LightRed ctermbg=Black cterm=reverse
+    hi DiffRemoved ctermfg=LightRed ctermbg=Black cterm=reverse
+    hi DiffText ctermfg=LightGreen ctermbg=Black cterm=reverse
+    hi Directory ctermfg=Blue ctermbg=NONE cterm=bold
+    hi EndOfBuffer ctermfg=Black ctermbg=NONE cterm=NONE
+    hi Error ctermfg=Red ctermbg=NONE cterm=bold,reverse
+    hi! link ErrorMsg Error
+    hi Folded ctermfg=DarkGrey ctermbg=Black cterm=NONE
+    hi! link IncSearch Search
+    hi LineNr ctermfg=DarkGrey ctermbg=Black cterm=NONE
+    hi MatchParen ctermfg=NONE ctermbg=DarkGrey cterm=bold
+    hi ModeMsg ctermfg=Blue ctermbg=NONE cterm=NONE
+    hi MoreMsg ctermfg=Green ctermbg=NONE cterm=NONE
+    hi NonText ctermfg=LightGrey ctermbg=NONE cterm=NONE
+    hi Pmenu ctermfg=White ctermbg=DarkGrey cterm=NONE
+    hi PmenuSbar ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+    hi PmenuSel ctermfg=Black ctermbg=LightGrey cterm=bold
+    hi PmenuThumb ctermfg=NONE ctermbg=LightGrey cterm=NONE
+    hi Question ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+    hi! link QuickFixLine Search
+    hi Search ctermfg=LightYellow ctermbg=Black cterm=reverse
+    hi SpecialKey ctermfg=LightGrey ctermbg=NONE cterm=NONE
+    hi SpellBad ctermfg=Red ctermbg=NONE cterm=underline
+    hi SpellCap ctermfg=Blue ctermbg=NONE cterm=underline
+    hi SpellLocal ctermfg=Cyan ctermbg=NONE cterm=underline
+    hi SpellRare ctermfg=Magenta ctermbg=NONE cterm=underline
+    hi StatusLine ctermfg=DarkGrey ctermbg=White cterm=reverse
+    hi StatusLineNC ctermfg=Black ctermbg=LightGrey cterm=reverse
+    hi! link StatusLineTerm StatusLine
+    hi! link StatusLineTermNC StatusLineNC
+    hi! link TabLine TabLineFill
+    hi TabLineFill ctermfg=LightGrey ctermbg=DarkGrey cterm=NONE
+    hi TabLineSel ctermfg=White ctermbg=Black cterm=NONE
+    hi Title ctermfg=White ctermbg=NONE cterm=bold
+    hi Visual ctermfg=NONE ctermbg=Black cterm=NONE
+    hi! link VisualNOS Visual
+    hi WarningMsg ctermfg=Red ctermbg=NONE cterm=NONE
+    hi WildMenu ctermfg=Blue ctermbg=DarkGrey cterm=bold
+    hi! link Boolean Constant
+    hi! link Character Constant
+    hi Comment ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+    hi! link Conditional Statement
+    hi Constant ctermfg=Green ctermbg=NONE cterm=NONE
+    hi! link Define PreProc
+    hi! link Debug Special
+    hi! link Delimiter Special
+    hi! link Exception Statement
+    hi! link Float Constant
+    hi Function ctermfg=Cyan ctermbg=NONE cterm=NONE
+    hi Identifier ctermfg=Blue ctermbg=NONE cterm=NONE
+    hi Ignore ctermfg=fg ctermbg=NONE cterm=NONE
+    hi! link Include PreProc
+    hi! link Keyword Statement
+    hi! link Label Statement
+    hi! link Macro PreProc
+    hi! link Number Constant
+    hi! link Operator Statement
+    hi! link PreCondit PreProc
+    hi PreProc ctermfg=Cyan ctermbg=NONE cterm=NONE
+    hi! link Repeat Statement
+    hi! link SpecialChar Special
+    hi! link SpecialComment Special
+    hi Statement ctermfg=Red ctermbg=NONE cterm=NONE
+    hi! link StorageClass Type
+    hi Special ctermfg=Yellow ctermbg=NONE cterm=NONE
+    hi! link String Constant
+    hi! link Structure Type
+    hi! link Tag Special
+    hi Todo ctermfg=Cyan ctermbg=NONE cterm=reverse
+    hi Type ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+    hi! link Typedef Type
+    hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+    hi! link lCursor Cursor
+    hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse
+    hi ToolbarLine ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+    hi ToolbarButton ctermfg=White ctermbg=DarkGrey cterm=bold
+    hi! link iCursor Cursor
+    hi! link vCursor Cursor
+    hi NormalMode ctermfg=LightGrey ctermbg=Black cterm=reverse
+    hi InsertMode ctermfg=Blue ctermbg=Black cterm=reverse
+    hi ReplaceMode ctermfg=Cyan ctermbg=Black cterm=reverse
+    hi VisualMode ctermfg=Yellow ctermbg=Black cterm=reverse
+    hi CommandMode ctermfg=Magenta ctermbg=Black cterm=reverse
+    hi Warnings ctermfg=Yellow ctermbg=Black cterm=reverse
+    if has('nvim')
+      hi! link TermCursor Cursor
+      hi TermCursorNC ctermfg=Black ctermbg=White cterm=NONE
+    endif
+    unlet s:t_Co s:italics
+    finish
+  endif
+  " Light background
+  if !has('gui_running') && get(g:, 'artesanal_transp_bg', 0)
+    hi Normal ctermfg=Black ctermbg=NONE cterm=NONE
+    hi CursorLineNr ctermfg=Yellow ctermbg=NONE cterm=NONE
+    hi FoldColumn ctermfg=DarkGray ctermbg=NONE cterm=NONE
+    hi SignColumn ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+    hi VertSplit ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+  else
+    hi Normal ctermfg=Black ctermbg=White cterm=NONE
+    hi CursorLineNr ctermfg=Yellow ctermbg=White cterm=NONE
+    hi FoldColumn ctermfg=DarkGray ctermbg=White cterm=NONE
+    hi SignColumn ctermfg=DarkGrey ctermbg=White cterm=NONE
+    hi VertSplit ctermfg=DarkGrey ctermbg=White cterm=NONE
+  endif
+  hi ColorColumn ctermfg=NONE ctermbg=White cterm=NONE
+  hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE
+  hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi! link CursorColumn ColorColumn
+  hi! link CursorLine ColorColumn
+  hi DiffAdd ctermfg=LightGreen ctermbg=Black cterm=reverse
+  hi DiffAdded ctermfg=LightGreen ctermbg=Black cterm=reverse
+  hi DiffChange ctermfg=LightBlue ctermbg=Black cterm=reverse
+  hi DiffDelete ctermfg=LightRed ctermbg=Black cterm=reverse
+  hi DiffRemoved ctermfg=LightRed ctermbg=Black cterm=reverse
+  hi DiffText ctermfg=LightGreen ctermbg=Black cterm=reverse
+  hi Directory ctermfg=Blue ctermbg=NONE cterm=bold
+  hi EndOfBuffer ctermfg=White ctermbg=NONE cterm=NONE
+  hi Error ctermfg=Red ctermbg=NONE cterm=bold,reverse
+  hi! link ErrorMsg Error
+  hi Folded ctermfg=DarkGrey ctermbg=White cterm=NONE
+  hi! link IncSearch Search
+  hi LineNr ctermfg=DarkGrey ctermbg=White cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=LightGrey cterm=bold
+  hi ModeMsg ctermfg=Blue ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=Green ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+  hi Pmenu ctermfg=Black ctermbg=LightGrey cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=LightGrey cterm=NONE
+  hi PmenuSel ctermfg=White ctermbg=DarkGrey cterm=bold
+  hi PmenuThumb ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+  hi Question ctermfg=DarkYellow ctermbg=NONE cterm=NONE
+  hi! link QuickFixLine Search
+  hi Search ctermfg=LightYellow ctermbg=Black cterm=reverse
+  hi SpecialKey ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=Red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=Blue ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=Cyan ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=Magenta ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=LightGrey ctermbg=Black cterm=reverse
+  hi StatusLineNC ctermfg=White ctermbg=DarkGrey cterm=reverse
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi! link TabLine TabLineFill
+  hi TabLineFill ctermfg=DarkGrey ctermbg=DarkGrey cterm=NONE
+  hi TabLineSel ctermfg=Black ctermbg=White cterm=NONE
+  hi Title ctermfg=Black ctermbg=NONE cterm=bold
+  hi Visual ctermfg=NONE ctermbg=White cterm=NONE
+  hi! link VisualNOS Visual
+  hi WarningMsg ctermfg=Red ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=Blue ctermbg=LightGrey cterm=bold
+  hi! link Boolean Constant
+  hi! link Character Constant
+  hi Comment ctermfg=DarkGrey ctermbg=NONE cterm=NONE
+  hi! link Conditional Statement
+  hi Constant ctermfg=Green ctermbg=NONE cterm=NONE
+  hi! link Define PreProc
+  hi! link Debug Special
+  hi! link Delimiter Special
+  hi! link Exception Statement
+  hi! link Float Constant
+  hi Function ctermfg=Cyan ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=Blue ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=fg ctermbg=NONE cterm=NONE
+  hi! link Include PreProc
+  hi! link Keyword Statement
+  hi! link Label Statement
+  hi! link Macro PreProc
+  hi! link Number Constant
+  hi! link Operator Statement
+  hi! link PreCondit PreProc
+  hi PreProc ctermfg=Cyan ctermbg=NONE cterm=NONE
+  hi! link Repeat Statement
+  hi! link SpecialChar Special
+  hi! link SpecialComment Special
+  hi Statement ctermfg=Red ctermbg=NONE cterm=NONE
+  hi! link StorageClass Type
+  hi Special ctermfg=Yellow ctermbg=NONE cterm=NONE
+  hi! link String Constant
+  hi! link Structure Type
+  hi! link Tag Special
+  hi Todo ctermfg=Cyan ctermbg=NONE cterm=reverse
+  hi Type ctermfg=DarkCyan ctermbg=NONE cterm=NONE
+  hi! link Typedef Type
+  hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+  hi! link lCursor Cursor
+  hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi ToolbarLine ctermfg=NONE ctermbg=DarkGrey cterm=NONE
+  hi ToolbarButton ctermfg=Black ctermbg=DarkGrey cterm=bold
+  hi! link iCursor Cursor
+  hi! link vCursor Cursor
+  hi NormalMode ctermfg=DarkGrey ctermbg=White cterm=reverse
+  hi InsertMode ctermfg=Blue ctermbg=White cterm=reverse
+  hi ReplaceMode ctermfg=Cyan ctermbg=White cterm=reverse
+  hi VisualMode ctermfg=Yellow ctermbg=White cterm=reverse
+  hi CommandMode ctermfg=Magenta ctermbg=White cterm=reverse
+  hi Warnings ctermfg=Yellow ctermbg=White cterm=reverse
+  if has('nvim')
+    hi! link TermCursor Cursor
+    hi TermCursorNC ctermfg=White ctermbg=Black cterm=NONE
+  endif
+  unlet s:t_Co s:italics
+  finish
 endif
-hi! link iCursor Cursor
-hi! link vCursor Cursor
-hi NormalMode ctermfg=240 ctermbg=255 guifg=#455a64 guibg=#eaeaeb guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi InsertMode ctermfg=26 ctermbg=255 guifg=#004bb4 guibg=#eaeaeb guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi ReplaceMode ctermfg=30 ctermbg=255 guifg=#008d9a guibg=#eaeaeb guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi VisualMode ctermfg=208 ctermbg=255 guifg=#ff8c00 guibg=#eaeaeb guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi CommandMode ctermfg=127 ctermbg=255 guifg=#b300a4 guibg=#eaeaeb guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-hi Warnings ctermfg=208 ctermbg=255 guifg=#ff8c00 guibg=#eaeaeb guisp=NONE cterm=NONE,reverse gui=NONE,reverse
-let g:terminal_ansi_colors = [
-      \ '#eaeaeb',
-      \ '#ae1528',
-      \ '#009a5a',
-      \ '#ff8c00',
-      \ '#004bb4',
-      \ '#b300a4',
-      \ '#008d9a',
-      \ '#2e3440',
-      \ '#eaeaeb',
-      \ '#ae1528',
-      \ '#009a5a',
-      \ '#ff8c00',
-      \ '#004bb4',
-      \ '#b300a4',
-      \ '#008d9a',
-      \ '#455a64'
-      \ ]
-hi! link TermCursor Cursor
-hi TermCursorNC ctermfg=254 ctermbg=238 guifg=#e0e0e0 guibg=#37474f guisp=NONE cterm=NONE gui=NONE
-finish
 
+" Variant:         gui 256 16
 " Background: light
-" Color: fg0 #2e3440 ~
-" Color: fg1 #37474f ~
-" Color: fg2 #455a64 ~
-" Color: fg3 #546e7a ~
-" Color: fg4 #90a4ae ~
-" Color: bg0 #eaeaeb ~
-" Color: bg1 #e0e0e0 ~
-" Color: bg2 #bdbdbd ~
-" Color: bg3 #aaaaaa ~
-" Color: bg4 #707070 ~
+" Variant:   gui     256 16
+" Color: fg0 #2e3440 ~   Black
+" Color: fg1 #37474f ~   Black
+" Color: fg2 #455a64 ~   DarkGrey
+" Color: fg3 #546e7a ~   DarkGrey
+" Color: fg4 #90a4ae ~   LightGrey
+" Color: bg0 #eff1f4 ~   White
+" Color: bg1 #e4e6eb ~   White
+" Color: bg2 #cdd2db ~   LightGrey
+" Color: bg3 #b6bdcb ~   DarkGrey
+" Color: bg4 #9fa8ba ~   DarkGrey
 " Color: black                #121419     ~        Black
 " Color: darkgray             #575c66     ~        DarkGray
 " Color: red                  #ae1528     ~        Red
@@ -324,18 +794,23 @@ finish
 " Color: cyan                 #008d9a     ~        Cyan
 " Color: brightcyan           #00d3e7     ~        LightCyan
 " Color: darkcyan             #007681     ~        DarkCyan
-" Color: white                #eaeaeb     ~        Gainsboro
+" Color: white                #eff1f4     ~        White
 " Color: brightwhite          #ffffff     ~        White
+" Term Colors: black darkred darkgreen darkyellow darkblue darkmagenta darkcyan white
+" Term Colors: darkgray red green yellow blue magenta cyan brightwhite
+" if !has('gui_running') && get(g:, '@optionprefix_transp_bg', 0)
 "   Normal       fg1           none
 "   CursorLineNr yellow        none
 "   FoldColumn   darkgray      none
 "   SignColumn   fg2           none
 "   VertSplit    bg3           none
+" else
 "   Normal       fg1           bg0
 "   CursorLineNr yellow        bg1
 "   FoldColumn   darkgray      bg1
 "   SignColumn   fg2           bg1
 "   VertSplit    bg3           bg0
+" endif
 " ColorColumn                      none         bg1
 " Conceal                          blue         none
 " Cursor                           none         none    reverse
@@ -428,19 +903,20 @@ finish
 " VisualMode                       yellow       bg0     reverse
 " CommandMode                      magenta      bg0     reverse
 " Warnings                         yellow       bg0     reverse
-" TermCursor        -> Cursor
-" TermCursorNC         bg1            fg1
+" TermCursor                    -> Cursor
+" TermCursorNC                     bg1          fg1
 " Background: dark
-" Color: fg0 #eaeaeb ~
-" Color: fg1 #e0e0e0 ~
-" Color: fg2 #bdbdbd ~
-" Color: fg3 #9e9e9e ~
-" Color: fg4 #707070 ~
-" Color: bg0 #2e3440 ~
-" Color: bg1 #37474f ~
-" Color: bg2 #455a64 ~
-" Color: bg3 #546e7a ~
-" Color: bg4 #90a4ae ~
+" Variant:   gui     256 16
+" Color: fg0 #eff1f4 ~   White
+" Color: fg1 #e4e6eb ~   White
+" Color: fg2 #cdd2db ~   LightGrey
+" Color: fg3 #b6bdcb ~   DarkGrey
+" Color: fg4 #9fa8ba ~   DarkGrey
+" Color: bg0 #2e3440 ~   Black
+" Color: bg1 #37474f ~   Black
+" Color: bg2 #455a64 ~   DarkGrey
+" Color: bg3 #546e7a ~   DarkGrey
+" Color: bg4 #90a4ae ~   LightGrey
 " Color: black                #121419     ~        Black
 " Color: darkgray             #575c66     ~        DarkGray
 " Color: red                  #e84256     ~        Red
@@ -461,18 +937,23 @@ finish
 " Color: cyan                 #00bbcc     ~        Cyan
 " Color: brightcyan           #99eaea     ~        LightCyan
 " Color: darkcyan             #0095a3     ~        DarkCyan
-" Color: white                #eaeaeb     ~        Gainsboro
+" Color: white                #eff1f4     ~        White
 " Color: brightwhite          #ffffff     ~        White
+" Term Colors: darkgray red green yellow blue magenta cyan brightwhite
+" Term Colors: black darkred darkgreen darkyellow darkblue darkmagenta darkcyan white
+" if !has('gui_running') && get(g:, '@optionprefix_transp_bg', 0)
 "   Normal       fg1           none
 "   CursorLineNr yellow        none
 "   FoldColumn   darkgray      none
 "   SignColumn   fg2           none
 "   VertSplit    bg3           none
+" else
 "   Normal       fg1           bg0
 "   CursorLineNr yellow        bg1
 "   FoldColumn   darkgray      bg1
 "   SignColumn   fg2           bg1
 "   VertSplit    bg3           bg0
+" endif
 " ColorColumn                      none         bg1
 " Conceal                          blue         none
 " Cursor                           none         none    reverse
@@ -565,5 +1046,5 @@ finish
 " VisualMode                       yellow       bg0     reverse
 " CommandMode                      magenta      bg0     reverse
 " Warnings                         yellow       bg0     reverse
-" TermCursor        -> Cursor
-" TermCursorNC         bg1            fg1
+" TermCursor                    -> Cursor
+" TermCursorNC                     bg1          fg1