fix(colorscheme): default statusline groups usability #26921

Problem: Current values of `StatusLine` and `StatusLineNC` are currently
  designed to be visually distinctive while being not intrusive.
  However, the compromise was more shifted towards "not intrusive".
  After the feedback, statusline highlight groups should be designed to:
  - Make current window clearly noticeable. Meaning `StatusLine` and
    `StatusLineNC` should obviously differ.
  - Make non-current windows clearly separable. Meaning `StatusLineNC`
    and `Normal`/`NormalNC` should obviously differ.

Solution:
  - Update `StatusLineNC` to have more visible background.
  - Update `StatusLine` to be inverted variant of `StatusLineNC`.
  - Update `WinBar` and `WinBarNC` to not link to `StatusLine` and
    `StatusLineNC` because it makes two goals harder to achieve.
  - Update `TabLine` to link to `StatusLineNC` instead of `StatusLine`
    to not be very visually intrusive.
This commit is contained in:
Evgeni Chasnovski 2024-01-14 02:35:37 +02:00 committed by GitHub
parent bab5e7fe17
commit 0c850add3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 10 deletions

View File

@ -99,8 +99,8 @@ The following changes may require adaptations in user config or plugins.
a meaningfully different way and might need an update:
• |hl-FloatBorder| is linked to |hl-NormalFloat| instead of |hl-WinSeparator|.
• |hl-NormalFloat| is not linked to |hl-Pmenu|.
• |hl-WinBar| is linked to |hl-StatusLine|.
• |hl-WinBarNC| is linked to |hl-StatusLineNC| instead of |hl-WinBar|.
• |hl-WinBar| has different background.
• |hl-WinBarNC| is similar to |hl-WinBar| but not bold.
• |hl-WinSeparator| is linked to |hl-Normal| instead of |hl-VertSplit|.
This also might result into some color schemes looking differently due to

View File

@ -178,15 +178,13 @@ static const char *highlight_init_both[] = {
"default link PmenuKindSel PmenuSel",
"default link PmenuSbar Pmenu",
"default link Substitute Search",
"default link TabLine StatusLine",
"default link TabLine StatusLineNC",
"default link TabLineFill TabLine",
"default link TermCursorNC NONE",
"default link VertSplit WinSeparator",
"default link VisualNOS Visual",
"default link Whitespace NonText",
"default link WildMenu PmenuSel",
"default link WinBar StatusLine",
"default link WinBarNC StatusLineNC",
"default link WinSeparator Normal",
// Syntax
@ -351,10 +349,12 @@ static const char *highlight_init_light[] = {
"SpellCap guisp=NvimDarkYellow gui=undercurl cterm=undercurl",
"SpellLocal guisp=NvimDarkGreen gui=undercurl cterm=undercurl",
"SpellRare guisp=NvimDarkCyan gui=undercurl cterm=undercurl",
"StatusLine guifg=NvimDarkGrey3 guibg=NvimLightGrey1 cterm=reverse",
"StatusLineNC guifg=NvimDarkGrey4 guibg=NvimLightGrey1 cterm=bold",
"StatusLine guifg=NvimLightGrey3 guibg=NvimDarkGrey3 cterm=reverse",
"StatusLineNC guifg=NvimDarkGrey3 guibg=NvimLightGrey3 cterm=bold",
"Visual guibg=NvimLightGrey4 ctermfg=15 ctermbg=0",
"WarningMsg guifg=NvimDarkYellow ctermfg=3",
"WinBar guifg=NvimDarkGrey4 guibg=NvimLightGrey1 gui=bold cterm=bold",
"WinBarNC guifg=NvimDarkGrey4 guibg=NvimLightGrey1 cterm=bold",
// Syntax
"Comment guifg=NvimDarkGrey4",
@ -423,10 +423,12 @@ static const char *highlight_init_dark[] = {
"SpellCap guisp=NvimLightYellow gui=undercurl cterm=undercurl",
"SpellLocal guisp=NvimLightGreen gui=undercurl cterm=undercurl",
"SpellRare guisp=NvimLightCyan gui=undercurl cterm=undercurl",
"StatusLine guifg=NvimLightGrey3 guibg=NvimDarkGrey1 cterm=reverse",
"StatusLineNC guifg=NvimLightGrey4 guibg=NvimDarkGrey1 cterm=bold",
"StatusLine guifg=NvimDarkGrey3 guibg=NvimLightGrey3 cterm=reverse",
"StatusLineNC guifg=NvimLightGrey3 guibg=NvimDarkGrey3 cterm=bold",
"Visual guibg=NvimDarkGrey4 ctermfg=0 ctermbg=15",
"WarningMsg guifg=NvimLightYellow ctermfg=11",
"WinBar guifg=NvimLightGrey4 guibg=NvimDarkGrey1 gui=bold cterm=bold",
"WinBarNC guifg=NvimLightGrey4 guibg=NvimDarkGrey1 cterm=bold",
// Syntax
"Comment guifg=NvimLightGrey4",

View File

@ -26,7 +26,7 @@ local function test_embed(ext_linegrid)
[3] = { bold = true, foreground = Screen.colors.Blue1 },
[4] = { bold = true, foreground = Screen.colors.Green },
[5] = { bold = true, reverse = true },
[6] = { foreground = Screen.colors.NvimDarkGrey3, background = Screen.colors.NvimLightGrey1 },
[6] = { foreground = Screen.colors.NvimLightGrey3, background = Screen.colors.NvimDarkGrey3 },
[7] = { foreground = Screen.colors.NvimDarkRed },
[8] = { foreground = Screen.colors.NvimDarkCyan },
})