-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
ToolsPanel: Refining the component's behaviour #34257
Comments
Good ticket, thank you. Thanks for trying the current behavior. The checkbox behavior in the ellipsis menu seems to be the primary source of confusion. Let's walk through how it could work instead:
For global styles and in the future, a user could be able to control default panels via theme.json just like themes can. In one such case, you might want to remove all controls by default on a paragraph. If you did that, the ellipsis would be replaced with a [+] icon to add controls when you need them. One small thing as well: the ellipsis is vertical in recent global styles mockups, so we should update it here as well. |
Premise: I have only been involved in the review of the To me, the main source of confusion is that the same interaction/piece of UI causes 2 separate outcomes: "visually show/hide a control", and "reset the control's value". A better solution may be to have two clearly separate pieces of UI: one for toggling visibility, and one for resetting values. We should then only worry about making it clear to the user when a hidden control has a non-default (ie. that has not been reset) value. |
PR for that here: #34369 |
Thanks for all the work on this issue @aaronrobertshaw, and also for the communication and support along the way.
I've been thinking about how to visually express the latter, given that users would be able to toggle non-default controls, while also satisfying the former. I know there's been a lot of thought and discussion invested already, and I don't want to derail the vision, so I'm happy for my comments to be left in the "comment" category :) I also support decoupling the UI display reset from the control value reset. My concern has been that the dual purpose is not explicitly communicated. Of course, I don't expect it to take folks long to work out the intention behind the controls. Still, I empathize with anyone who has spent half an hour tweaking spacing and other properties for a design only to see those values vanish due a click in the wrong direction. And if this occurs as a result of hitting "Reset all", I wouldn't give the user any blame for not understanding why. Changing the "Reset all" label to "Reset controls and values" would be more upfront, even if verbose. If one of the objectives is to maximize sidebar real estate and make things easier for the user, maybe we could ask if we're tipping the boat too far in the direction of space optimization. Along those lines, I asked myself:
This is just a doodle. If the tools panel only included defaults, then the display options list and the ellipses icon would not show. I submit that we wouldn't require a "Reset all values" functionality now, or maybe at all. It's a few extra clicks to clear multiple values for grouped controls, but I believe providing targeted and deliberate reset actions is more transparent. Furthermore it is more convenient if the user wishes to clear just one control.
I still think this is a neat idea to indicate the presence of options where non-default controls have all been hidden. (See #34107) Regardless, it might help to get some controls working side by side (e.g., dimensions, typography and border) so folks can have a comprehensive overview of how multiple supports controls will look and operate for a single block in the editor. 🤷 Thanks for reading! |
To reiterate a bit the considerations for these panels:
We are not building a visibility toggle per se, so separating the actions would put too much emphasis on toggling visibility. Also toggling visibility off but not resetting a value would be decidedly worse — now you have modified attributes but it's not clear in the UI because they are hidden. Currently, the scenario that is a bit confusing is using the ellipsis menu to reset a modified value from a default tool. We'd want it to reset the value but not hide the tool. That's an important affordance and would eliminate, for the most part, the need to handle an empty tools panel in the local block instance. That means we will have items in the ellipsis menu that perform slightly different function upon resetting: one would also hide a tool, the other would not. This is a fair point to raise and one way to handle it is to group default tools together as a special unit in the ellipsis menu. The other important consideration is the use of the tools panel in the global styles context, where a user could control what default tools a block comes with in addition to what default attributes a block uses. In this context, resetting and visibility are more distinct tools and might need a slightly different representation. In the local block context, though, toggling visibility is just a side effect of 1) wanting to modify an attribute that is not a default 2) resetting an attribute that is not a default. Also worth noting that resetting individual values, while a cool affordance, is not the main goal of this panel. That's why there is a more explicit "reset all". That would make the primary goals these two:
|
Thanks for the outline above, Matías. Differentiating between default tools where unchecking doesn't do the same double-duty as it does for non-default tools is the difficult part, but as you note, it's important here to weigh pros and cons and to optimize for the most common use case, which is less about resetting, and primarily about accessing additional design tools. In that vein, I took a stab at a revised tools panel ellipsis menu, with input and iconography by @pablohoneyhoney. Consider the Typography panel, which has multiple controls available, but only font-size will be shown by default in the Paragraph block: Imagine then that we select a paragraph block, then add and customize the line height and letter spacing controls (shown below on the left), and further goes on to customize the font size (shown on the right):
|
What problem does this address?
Now that the new
ToolsPanel
has been merged there’s been a few questions or concerns raised about its UX.The plan has always been to iterate on its behaviour and polish the panel ahead of 5.9. This issue aims to collect comments or feedback from across several PRs, issues or channels and help focus the discussion around what improvements we wish to make.
Issues raised to date
Links to feedback / comments
Related PRs
Current panel demo
ToolsPanelDemo.mp4
Questions
cc/ @jasmussen @shaunandrews @mtias @paaljoachim @ciampo
I hope you don't mind the pings on this but thought it better to cast the net wide for early thoughts and feedback.
The text was updated successfully, but these errors were encountered: