sainnhe / sonokai

High Contrast & Vivid Color Scheme based on Monokai Pro
MIT License
1.65k stars 119 forks source link

fix(lightline): Use a muted gray when transparent mode is activated #59

Closed madx closed 2 years ago

madx commented 2 years ago

This PR makes the lightline status bar use a muted gray instead of full transparent when said mode is used.

The fix introduced in 36432920ec472d761c72c2fa1fb98720520d8dc8 makes the status bar fully transparent and thus hard to see as you can see on the Before screenshot below.

Using bg0 instead of none from the palette when transparent mode is activated makes it much nicer, as visible on the After screenshot below.

Before

Screenshot from 2022-05-18 00-29-06

After

Screenshot from 2022-05-18 00-26-23

sainnhe commented 2 years ago

There is another PR which makes it full transparent https://github.com/sainnhe/sonokai/pull/55

Sorry but I personally prefer that design. This color scheme cannot satisfy everyone, if you find you prefer bg0, maybe you can maintain your own fork instead.

madx commented 2 years ago

Hi @sainnhe

I really don't understand this choice. This is not really about taste or how it looks. It just creates bad UX and is also inconsistent. I'll try to give more arguments to support my claim:

A status bar is not a background element

Transparent background makes sense for the editor zones, but the status bars are UI elements, I think a user would expect them to be styled differently than the editor backgrounds.

A transparent status bar makes it harder to see how many splits are in the window

If you compare the two screenshots below, you cannot immediately tell how many horizontal splits are open when using a fully transparent status bar whereas it is very clear when using a solid background.

Transparent Solid
image image

Inconsistency with Vertical Splits

Creating a vertical split creates a border between the two windows. It's using s.palette.black so it's a bit faint but it is noticeable.

image

BTW did you notice I had 4 open files in that previous screenshot? Probably not

Another difference with vertical splits is that you can override the color of vertical splits in a custom theme hook while you just can't do it for the status bars.

Inconsistency with non-transparent theme

Even the standard non-transparent theme has visible status bars

image


I beg you to reconsider this PR, I don't think I'll be the sole use not satisfied by the breaking change of introducing fully transparent status bars. Maybe using black instead of bg0 would be more consistent with the way VertSplit are styled?

If you really don't want to merge this, do you think there could be a way to customize the status bar background like we do with VertSplit? I'd prefer that over maintaining my own fork.

Thanks for your time

sainnhe commented 2 years ago

Thanks for your detailed explanation!

I'm considering use configuration option to control this, for example, g:sonokai_transparent_background = 2 will make status line bg transparent while set it to 1 will use your design.

madx commented 2 years ago

Thanks! That would indeed be a great compromise 🙂

sainnhe commented 2 years ago

Done in https://github.com/sainnhe/sonokai/commit/9a5566175bfca69c42dcb18a7ede6c2ee460c93c, could you give it a try?

madx commented 2 years ago

Done in 9a55661, could you give it a try?

Looks good! image

sainnhe commented 2 years ago

So I'm going to close this PR. Thanks for your suggestion!