cideM / yui

A minimal Vim/Neovim color scheme inspired by Dieter Rams
MIT License
135 stars 6 forks source link

Version 1 Rewrite #20

Closed cideM closed 3 years ago

cideM commented 3 years ago

I've created a branch on which I'm reimplementing large parts of this color scheme. It will keep its overall brownish vibe from the Rams notebook but it'll be a bit less brown. Here's what I have in mind:

All of these are just ideas so far. I'll post updates and screenshots in this issue. Feel free to chime in! All feedback is appreciated.

One of the most important things I'm playing around with right now are comments. I really don't t like the orange I have on master and I'm considering giving them a certain background shade. Only italic is also an option but that's easy to miss maybe? Although it would have a certain minimalistic appeal if comments had only italic text and nothing else 🥥

cideM commented 3 years ago
Screen Shot 2021-01-06 at 21 07 12 Screen Shot 2021-01-06 at 21 07 18
eemed commented 3 years ago

I tested the v2 branch here are my experiences:

Some further ideas since we are rewriting:

Also the previous emphasized Comment orange was beautiful maybe you can reuse it.

cideM commented 3 years ago

Thanks for the feedback!

Also the previous emphasized Comment orange was beautiful maybe you can reuse it.

This won't work because it really doesn't work when using redshift/flux/nightshift

I dont like the bold on WarningMsg and ErrorMsg

Hm yeah it's a bit overkill I think I'll change that back to non bold

MatchParen should be something more significant

Ideas? I personally like it subtle, maybe there's some nice middle ground here

Especially diffAdded blends into the background.

I'll take a look at the contrast ratios for these

I really liked the blue color on Search

You mean the purple from the last screenshots on master? I will have to play around with a color for search that also fits the palette. A dash of color might work well. But then again someone else also mentioned that they didn't like the bright selection white. Maybe I can use a color for selections and search to unify all sorts of "select this thing and make it stand out"

eemed commented 3 years ago

You mean the purple from the last screenshots on master?

Yea it probably was purple in code, but looked blue to me.

Ideas? I personally like it subtle, maybe there's some nice middle ground here

I linked MatchParen to the Search purple, but thats probably too much if you want it subtle. Maybe just use a darker background with normal foreground color? I usually search pairs using this and usually miss them if only the foreground is changed.

Maybe I can use a color for selections and search to unify all sorts of "select this thing and make it stand out"

This is exactly what I did in my configs with the previous Search purple and it looked great.

cideM commented 3 years ago

I brought back the purple, it's also much better for red shift as the orangy/salmony color I had before

Also made diffAdd a bit greener

I would like to add bold or something to Keyword. But this is the same as Constant so we would need to manage that somehow

It's tricky because strings are also bold. I'm not super happy with that but not differentiating strings from the rest of the code can be a bit annoying. But maybe it's better to highlight other syntax than strings. Or maybe there's something else that could be done about strings. Different lightness might work

cideM commented 3 years ago
Screen Shot 2021-01-14 at 23 01 46

Here's blue comments and colored sidebar. The purple doesn't look nice for comments. Having comments and sidebar with a background can make for A LOT of backgrounds

Comments just italic and bold but normal color

Screen Shot 2021-01-14 at 23 10 47

and here with a darker shade of normal FG

Screen Shot 2021-01-14 at 23 11 22
eemed commented 3 years ago

Hmm... The comments were the best with different background. I would keep them for now.

Maybe try to use the purple in selections as you suggested.

About the keyword highlighting: Maybe like you said keywords bold and strings slightly different foreground color. Maybe even just italic the keywords and keep strings bold? I think the first would look better.

cideM commented 3 years ago

The problem about comments with background is that there's a lot of background when the sidebar (signcolumn linenr) also has a background

eemed commented 3 years ago

Yea im experimenting currently. The second problem is that the background disappears with cursorline. Here is some of my experiments to give you some kind of direction about my ideas:

function! YuiV2()
    highlight! Search guifg=#5438dc guibg=#dcd7f9
    highlight! IncSearch guifg=#dcd7f9 guibg=#5438dc
    highlight! link Visual Search
    highlight! link MatchParen Search
    highlight! link PmenuSel Search
    highlight! link PmenuThumb PmenuSel

    highlight! link SpecialComment Comment
    highlight! Comment guibg=NONE guifg=#007575
    " highlight! Comment guibg=NONE guifg=#E44C22

    " highlight! Normal guibg=#efeae5
    " highlight! Cursorline guibg=#eae0d6 guifg=none
    highlight! LineNr guibg=#eae0d6
    highlight! CursorLineNr guibg=#eae0d6
    highlight! link SignColumn LineNr

    highlight! WarningMsg gui=NONE
    highlight! Error gui=NONE
    highlight! Constant guifg=#85766F gui=NONE
    highlight! Keyword gui=bold

    highlight! link LspDiagnosticsSignError ErrorMsg
    highlight! link LspDiagnosticsSignWarning WarningMsh
    highlight! link LspDiagnosticsSignInformation Search
    highlight! link LspDiagnosticsSignHint Search

    highlight! link LspDiagnosticsDefaultError NormalFloat
    highlight! link LspDiagnosticsDefaultWarning NormalFloat
    highlight! link LspDiagnosticsDefaultInformation NormalFloat
    highlight! link LspDiagnosticsDefaultHint NormalFloat

    highlight! link LspDiagnosticsUnderlineError SpellBad
    highlight! link LspDiagnosticsUnderlineWarning DiffChange
    highlight! LspDiagnosticsUnderlineInformation cterm=NONE gui=NONE
    highlight! LspDiagnosticsUnderlineHint cterm=NONE gui=NONE

    " highlight! link Visual Search
    " highlight! link SpecialComment Comment
    " highlight! link NonText SpecialKey
    " highlight! link MatchParen Search

    " highlight! link PmenuSel Search
    " highlight! link PmenuThumb PmenuSel

    highlight! link texStatement Constant
    highlight! link texTypeStyle Constant
    highlight! link texBeginEnd Constant
    highlight! link texBeginEndName NONE
    highlight! link texSection Constant
    highlight! link texCmd Constant
    highlight! link texStyleItal mkdItalic

    highlight! xmlTagName gui=bold

    " highlight! link Todo WarningMsg
    " highlight! Keyword gui=bold
endfunction
autocmd ColorScheme yui call YuiV2()

yui

cideM commented 3 years ago

Here's another issue with comments that have backgrounds

Screen Shot 2021-01-15 at 12 45 37

Tabs in comments

eemed commented 3 years ago

I also had alot of problems with CursorLine but it should resolve itself by not linking anything to Normal. I normally don't use linenumbers on so thats why the background is so important on the SignColumn. However I sometimes use toggle them on and would like the linenumber background to be consistent with the signcolumn.

eemed commented 3 years ago

What do you think about the blue/purple visual selection and psel?

cideM commented 3 years ago

I actually mentioned that a few comments ago it was just obscured by all the screenshots. I think I already pushed something that uses blue/purple (also called blurple) again. I just haven't added it for visual yet. I'll have to see if that makes hlsearch difficult. I'm part of a minority of users who doesn't auto deactivate hlsearch upon cursor movement and so for me it might be useful to differntiate visual select from hlsearch. But maybe that's not actually super useful.

eemed commented 3 years ago

you havent pushed anything recently. latest commit is 6 days ago.

cideM commented 3 years ago
Screen Shot 2021-01-16 at 22 56 41

Another comment idea. Has to be bold for it to at least be AA contrast

eemed commented 3 years ago

That looks good. But if we link Visual to blue also there will be so much of it.

cideM commented 3 years ago

The all purple version

Screen Shot 2021-01-18 at 18 19 27
eemed commented 3 years ago

Yeah the comments add too much purple.

cideM commented 3 years ago

My current idea is to go back to not having the sidebar colored. This theme was inspired by a paper notebook which also doesn't have any special sidebar. And then instead of adding options I'll add a FAQ with snippets that show people how to get a colored sidebar by linking highlight groups. This empowers people to learn a bit about Vim colorschemes, is very flexible and doesn't put more burned on this colorscheme.

Then I can give comments a background again (with some other change the tab issue seems gone) and even make them non-italic. After all, they're already set apart by their bg color.

This would free up italics for e.g., identifiers.

Screen Shot 2021-01-19 at 10 03 45
eemed commented 3 years ago

Yeah that looks better. The only problem with background comments is that if you use cursorline the color doesnt immediately tell that you are in a comment. But thats just a small inconvenience

eemed commented 3 years ago

Now that comments are no longer italic. and strings have a different foreground instead of bold. What would you want to use bold and italic for?

I would like to all language constructs to be bold, but don't really know what italic is good for. Currently im pretty happy with the theme and my modifications have reduced to

highlight! link SpecialComment Comment
highlight! Statement gui=bold
highlight! SignColumn guibg=#EBE2E0

Lsp settings are off however. Floating windows have error colored text and some signs have no color. Im still using these

highlight! link LspDiagnosticsSignError ErrorMsg
highlight! link LspDiagnosticsSignWarning WarningMsg
highlight! link LspDiagnosticsSignInformation Search
highlight! link LspDiagnosticsSignHint Search

highlight! link LspDiagnosticsDefaultError NormalFloat
highlight! link LspDiagnosticsDefaultWarning NormalFloat
highlight! link LspDiagnosticsDefaultInformation NormalFloat
highlight! link LspDiagnosticsDefaultHint NormalFloat

highlight! link LspDiagnosticsUnderlineError SpellBad
highlight! link LspDiagnosticsUnderlineWarning DiffChange
highlight! LspDiagnosticsUnderlineInformation cterm=NONE gui=NONE
highlight! LspDiagnosticsUnderlineHint cterm=NONE gui=NONE

I don't know if those highlight groups are the final ones in neovim 0.5 but they seem to work for me currently.

Cursorline has also some weird things happening. Overriding everything on the line. I fixed it with the following:

highlight! clear CursorLine
highlight! CursorLine guibg=#ffffff

Still not sure about the comment though. The background version seems to have a lot of problems, with cursorline and this is the commit window currently commit box The backgrounds just switch along the way. Maybe we should do some different colored comments and use just foreground?

cideM commented 3 years ago

Better visibility for tab line Differentiate hlsearch and visual by using a shade of purple

2021-02-16T12:02:29,734646739+01:00 2021-02-16T12:02:41,205722956+01:00

cideM commented 3 years ago

:wave: I've done some reflecting and came to a few conclusions.

I will abandon the idea of a rewrite with breaking changes. I'm always annoyed by breaking changes without a really good reason. As it stands, the V1 version I'm proposing here isn't some scientific and artistic miracle that would warrant that. I'll therefore keep all options the way they are right now so one using this color scheme has to change anything.

I'll port the improvements made from the v2 branch to master. This includes additional highlight groups for third party plugins and any obvious improvements to existing colors.

I might keep some tweaks to foreground and background, depending on the contrast of the current FG and BG colors. But nothing drastic.

Lastly, I'll replace the colortemplate dependency with a light-weight, custom solution. Probably a single Nix shebang file using Haskell. That way I can use http://hackage.haskell.org/package/colour-2.3.5 to mix, dark and blend colors, and so on. Manually doing this kind of shading is tedious.

cideM commented 3 years ago

It's a few hundred lines of easily manageable Vim script so I've even abandoned the idea of any custom light weight templating thing.