themix-project / themix-gui

Graphical application for generating different color variations of Oomox (Numix-based) and Materia (ex-Flat-Plat) themes (GTK2, GTK3, Cinnamon, GNOME, Openbox, Xfwm), Archdroid, Gnome-Color, Numix, Papirus and Suru++ icon themes. Have a hack for HiDPI in gtk2. Its Base16 plugin also allowing a lot of app themes support like Alacritty, Emacs, GTK4, KDE, VIM and many more.
GNU General Public License v3.0
2.04k stars 69 forks source link

Headerbar buttons layout #185

Open nana-4 opened 5 years ago

nana-4 commented 5 years ago

Since the current headerbar is packed with many buttons, it has several issues:

nana-4 commented 5 years ago

Here's my proposal:

image

Pros:

Cons:

actionless commented 5 years ago

what about having export as a 3 linked buttons:

     ______________   ______________   ___
   (  Export Theme  |  Export Icons  |  ▼  )
                            ___________/\______________
                            |                         |
                            |   Export Terminal…      |
                            |   Apply Spotify Theme…  |
                            |_________________________|
actionless commented 5 years ago

also, one more idea to reduce top panel free space -- what about linking not only export but also making all the left-side icons except for Import to be a big .linked block?

i saw similar pattern in gtk3-widget-factory: 2019-01-11--1547233431_480x203_scrot

actionless commented 5 years ago

what do you think?

2019-01-11--1547247299_1263x237_scrot

2019-01-11--1547247366_1229x206_scrot

2019-01-11--1547247341_1237x227_scrot

actionless commented 5 years ago

2019-01-12--1547247745_1324x391_scrot

nana-4 commented 5 years ago

I'm sorry for the late reply.

also, one more idea to reduce top panel free space -- what about linking not only export but also making all the left-side icons except for Import to be a big .linked block?

Maybe somewhat better, but it will not solve the issue I mentioned above:

Icon buttons are hard to understand their roles until showing the tooltips (since these icons are not very common) - which reduces the usability.

nana-4 commented 5 years ago

Regarding the .linked Export buttons on the right:

It looks somewhat better than the current buttons style, however, I think the headerbar would appear to be still crowded on non-tiling WMs. Also, displaying only "Export Theme" & "Export Icons" looks quite arbitrary and no regularity to me.

I got another idea for the Export buttons layout, so please check https://github.com/themix-project/oomox/issues/190#issuecomment-454480311.

actionless commented 5 years ago

(since these icons are not very common)

that's why i replaced clone to "save as" but feel free to propose other more common icon choices

linked

i can push it to a separate branch so you can test how it looks for you on non-tiling wm

nana-4 commented 5 years ago

but feel free to propose other more common icon choices

I'm proposing the text-style menu items (except for Save button) instead of icon buttons.

I barely understand what "Save" icon and "Remove" icon are, but can't understand what "Save as" icon and "Rename" icons are at a glance (unless I show tooltips on them).

i can push it to a separate branch so you can test how it looks for you on non-tiling wm

Thanks, but I'm already testing how it looks on GNOME :) My impression is the same as above.

actionless commented 5 years ago

yeah, but after looking at the tooltip once you will already know it, while extra clicks you'd have to do every time

so the point is what's for to look pretty if it will cause user to do extra work?

I'm already testing how it looks on GNOME

i see on your screenshot left button group is not linked yet, so after linking them it will be even more compact, i've pushed to branch linked-buttons

actionless commented 5 years ago

however in gtk3-widget-factory example X button is separated from button group, mb it would make sense to do it the same way

actionless commented 5 years ago

and also about "save as"/coppy icon readability -- i think previous was more comprehensible (since it had two documents) while current looks almost the same as "save" and hard to distinguish

nana-4 commented 5 years ago

yeah, but after looking at the tooltip once you will already know it, while extra clicks you'd have to do every time so the point is what's for to look pretty if it will cause user to do extra work?

In order to know it, users need to familiarize and remember it. The point is not only people who frequently use the app enough to remember it.

In my personal experience, I always at a loss which icon button to press while displaying tooltips, because those icon buttons are still ambiguous and difficult to understand to me. So I'd prefer one extra click rather than displaying tooltips for a few seconds while wondering.

Also, as a mouse user, I'd be glad if there is a right-click menu on the sidebar items which has "Save as", "Rename", and "Remove" items.

nana-4 commented 5 years ago

and also about "save as"/coppy icon readability -- i think previous was more comprehensible

If you'll stick to the icon button style, I'll agree with it. Renaming to "Save as" I suggested was premised on making it a text style.

actionless commented 5 years ago

Also, as a mouse user, I'd be glad if there is a right-click menu on the sidebar items which has "Save as", "Rename", and "Remove" items.

that could be a way to go, i only don't know how to make it discoverable for the new users what there are some extra actions (like renaming when you click on right side)

one of popular usability complains was like "i open app and ok, i see a lot of themes, but how can i create a new one"; which means what current workflow of creating new theme (editing factory preset and saving it or choosing factory preset and cloning it) could be done somehow more intuitive, but i really have no clue on this part

actionless commented 5 years ago
 _________________________________________
/ Hey buddy!                              \
|                                         |
| I've heard. You're about to make your   |
| cool theme. I'm here to assist you with |
\ that.                                   /
 -----------------------------------------
                \
                  \

...................................................

actionless commented 5 years ago

but jokes aside, Firefox is also showing such help balloons on first start and after major updates

and also we almost already have our own mr mascot guy, so those could be combined :D

nana-4 commented 5 years ago

that could be a way to go, i only don't know how to make it discoverable for the new users what there are some extra actions (like renaming when you click on right side)

I suggested a right click menu as a secondary menu. I mean, it's a duplicate of the primary hamburger menu.

I believe the hamburger menu is the first place for users to look for something action, so I don't share the concern of discoverability.

current workflow of creating new theme (editing factory preset and saving it or choosing factory preset and cloning it) could be done somehow more intuitive, but i really have no clue on this part

Regarding that, I think adding "Create New Preset" item in the popover on the top left would help that. Of course, separately from "Save as" (or "Clone").

    ___
   | + |
   __/\___________________________________
  |                                       |
  |  Create New Preset                    |
  |  -----------------------------------  |
  |  Import Themix Profile…               |
  |  Import Colors from Base16 YML File…  |
  |  Import Colors from Image…            |
  |_______________________________________|
nana-4 commented 5 years ago

but jokes aside, Firefox is also showing such help balloons on first start and after major updates and also we almost already have our own mr mascot guy, so those could be combined :D

I think adding a small usage guide in the README.md is also helpful.

actionless commented 5 years ago

"Create New Preset"

i am still not sure what that button supposed to do, since themes don't have so-called "initial state", mb just create a copy of random preset (not preset called "random")

usage guides are already in readme, in the most bottom section

nana-4 commented 5 years ago

i am still not sure what that button supposed to do, since themes don't have so-called "initial state", mb just create a copy of random preset (not preset called "random")

I think it's better to make and load an "initial state" preset than to create a copy of random preset. The "initial state" preset should be very basic and standard-like. ("oodwaita" is a good example. Or maybe we can just reuse it as an "initial state" preset.)

The user's workflow should be as follows:

  1. Push + sign button then push the Create New Preset item.
  2. Input a new preset name dialog is opened, input the name, then push "OK" button.
  3. A very basic preset is now created.
actionless commented 5 years ago

yeah, in ui it will be very easy to do, just bind 'new theme' button to "save oodwaita as..." (or other theme) action

actionless commented 5 years ago

one more idea:

[ + ]    Themix   [ Burger ]   | (sidebar split)      %ThemeName%      [ Save ] icon   [ Export Theme  | v ]   [ : ]
actionless commented 5 years ago

also it could be nice idea for hobby project to translate such ascii-"art" to gnome-UI mockups :D

nana-4 commented 5 years ago

however looking on the mockups i see one important difference: in the mockups they're using Burger menu for app-level actions, and 3-vertical-dots menu for item-level actions. while in your mockups both are residing under Burger menu (which seems semantically incorrect)

I reread the GNOME's guidelines:

You're right. Themix should have both primary and secondary menus :D

nana-4 commented 5 years ago

For balancing, such a buttons placement may be better:

[ + ]  Themix  [ = ]  |  [ Export v ]      %ThemeName%      [ Save ]  [ : ]
actionless commented 5 years ago

please note what in my proposal Export is linked group of Export Theme and dropdown with other exports, that's important about clickpath for the main usecase