SidOfc / cani

A TUI wrapper around caniuse data using FZF and curses

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

viewer.rb: light gray is unreadble on light background terminal

DamienRobert opened this issue · comments

My terminal background is #FFFFFFFFDDDD, and the 'light gray' color used for the browser names or features is unreadable.

I see two solutions: make another color scheme for light terminals, or keep the color scheme and force the background to black for light terminals (while keeping the default color for dark terminals).

Hi Damien!

Thanks for reporting the issue, I think there are even more options we could run through for this scenario. For example, I could also allow the user to set these colors which would probably be even better since it would allow full customization. I do however need to sort out how to handle that for terminals without gui color support.

I will fix this ASAP. Probably I'll do a hot-fix release together with #1 which forces the color to dark for light terminals. At least this way it will be usable until I figure out the better solution.

What I would expect, and I guess many with me is full customization with sane defaults which works in dark as well as light terminals.

Thanks again for reporting 👍 I'll check it out at the end of the working day!

Yes, indeed full customization with sane defaults would be ideal, but I was just thinking about the most efficient ways to solve the readability problem without introducing a config file. One could also just use the color palette of the user (which presumably don't have hard to read color pairs), but since palettes are not standardized it would be hard to know which color to pick.

That is exactly what I'm doing. Your terminal scheme has a default foreground and background color which can be used for this kind of thing. Indeed right now I am using fixed color pairs, the reason being that, it looks the same for everyone and as a result there will only be few of these issues.

That said, if customization is a frequently requested feature I'll implement it, don't think it will be too hard to read the first 16 colors of the terminal palette ;)

Yes, the background and foreground color numbers are standard, and I saw in your commits that you now use them. The problem is the rest of the color palette; either you use a fixed color pairs like you currently do, and there is a risk that your choice does not fit well with a peculiar terminal background, or you use the default terminal palette but then you lose the semantic encoding of 'sup(+)' being greenish and 'not(-)' being redish.

Even worse, I don't think you can even detect the background color, to propose a dark palette or a light palette.

Anyway, I am pretty happy about cani just using the default colors for the background and foreground, now I can finally read the properties, and I don't need to customize the other colors, so I'll leave another user flag a feature request for that if they need it :)

Thanks for the quick fix!

No problem at all, thank you for filing the issue as well :)

As long as these colors aren't a problem for you (or anyone reading this for that matter) then I will hold back a bit on developing an interface for it. When the need comes, there is already a config file in place that can hold this configuration. All that has to be done is make the mapping from user-supplied colors to color codes that the terminal understands.

Feel free to open a PR/issue with a proposal if you have any ideas though :)