-
Notifications
You must be signed in to change notification settings - Fork 31
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
Tab group faces need further distinction #8
Comments
Hello @alphapapa and thanks for reporting this! Yes, that is clearly a problem and I will check it right away. Will report back to you. |
Hello again! I think there are two ways to approach this: (1) use a foreground colour for the group names, but otherwise let them look like the active/inactive tabs, or (2) use background colours for the groups which will make them stand out more. In the following screenshots I also include Foreground onlyWe use a blue colour for the groups. The active group has the same background as the active tab. Inactive groups have the same background as inactive tabs. BackgroundsActive groups use a blue background. Inactive groups use a blue tint by default and a gray value when Concluding thoughtsOption 1 is more subtle. I feel it works better when there is a multitude of groups and tabs. The main problem with this presentation is that the foreground colour can be mistaken for some kind of activity. As if there is a running process in a tab. Kind of how it happens when you push to Magit, or do something like Option 2 is clearer, though it might look too busy as the number of tabs+groups increases. Its upside is that it will not be mistaken for some transient indicator or warning. Its only potential downside is that it could be interpreted as a mouse hover highlight, though I feel that is easy to avoid given the context and how the mouse pointer moves (also because tabs do not seem to respond to mouse hover events like the mode line, links, etc.). As such, I am inclined to go with option 2. What do you think? Alternatively (or additionally), we could introduce a user option: ;; accented background for the bar, default style for the group names
(setq modus-themes-tabs '(accented))
;; default background for the bar, foreground-only for the group names
(setq modus-themes-tabs '(groups-subtle))
;; accented background for the bar, foreground-only for the group names
(setq modus-themes-tabs '(accented groups-subtle))
;; and possibly other properties, like `bold', `italic' |
Hi Prot, Thanks for your, as always, thorough consideration. It's not an easy decision between those two options. Using the background color does present a better distinction, but IMHO the bold blue background color feels a bit overwhelming in the unaccented screenshots. At the same time, I can see how the foreground-only option might not be distinctive enough in some cases. So if it's not too much trouble (or code to maintain), I suppose I'd vote for the third option, allowing users to choose the style they prefer. |
I agree. That blue was not designed to be a background---and it shows. We may need new colours for this context. Though I must test whether we have alternatives first.
Yes, that is what I plan to do by introducing the option ;; accented background for the bar, default style for the group names
(setq modus-themes-tabs '(accented))
;; default background for the bar, foreground-only for the group names
(setq modus-themes-tabs '(groups-subtle))
;; accented background for the bar, foreground-only for the group names
(setq modus-themes-tabs '(accented groups-subtle))
;; and possibly other properties, like `bold', `italic', `underline' (I will test)
(setq modus-themes-tabs '(accented groups-subtle bold)) Once I start experimenting with it, things will be clear and I will be able to share more screenshots. Expect a status update this evening (local time is ~9h). |
Thanks to Adam Porter (alphapapa) for the feedback in issue 8 over at the Github mirror: <#8>.
Hello again Adam! I experimented with the idea of
So I decided to go with what you showed at the beginning of this thread: a Please let me know what you think and whether there is something else we could do or which I did not consider. Below are the screenshots: Default styleDefault groups side-by-sideAccented tabsAccented groups side-by-side |
Hi Prot, I'm always impressed by how carefully you make these design decisions. :)
I'm glad you noticed that (I'm the one who added that feature, and Juri wasn't sure if it was worth it or would be confusing, but he didn't object to it). ;) I think the box-based style is a good choice. Looking at the most recent screenshots you posted, I feel like the box in the screenshot I posted, with a thicker line, is easier to distinguish; the thinner box line almost requires looking carefully to discern it against the other colors in the tab bar, and I can imagine that some users might have trouble seeing it. And going forward, that might be even more important on high-DPI displays. So, if possible, using a 2-pixel box line might be nice. I've already learned a lot about modus-themes just from this issue (I wasn't aware of the customization, accenting, etc). :) |
I think it is a useful addition in its own right. Perhaps we should have the equivalent for the As for our case, it is important to be mindful of how the metaphors we use apply in similar contexts. Theme-wide consistency is more difficult to get right, though I feel it contributes to a more streamlined experience when done properly. The nuanced insight here is to know when to suspend the application of one's own rules and why: consistency for its own sake can lead to suboptimal results.
Very well! What do you think about this, though? modus-themes.el | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modus-themes.el b/modus-themes.el
index c2c26a4..583a33d 100644
--- a/modus-themes.el
+++ b/modus-themes.el
@@ -7265,9 +7265,9 @@ ;;;;; tab-bar-groups
;;;;; tab-bar-mode
`(tab-bar ((,class ,@(modus-themes--tab bg-active bg-active-accent nil nil nil nil t))))
`(tab-bar-tab-group-current ((,class ,@(modus-themes--tab bg-tab-active)
- :box (:line-width (1 . -1) :color "gray50"))))
+ :box (:line-width (2 . -1) :color "gray50"))))
`(tab-bar-tab-group-inactive ((,class ,@(modus-themes--tab bg-tab-inactive bg-tab-inactive-accent fg-dim)
- :box (:line-width (1 . -1) :color "gray50"))))
+ :box (:line-width (2 . -1) :color "gray50"))))
`(tab-bar-tab ((,class ,@(modus-themes--tab bg-tab-active nil nil nil t t))))
`(tab-bar-tab-inactive ((,class ,@(modus-themes--tab bg-tab-inactive bg-tab-inactive-accent fg-dim nil t))))
;;;;; tab-line-mode The standard 2px is like [ the syntax for the |
That's a good idea. What would it apply to?
Yes, "A foolish consistency is the hobgoblin of little minds." ;)
That's interesting: on my system, using Emacs 28.0.50 built within the past week, I can set the HWIDTH of the box to up to 2 pixels without increasing the height of the tab bar. In other words, there's no difference in appearance between an HWIDTH set to '(default ((t (:height 105 :family "Fantasque Sans Mono")))) Anyway, I agree that we should avoid increasing the tab bar height with this change, because that would cause it to change when a group tab is added. I think the appearance is better using a 2-pixel HWIDTH to match the VWIDTH, but if it's necessary to use |
Thanks to Adam Porter (alphapapa) for the feedback in issue 8 over at the Github mirror: <#8>.
The name of the tab-bar tab typically matches that of the current buffer. So it could be italicised when, say, the buffer does not visit a file. Same principle as Another feature of the tab-line is the alternating backgrounds for inactive tabs. I see no obvious reason why that cannot work for the tab-bar (at least in terms of presentation, as I don't know about the code).
Nice!
My mistake! I forgot to update it in my previous samples. The new commit has By the way, thanks again for the feedback. I maintain an "Acknowledgements" section in the themes' manual. Added your name there under the heading "Ideas and user feedback". |
That's not a bad idea.
Yes, I also implemented that feature. :) (Thanks for reminding me, actually, because it's not the default in Emacs 28.0.50, and I forgot to turn it on in my 28 config.) And, yes, it wouldn't be hard to implement that for tab-bar tabs too.
Oh, ok. Well, IIUC my comment applies to that as well, so I guess my conclusion is the same. :)
Thanks, that's kind of you. Those names are good company to be listed among. :) |
Hello again, Adam! (this is about tab bar groups needing further distinction with the modus-themes) I believe we had finalised this, but I forgot to close the issue. Do you think there is anything else left? |
I don't think so. Thanks, Prot. :) |
I don't think so. Thanks, Prot. :)
You are welcome! And thanks again for taking the time to help me with
this!
…--
Protesilaos Stavrou
https://protesilaos.com
|
Hi Prot,
I've been experimenting with Emacs 27+ tab-bar features, and I noticed that, when using tab-bar groups, the face of a tab group is the same as that of a grouped, active tab, so the two types of tab (a group tab and an tab within the group) can't be distinguished.
For example, here's what the tab bar looks like with a selected tab group, with the faces as defined by
modus-operandi
:The first white tab is a tab group, currently selected, and the second white tab is the selected tab within that group. But since they look the same, it's not obvious that they are actually two different kinds of tab, and that one is within the group defined by the first one.
After enabling boxes for the tab-group faces, it looks like this:
Now the group tab has a box, so it can be distinguished from the selected tab within its group.
I don't know if using boxes is the best way to distinguish group tabs from non-group tabs; it looks good to me, but I'll leave that decision up to you. :)
Thanks for your work on these themes!
The text was updated successfully, but these errors were encountered: