In my opinion, one of the worst sides of the current Anki UI is the number of pop-ups. Just to give an idea: you are editing a field, an realize you should add an asset with the Asset Manager add on. You have to:
- click on Notes
- click on Manage Note Types, which opens a pop-up
- select the note type
- click on Assets, which opens a pop-up
- select the appropriate asset
- double-click on the asset, which opens a pop-up
- finally, make the wanted change
- click on Ok/Exit/Bring me back to where I was buttons a couple of times
I agree this UI/UX design is not entirely on Anki (the add-on developer also contributed), but this kind of over-popupification, coupled with several-layers-deep-nested menus, is something you meet quite often in Anki.
A simple way to tackle this would be to “flatten” menus and interfaces (which are currently much tree-like, which is good to locate the button you were looking for, but is slow once you know where it is).
Just as an aside, I once used a program (I’ll edit to add the name if I remember it) whose UI was so cluttered of pop-ups like these that it took ages to find buttons, so they finally added a search page for buttons (you could search the name of an UI element, and it would provide a list of links to the menu/pop up where you could find it)…
So, back to flattening, this could either be done with tabs, for instance like in Regressi:
This software is far from having a modern UI, but still I think that it has successfully taken advantage of tabs. This is a regression software with many technical options, whose degree of complexity may vary, and the user knowledge span about these options is quite broad, so it is quite necessary to make it easy to locate the most commonly used ones for the casual user. And, indeed, just with a few tabs (you can’t see it on the screenshot, but the Grandeur
buttons actually each switch to a different view, the current one being Graphe
), Regressi has covered the main interesting views.
The current view (Graphe
) also has a semi-hidden pannel on the left, with Modélisation
written on it, vertically. If you actually click on it, or on a button which you should see on the screeshot next to Coord.
, but which seems to be hidden in this version, the panel spreads for about 15% of the window width, and uncovers other commonly used options.
This means that, from the mainly used view (the Graphe
one), you can access pretty much 99% of the options casual users need in exactly 1 click, and this without a single pop-up.
An other way to get rid of pop-ups is to actually let the user chose whether they prefer to have a detached window or not. A good design example using this pattern is gimp. See their own explanation about it for more details. In short, it looks like this:
See how the tools options are a detached dialog, but the tool selection dialog is “docked”, meaning it was detached but the user chose to attach it on the left of their main window. You could also have several “container” windows, letting you take advantage of multiple monitor setups.
Finally, an other great example would be Emacs. Emacs separates entirely the content of a pop-up / menu / view / panel / whatever from how it is shown to the user. The main concept is that each of these elements has a dedicated buffer (we are mainly talking about text-only UI/UX, but the general ideas still apply), then the user chooses how to render them. Either they only look at one at the time, or they split the Emacs’ window in two, three, or however they like (just like a tiling WM), and put any buffer in any frame. It’s simple to switch from any buffer to any other buffer (it’s just a couple of keystrokes away, and you could even have special key bindings to switch-to-last buffer or things like that).
There is a special buffer, called the “minibuffer”, which acts as a universal feedback buffer. Essentially, whenever a component has to prompt some short input, or some message has to be given, there is no pop-up: instead, the bottom of the screen is simply dedicated to show these messages / prompt input. The main advantage is that the focus is handled so smoothly that you never have to move around, Emacs already places your cursors where it should be. (the minibuffer can be made recursive, in case you were wondering). Of course, all the messages are piled-up in a dedicated buffer, and the minibuffer usually only shows the last message.
This works so well that it is completely possible (and it’s even the default in text mode) to get rid of every button / bar / menu, and only keep the frames, and the minibuffer. There is also a powerline that indicates useful information, but I’m not sure what kind of information you could show in Anki that it would be useful to be permanently show.
Besides that, I agree with most of @kleinerpirat’s points, except for the first one. It seems to me that UI should not be though to work for every platform. Instead, every platform should have an UI that is though to be the most smooth for that platform. This is because different hardware / software lead to very different standards about what is a good UI, and these standards sometimes are in opposition. This is also true because having a native feel-and-look is an important point for most users, I think, so some effort should be put in that (I especially think about Windows / Mac, since their UI is usually quite different; Linux doesn’t really have a “native feel-and-look”, unless you plan to make Anki a cli app ).