Closed neutaaaaan closed 1 year ago
Statement, PreProc and Type being the same blue might be "too extreme" I think, at least for vimscript files. I remember others were using different shades of subtle blue and a lot of overriding of syntax hl groups to be usable.
Although it looks ok for c:
For reference: iceberg and nord
A casual eyeball grep of Iceberg reveals about 150 language-specific bodge wires, and Nord has something like 250 lines of the stuff before getting into 3rd party plugins. And they only care about a handful of languages.
There are some low-hanging fruits, like vim configuration files, that make heavy use of Preproc
, but if we were to try and do that comprehensively, we would in effect end up redefining the syntax highlighting provided by some of the more whimsical syntax files shipped with the runtime.
I'd be more interested in knowing if, seen through the prism of these are things the compiler needs to know / things provided by the language or program
, using the same color for all three groups generally makes sense. Then, depending on how sensible the syntax files are, we could try and massage meaning out of those elements when this very loose definition doesn't provide good enough results.
I'd also like to take a hard look at syntax files, but that's out of scope for this project.
I would go with your Iosvkem instead (but not the name, I did several mistakes while typing it), @neutaaaaan. Add bluish tint in GUI and maybe some other tweaks...
wildcharm with a bit of bluish bg:
Not enough cold I think :), but in your Ioskvem we can try to play with colors.
@habamax the current palette of cold
is already pretty much Iosvkem
shifted towards blue and made a bit softer.
Here's both, arranged like Iosvkem, 256c on a #161821
background.
Iosvkem
has a really bad collision between Statement
and Preproc
that I've never been able to fix.
So does cold
with Preproc
set to ctermfg=67 as in Iosvkem
, but it also introduces some ambiguity between Statement
and Type
.
@romainl and I had a bit of a chat yesterday and --paraphrashing-- came to the conclusion that a cold 256c colorscheme that doesn't look horrible, or doesn't have really bad readability issues is pretty much impossible to build.
On the other hand, the palette I've come up with seems like a pretty good take on the soft pastel trend of the 2010s.
What was the conclusion, @neutaaaaan ? Go for ioskvm?
I hadn't realized when I suggested it but Iosvkem
can't degrade down to 8c without exhibiting the same issue you have with cold. Statement
and Preproc
are 2 slightly different shades of blue.
cold
doesn't seem to do any worse than nord
or iceberg
to me.
Renaming to sorbet
, a more accurate description of the chilled pastel vibe suggested by @romainl .
Minor UI tweaks, still needs to go through a proper harmonization pass.
Thinking about settling on the 1a
variant.
FWIW, here is how they look in Terminal.app @256c:
Sorbet1a
Sorbet1b
Sorbet2a
Sorbet2b
And in the MacVim GUI, where there appears to be a problem with StatusLine
:
Sorbet1a
Sorbet1b
Sorbet2a
Sorbet2b
I am partial to 1a and 2b, in that order.
I am for sorbet1a variant.
btw, I think tabpages should be somewhat in the same colorspace as splits:
And what about giving PreProc light blue color? I know with your font, @neutaaaaan it is indistinguishable, but in my environment looks better:
EndOfBuffer probably should be more subtle?
Haven't even started work on the UI, you're staring at quiet
through sorbet
there.
Should we check 16c,8c or only 256 and gui for now?
256 and gui
I would've made Pmenu and StatuslineNC different:
The overall feel is very good, especially in places like this:
Where we really get a "cold" vibe.
It feels less "cold" in places like this:
But that's kind of unavoidable, I guess.
If I'm not mistaken, Visual
and the search-related groups still use the quiet palette.
I agree with @habamax about EndOfBuffer
and Pmenu
.
I am not a fan of StatusLine
and StatusLineNC
. Their purpleness seems to come out of nowhere. Something more blueish would be fit the rest of the colorscheme better, IMO:
I used these in that screenshot:
StatusLine
StatusLineNC
.I've softened up most of the ui significantly, but I'm worried about clashes with diffs now.
I'm fine with the blue StatusLine
colors, that'd allow me to use the purple ones for Pmenu
.
Not sure how to handle EndOfBuffer
, that's never been a consideration to me.
Not sure how to handle
EndOfBuffer
, that's never been a consideration to me.
What about linenrblack?
I've reverted the changes to the various Search
colors, they just clashed too hard with diffs. I'm fine having somewhat jarring colors for UI elements that aren't expected to be displayed for too long.
The shades of blue suggested by @romainl seem overpowering, and even further away from the main palette than the nigh gray shade of purple I picked initially.
ErrorMsg should be probably linked to Error:
SpecialKey
needs some subtle love too:
@neutaaaaan Looks good to me
Let me know when 16/8 is ready to check.
This should be pretty close to final.
I will take it for a spin in 256c for the rest of the week.
So, it looks like the styles for Search
, IncSearch
, CurSearch
, and Visual
are still those from quiet (or close, I didn't check too carefully):
They seem out of place to me. Too saturated.
Here is 179 (taken from the sorbet palette) for Visual
, which feels more integrated to me:
That's a conscious choice, I find having distinct palettes for different contexts or "layers" is much less cognitively demanding. Visual
and IncSearch
both being used as part of some temporary selection mechanism, I reuse the same color.
179 is too drab. I initially tried 215, which worked fine, but the corresponding shades of blue and pink just disappeared inside diffs.
I am not a fan of StatuslineNC/Tabline and lack of Cursorline -- I guess this is conscious choice as well?
I personally like more hi statuslinenc cterm=reverse ctermbg=0 ctermfg=7
But that is probably subjective.
Not sure if IncSearch underline was intended?
Doing that to StatusLineNC
is a recipe for disaster, but thanks for indirectly reminding me I have to track down and fix every 8c group that uses bold and "punches through" its palette, as this can't be relied upon. However that'll have to wait until tomorrow, I won't be home much today.
IncSearch
is fixed.
Currently thinking about overriding some of the default syntax to avoid ambiguous situations, like inside various kinds of diffs where elements deleted inherit their color from Special
and end up being cyan.
So far I've only noticed issues with DiffRemoved
, but if you think there's a case to be made for any other override, it's now or (probably) never.
I'm not a fan of WildMenu
, for the same reasons as with Visual
, Search
& Co.
Those ui colors feel out of place. But they work and are easily identifiable, which is the ultimate goal.
Wildmenu is ugly
Not a fan of WildMenu
either, I figure this could work:
I think it is ready
@neutaaaaan @habamax let's go.
cold
is a quick and dirty hack meant to allow us to validate the basic palette of our cold colorscheme, and to get feedback on some of my ideas. It was built from the 256c-safe terminal palette up, with the intention of ever so slightly massaging the gui version to match the slight tint of the gui background, which is, so far, the only gui feature implemented.Nord and Iceberg use a fairly limited palette, and reuse those colors for various groups and subgroups. I've taken a cue from this :
Statement
,PreProc
andType
are the same shade of blue, as in languages derived fromC
they generally tend to map to very "structural" elements. Comments are purple.I have built several variants, to showcase what I thought were the most interesting arrangements based on the main palette:
cold1a
doesn't have any obvious issues, but is quite bland.cold2a
is probably a bit closer to Iceberg in the way strings are highlighted, but suffers from similar readability issues.I have also built 2 variants that don't highlight the
Identifier
andFunction
groups, as some languages are too irregular for vim to reliably highlight those elements.cold2a
doesn't use cyan at all, only relying on blue, green, red and yellow.cold2b
uses the same colors, swapping the colors used forString
andSpecial
, giving this variant a brighter feel.Overall I'm somewhat partial to
cold2a
as it negates a very common inconsistency that always bothered me, and the way the colors are arranged don't match any of my other colorschemes too closely.cold2b
definitely suffers from looking like an off-brand version of Iosvkem.I expect the UI to be horribly broken. Diffs work, but the palette will have to be aligned with the rest of the colors. The colors used for the various
Search
elements will have to be adjusted as well. The name is obviously not final.