New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Default color scheme follow up #26369
Comments
I've been using "light cyan" for Special. We can use variations of green/blue/gray where we need distinction. No need to add a color to the palette. |
Thanks a lot for working on this. Not sure if this is the right place, but here are some minor issues I encountered
Fixing these may not align with minimalism, but I think it would be quite useful. |
Using any other color outside of @tomtomjhj, thanks!
|
Ok, noted.
Of course, there are variations in between present green-cyan-blue. The problem is to make a color that is substantially different from others. It is easy to do if they are always used besides each other in space or time (like for Another idea to consider for at least |
I think having |
This comment was marked as resolved.
This comment was marked as resolved.
Using bold text for keywords is intentional to show structure without use of color, which matters for accessibility.
That seems to be the matter of taste, really. It seems better to me to not have permanent line which stands out too much. Between two neighbors of
To reduce subjectivity, all grey values of UI were tested to have enough lightness contrast ratio. Besides, lightness of background was taken from the reference color scheme at the time.
Comment should be less visible than text, but still distinguishable. It has contrast ratio of 6.3 for dark color scheme which is passable (should be at least 4.5).
For me having |
My opinion on this is purely subjective as I lack any knowledge of color theory, but I personally find that the default background on both the light/dark themes lack contrast. I think increasing contrast for both backgrounds would be a big improvement. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Introducing more contrast is not really a problem. I had reference lightness values being equal to I am not really a fan having floating windows having lighter background (for dark variant), as I outlined in this comment. Of course, it is doable, just something I can't consider being a good UI. |
Not to gainsay you, but this is a general issue with how Vim uses the default highlight groups for syntax groups -- for many languages, This is one reason why we're doing things differently with treesitter and I'm keen on revisiting these default groups, lessons learned. If anything, this experience shows that things were only working by accident (meaning, links chosen with the default colorscheme in mind, and colorschemes paper over this by (re)defining ALL the syntax-specific groups). |
Just as a side note. I plan to have this for at least a week to gather feedback (at least until after Neovimconf) and make a follow up PR addressing the least controversial changes. |
My understanding of However, I don't think this is a big issue to revert back to the previous behavior. I'll add it to the list. Thanks for pointing out! |
This comment was marked as off-topic.
This comment was marked as off-topic.
As answered above, if you have your cursor set to be that color by terminal emulator, then it should be tweaked in its config. For example, I prefer using cursor coloring which inverts the highlights under cursor, with which there is no such problem. |
@towry If the terminal emulator supports it, most do, you can do: vim.opt.guicursor:append({'a:Cursor'}) And now the cursor will obey what -- Use `:hi Cursor` as default hl-group to cursor in (a)ll modes
vim.opt.guicursor:append({'a:Cursor'})
-- Works in most terminal emulators - always works in GUI
vim.cmd[[hi! Cursor guibg=Magenta]] |
Is there a way to avoid the change of the background transparency on nightly to the previous behavior? During startup I can first see black background which jumps later to transparent. Or is it something planned for this follow up? |
Awesome theme! I did notice one thing that might need a slight tweak. Seems like Notice the |
Please see above; the non-basic (LSP and treesitter groups) are still todo. There will be a dedicated PR for this that people can test and then suggest improvements. |
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
I think we can consider the user-facing side (that should be in 0.10) complete; the remaining issues are follow-ups that can go into 0.11 (or be backported if necessary). Thank you @echasnovski for all your tireless work on this! (And feel free to close this now if you don't think you'll need a dedicated tracking issue for the test changes.) |
This is a tracking/roadmap issue for follow-up work after #26334. It is meant more about discussing what should be done with more details inside dedicated issues (if necessary).
Tweak default highlight groups based on the feedback. I am not sure it is a good idea to deviate too much from "be minimal and green-blue" requirement, but at least concious consideration should be done here. Some early feedback:
Issues addressed in feat(highlight): tweak default color scheme #26540
Consider changing base lightness values of grey colors to increase contrast. Maybe something like
{ 4, 8, 16, 32 }
(very high contrast) or{ 5, 10, 20, 30 }
(slightly less increase in contrast forNormal
but significantly more forComment
) can work.It also seems important to not lean too much into "high contrast" territory, as it is also not an average good UI. Just enough to make it accessible (even more than now) should be good.
Use 0-15 colors for
cterm
attributes after feat(defaults): enable 'termguicolors' by default when supported by terminal #26407 is merged. This allows both to have good experience withnvim --clean
for new users and respect terminal colors for anyone who wants/needs it. See feat: only use cterm0-15 for notgc #26389.Right now
Special
highlight group is the same as Normal. It is a relatively highly linked highlight group, but so isIdentifier
. As there are only cyan and blue available (green is for strings) I decided to leaveSpecial
unhighlighted. It can be made magenta or bold blue/cyan; both don't look quite minimal to me, though.Or just cyan as it might be better to be highlighted as something than not be highlighted at all (as per this comment).
Use any attribute only when they are intended to be different. Example: revert
DiagnosticFloating*
back to link toDiagnostic*
. Also maybe all "base" syntax groups (Constant
,Statement
,PreProc
,Type
) and similar that are intended to "not be extra highlighted".Make
EndOfBuffer
different fromWhitespace
as per this comment.Make
QuickFixLine
blue or cyan (as per this comment).Maybe make
Search
,CurSearch
, andIncSearch
be actually different. Ideas: makeCurSearch
have bold foreground; makeCurSearch
be theSearch
from other dark/light variant (so for dark it would haveNvimLightYellow
as background andNvimDarkGrey1
as foreground).Consider removing these lines from 'runtime/colors/default.vim' as they don't do in Neovim what they claim to do. They reset
'bg'
back to default which is 'dark'. This breaks if there is aset bg=light
followed by:colorscheme default
.Consider reverting
WinSeparator
to depend onVertSplit
. It might be better for Vim's color scheme compatibility. But since the latter was deprecated in 0.8.0, it seems to be a good opportunity to pull the plug now.Update 'runtime/colors/vim.vim' for
Visual
to havecterm
values. See:colorscheme vim
sets no cterm highlight forVisual
#26468.Address statusline usability. See fix(colorscheme): default statusline groups usability #26921.
Address
IncSearch
behavior. See fix(highlight): updateIncSearch
to link toCurSearch
#26922.Don't create cleared highlight groups (as now are "core" syntax groups,Statement
,@variable
, etc.). This doesn't quite work with@
-highlight groups due to their fallback. Example: cleared groups fall back to@text.literal.block.markdown
which falls back to@text.literal
which is linked toComment
.Solution: define those explicitly to have
Normal
foreground and no background.Addressed in Tweak treesitter groups in default color scheme #27188.
Add proper terminal colors for built-in terminal. Right now they are inherited from terminal emulator (except background and foreground), but it doesn't seem right and can lead to not really usable built-in terminal.Tracked in Change default built-in terminal colors #26857.
Consider tweaking built-in tree-sitter and LSP highlight groups. Both defaults (tried to not alter them at all) and maybe for filetypes with built-in tree-sitter parsers (Lua, C, vimdoc, markdown). Related/blocker: Tracking issue: Moving towards Helix captures nvim-treesitter/nvim-treesitter#4799.
Look into redoing default links so that@
highlight groups mostly link to themselves. Exceptions are the "core" ones which should link to Vim's group (not breaking) or be defined with colors while Vim's group link to them instead (major breaking for Vim's color schemes).Addressed in Tweak treesitter groups in default color scheme #27188 and fix(colorscheme): link LSP semantic token groups to treesitter groups #22981.
Consider tweaking filetype plugin highlight groups. One notable example is 'diff' as it linksdiffRemoved
toSpecial
(diff*
) making patches look unhighlighted (removed) and blue (added).Addressed in f46ae13.
~ Fix bundled colorschemes by adding
colorscheme vim
afterhi clear
. ~ Addressed in fix(runtime): revert to Vim's color scheme in bundled color schemes #26641Update tests to use new color scheme instead of relying onTracked in Update tests to use default color scheme #28601colorscheme vim
. I am committed to doing it after all highlight groups are settled and some screen test behavior is confirmed to be ok (like using new indexes for attributes instead of replacing previous ones).The text was updated successfully, but these errors were encountered: