diff --git a/colors/gruvbox.vim b/colors/gruvbox.vim index ffa284b3..c2d68dbf 100644 --- a/colors/gruvbox.vim +++ b/colors/gruvbox.vim @@ -67,6 +67,8 @@ endif if !exists('g:gruvbox_contrast') let g:gruvbox_contrast='medium' +else + echo 'g:gruvbox_contrast is deprecated; use g:gruvbox_contrast_light and g:gruvbox_contrast_dark instead' endif if !exists('g:gruvbox_contrast_dark') @@ -82,6 +84,58 @@ let s:is_dark=(&background == 'dark') " }}} " Palette: {{{ +" setup palette dictionary +let s:gb = {} + +" fill it with absolute colors +let s:gb.dark0_hard = ['#1d2021', 234] " 29-32-33 +let s:gb.dark0 = ['#282828', 235] " 40-40-40 +let s:gb.dark0_soft = ['#32302f', 236] " 50-48-47 +let s:gb.dark1 = ['#3c3836', 237] " 60-56-54 +let s:gb.dark2 = ['#504945', 239] " 80-73-69 +let s:gb.dark3 = ['#665c54', 241] " 102-92-84 +let s:gb.dark4 = ['#7c6f64', 243] " 124-111-100 +let s:gb.dark4_256 = ['#7c6f64', 243] " 124-111-100 + +let s:gb.gray_245 = ['#928374', 245] " 146-131-116 +let s:gb.gray_244 = ['#928374', 244] " 146-131-116 + +let s:gb.light0_hard = ['#f9f5d7', 230] " 249-245-215 +let s:gb.light0 = ['#fdf4c1', 229] " 253-244-193 +let s:gb.light0_soft = ['#f2e5bc', 228] " 242-229-188 +let s:gb.light1 = ['#ebdbb2', 223] " 235-219-178 +let s:gb.light2 = ['#d5c4a1', 250] " 213-196-161 +let s:gb.light3 = ['#bdae93', 248] " 189-174-147 +let s:gb.light4 = ['#a89984', 246] " 168-153-132 +let s:gb.light4_256 = ['#a89984', 246] " 168-153-132 + +let s:gb.bright_red = ['#fb4934', 167] " 251-73-52 +let s:gb.bright_green = ['#b8bb26', 142] " 184-187-38 +let s:gb.bright_yellow = ['#fabd2f', 214] " 250-189-47 +let s:gb.bright_blue = ['#83a598', 109] " 131-165-152 +let s:gb.bright_purple = ['#d3869b', 175] " 211-134-155 +let s:gb.bright_aqua = ['#8ec07c', 108] " 142-192-124 +let s:gb.bright_orange = ['#fe8019', 208] " 254-128-25 + +let s:gb.neutral_red = ['#cc241d', 124] " 204-36-29 +let s:gb.neutral_green = ['#98971a', 106] " 152-151-26 +let s:gb.neutral_yellow = ['#d79921', 172] " 215-153-33 +let s:gb.neutral_blue = ['#458588', 66] " 69-133-136 +let s:gb.neutral_purple = ['#b16286', 132] " 177-98-134 +let s:gb.neutral_aqua = ['#689d6a', 72] " 104-157-106 +let s:gb.neutral_orange = ['#d65d0e', 166] " 214-93-14 + +let s:gb.faded_red = ['#9d0006', 88] " 157-0-6 +let s:gb.faded_green = ['#79740e', 100] " 121-116-14 +let s:gb.faded_yellow = ['#b57614', 136] " 181-118-20 +let s:gb.faded_blue = ['#076678', 24] " 7-102-120 +let s:gb.faded_purple = ['#8f3f71', 96] " 143-63-113 +let s:gb.faded_aqua = ['#427b58', 66] " 66-123-88 +let s:gb.faded_orange = ['#af3a03', 130] " 175-58-3 + +" }}} +" Setup Emphasis: {{{ + let s:bold = 'bold,' if g:gruvbox_bold == 0 let s:bold = '' @@ -107,112 +161,118 @@ if g:gruvbox_inverse == 0 let s:inverse = '' endif +" }}} +" Setup Colors: {{{ + +" determine relative colors if s:is_dark - let s:bg0 = ['#282828', 235] " 40-40-40 - let s:bg1 = ['#3c3836', 237] " 60-56-54 - let s:bg2 = ['#504945', 239] " 80-73-69 - let s:bg3 = ['#665c54', 241] " 102-92-84 - let s:bg4 = ['#7c6f64', 243] " 124-111-100 - - let s:gray = ['#928374', 245] " 146-131-116 - - let s:fg0 = ['#fbf1c7', 229] " 251-241-199 - let s:fg1 = ['#ebdbb2', 223] " 235-219-178 - let s:fg2 = ['#d5c4a1', 250] " 213-196-161 - let s:fg3 = ['#bdae93', 248] " 189-174-147 - let s:fg4 = ['#a89984', 246] " 168-153-132 - - let s:fg4_256 = ['#a89984', 246] " 168-153-132 - - let s:red = ['#fb4934', 167] " 251-73-52 - let s:green = ['#b8bb26', 142] " 184-187-38 - let s:yellow = ['#fabd2f', 214] " 250-189-47 - let s:blue = ['#83a598', 109] " 131-165-152 - let s:purple = ['#d3869b', 175] " 211-134-155 - let s:aqua = ['#8ec07c', 108] " 142-192-124 - let s:orange = ['#fe8019', 208] " 254-128-25 - - if g:gruvbox_termcolors == 16 - let s:bg0 = ['#282828', 0] - let s:fg4 = ['#a89984', 7] - let s:gray = ['#928374', 8] - let s:red = ['#fb4934', 9] - let s:green = ['#b8bb26', 10] - let s:yellow = ['#fabd2f', 11] - let s:blue = ['#83a598', 12] - let s:purple = ['#d3869b', 13] - let s:aqua = ['#8ec07c', 14] - let s:fg1 = ['#ebdbb2', 15] - endif - - if g:gruvbox_contrast == 'soft' - let s:bg0 = ['#32302f', 236] " 50-48-47 - elseif g:gruvbox_contrast == 'hard' - let s:bg0 = ['#1d2021', 234] " 29-32-33 - endif - + let s:bg0 = s:gb.dark0 if g:gruvbox_contrast_dark == 'soft' - let s:bg0 = ['#32302f', 236] " 50-48-47 + let s:bg0 = s:gb.dark0_soft elseif g:gruvbox_contrast_dark == 'hard' - let s:bg0 = ['#1d2021', 234] " 29-32-33 + let s:bg0 = s:gb.dark0_hard endif + + let s:bg1 = s:gb.dark1 + let s:bg2 = s:gb.dark2 + let s:bg3 = s:gb.dark3 + let s:bg4 = s:gb.dark4 + + let s:gray = s:gb.gray_245 + + let s:fg0 = s:gb.light0 + let s:fg1 = s:gb.light1 + let s:fg2 = s:gb.light2 + let s:fg3 = s:gb.light3 + let s:fg4 = s:gb.light4 + + let s:fg4_256 = s:gb.light4_256 + + let s:red = s:gb.bright_red + let s:green = s:gb.bright_green + let s:yellow = s:gb.bright_yellow + let s:blue = s:gb.bright_blue + let s:purple = s:gb.bright_purple + let s:aqua = s:gb.bright_aqua + let s:orange = s:gb.bright_orange else - let s:bg0 = ['#fbf1c7', 229] " 251-241-199 - let s:bg1 = ['#ebdbb2', 223] " 235-219-178 - let s:bg2 = ['#d5c4a1', 250] " 213-196-161 - let s:bg3 = ['#bdae93', 248] " 189-174-147 - let s:bg4 = ['#a89984', 246] " 168-153-132 - - let s:gray = ['#928374', 244] " 146-131-116 - - let s:fg0 = ['#282828', 235] " 40-40-40 - let s:fg1 = ['#3c3836', 237] " 60-56-54 - let s:fg2 = ['#504945', 239] " 80-73-69 - let s:fg3 = ['#665c54', 241] " 102-92-84 - let s:fg4 = ['#7c6f64', 243] " 124-111-100 - - let s:fg4_256 = ['#7c6f64', 243] " 124-111-100 - - let s:red = ['#9d0006', 88] " 157-0-6 - let s:green = ['#79740e', 100] " 121-116-14 - let s:yellow = ['#b57614', 136] " 181-118-20 - let s:blue = ['#076678', 24] " 7-102-120 - let s:purple = ['#8f3f71', 96] " 143-63-113 - let s:aqua = ['#427b58', 66] " 66-123-88 - let s:orange = ['#af3a03', 130] " 175-58-3 - - if g:gruvbox_termcolors == 16 - let s:bg0 = ['#fbf1c7', 0] - let s:fg4 = ['#7c6f64', 7] - let s:gray = ['#928374', 8] - let s:red = ['#9d0006', 9] - let s:green = ['#79740e', 10] - let s:yellow = ['#b57614', 11] - let s:blue = ['#076678', 12] - let s:purple = ['#8f3f71', 13] - let s:aqua = ['#427b58', 14] - let s:fg1 = ['#3c3836', 15] - endif - - if g:gruvbox_contrast == 'soft' - let s:bg0 = ['#f2e5bc', 228] " 242-229-188 - elseif g:gruvbox_contrast == 'hard' - let s:bg0 = ['#f9f5d7', 230] " 249-245-215 - endif - + let s:bg0 = s:gb.light0 if g:gruvbox_contrast_light == 'soft' - let s:bg0 = ['#f2e5bc', 228] " 242-229-188 + let s:bg0 = s:gb.light0_soft elseif g:gruvbox_contrast_light == 'hard' - let s:bg0 = ['#f9f5d7', 230] " 249-245-215 + let s:bg0 = s:gb.light0_hard endif + + let s:bg1 = s:gb.light1 + let s:bg2 = s:gb.light2 + let s:bg3 = s:gb.light3 + let s:bg4 = s:gb.light4 + + let s:gray = s:gb.gray_244 + + let s:fg0 = s:gb.dark0 + let s:fg1 = s:gb.dark1 + let s:fg2 = s:gb.dark2 + let s:fg3 = s:gb.dark3 + let s:fg4 = s:gb.dark4 + + let s:fg4_256 = s:gb.dark4_256 + + let s:red = s:gb.faded_red + let s:green = s:gb.faded_green + let s:yellow = s:gb.faded_yellow + let s:blue = s:gb.faded_blue + let s:purple = s:gb.faded_purple + let s:aqua = s:gb.faded_aqua + let s:orange = s:gb.faded_orange endif +" reset to 16 colors fallback +if g:gruvbox_termcolors == 16 + let s:bg0[1] = 0 + let s:fg4[1] = 7 + let s:gray[1] = 8 + let s:red[1] = 9 + let s:green[1] = 10 + let s:yellow[1] = 11 + let s:blue[1] = 12 + let s:purple[1] = 13 + let s:aqua[1] = 14 + let s:fg1[1] = 15 +endif + +" save current relative colors back to palette dictionary +let s:gb.bg0 = s:bg0 +let s:gb.bg1 = s:bg1 +let s:gb.bg2 = s:bg2 +let s:gb.bg3 = s:bg3 +let s:gb.bg4 = s:bg4 + +let s:gb.gray = s:gray + +let s:gb.fg0 = s:fg0 +let s:gb.fg1 = s:fg1 +let s:gb.fg2 = s:fg2 +let s:gb.fg3 = s:fg3 +let s:gb.fg4 = s:fg4 + +let s:gb.fg4_256 = s:fg4_256 + +let s:gb.red = s:red +let s:gb.green = s:green +let s:gb.yellow = s:yellow +let s:gb.blue = s:blue +let s:gb.purple = s:purple +let s:gb.aqua = s:aqua +let s:gb.orange = s:orange + " }}} + " Overload Setting: {{{ let s:hls_cursor = s:orange if exists('g:gruvbox_hls_cursor') - let s:hls_cursor = g:gruvbox_hls_cursor + let s:hls_cursor = get(s:gb, g:gruvbox_hls_cursor) endif let s:number_column = s:bg4 @@ -225,18 +285,18 @@ else let g:gitgutter_override_sign_column_highlight = 0 if exists('g:gruvbox_sign_column') - let s:sign_column = g:gruvbox_sign_column + let s:sign_column = get(s:gb, g:gruvbox_sign_column) endif endif let s:color_column = s:bg1 if exists('g:gruvbox_color_column') - let s:color_column = g:gruvbox_color_column + let s:color_column = get(s:gb, g:gruvbox_color_column) endif let s:vert_split = s:bg2 if exists('g:gruvbox_vert_split') - let s:vert_split = g:gruvbox_vert_split + let s:vert_split = get(s:gb, g:gruvbox_vert_split) endif let s:invert_signs = ''