Snapping UI overhaul, part 3: Toolbar
Snapping is complicated in itself, but also because of the way all the controls and options are presented in Inkscape. Many options were implemented because we didn't know the optimal values at the time, because features were experimental, because people couldn't agree on the desired behavior, or just because we could. To make things worse, those options were scattered all over Inkscape. Recently however, some long overdue changes were being made to improve the situation (the snap toolbar was removed in favor of a new popover menu, the tab in the document properties with snap options was removed, buttons were renamed), which sparked some discussion in the chat group and in various issues created on Gitlab. There is however so much to discuss that I've tried structuring the topics into three new issues:
- Changes to the snap settings in the document properties #133
- Changes to the snap settings in the preferences dialog #134
- Changes to the snap toolbar #135
In each of these issues, I've added a few comments, one for each topic to discuss. I've tried to limit the scope of each of these topics/comments to for example a single option or to a small subset of the options in a single dialog. If you want to join the discussion, then please use the reply button for that specific topic/comment below. Don't create new independent comments if not needed. I'm hoping that we can keep the discussion manageable this way, which isn't going to be trivial.
My general thought about snapping is that when it comes to snapping, there are many ways to Rome. If snapping cannot easily be achieved in the way you imagined, with a single action, then there are almost always workarounds. It might take a few mouse clicks extra, or require adding some guidelines or temporary objects, or even require typing in some coordinates or angles, but you will almost certainly be able to get things aligned or position where you want them to. It is important though that Inkscape tries to be as clever as possible about the user's intention. Inkscape should be able to figure out itself what to snap to, as much as possible. Most users will not be able to predict what will snap when, under which conditions, in which tools, etc. Snapping is really complex, even for the developers and the Inkscape guru's. That's also one of the reasons that these new issues are created, to get to the details. Our goal should be to make snapping easy to use, without getting in the way of the users, whether they are beginners or experts. Beginners should be able to get started with snapping, whereas the experts should be able to work efficiently.
This specific issue is about changes to the snap toolbar
I've included a screenshot of the old snap toolbar of Inkscape v1.1 and the new snap popover which is available in master:
The snap toolbar can be quite overwhelming when you've just started using Inkscape. There are so many options, and so many different and non-obvious icons. The tooltips are the only way to figure out what each toggle is for, but this is tedious. Hovering the mouse over each and every toggle, waiting for the tooltip to popup, trying to make sense of what it says. And then trying to memorize it. On top of that, the options are divided in three groups, but there is no easy way for the snap toolbar to convey this fact. Yes, a separator is used between the groups, and the toggle buttons get disabled when their master toggle button is. But then there is a master of all master toggle buttons that disables everything. It's all very complex. Until you've mastered snapping.
The newly introduced snap popover will certainly make life a bit easier for new users. At first, it only shows the single master-of-all-masters button to toggle all snapping. When the arrow is clicked to expand the popover, it shows the three master toggles. Only when "advanced" is clicked, it will show all options. I think this really helps beginners to get into snapping. It also looks much better too, more modern (let's not debate whether that's a good argument)
However, after that first learning curve, the popover may become a nuisance. It is not persistent (or dockable), so even when set to "advanced mode", it will require two additional mouse clicks (of which one to get out of the modal state) and additional mouse movement. This may seem a trivial sacrifice to be made by the pro-user, to the benefit of the beginners, but don't underestimate how often this toolbar is being used! On top of that, the beginner's view with only the three master toggle buttons being shown, might not be all that useful. Once one understands the hierarchy of the toggle buttons, for which the simple view is really helpful, the advanced view is probably the only view that is going to be used. So the advantages that this new popover brings might rather quickly fade, for an individual user.
Maybe there is a way in which we can keep the best of both worlds? Having quick access to all of the toggles like in the old snap toolbar, and at the same time reduce the learning curve? I taste these three different flavors:
