-
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
Link UI: Add and edit links directly within the block toolbar #23375
Comments
#23023 now contains a super rough prototype of this idea, more progress will come |
Really like absorbing the link editing flow in the toolbar for these blocks, it's the natural progression. However, I don't think the link icon is any more mysterious than the other icons in use, and the verbiage clearly starts to break down in the image block example with three text based buttons which starts to affect the ability to scan, in my opinion. Also I think showing "Edit Link" for navigation menu items is worse than displaying the actual link, which gives me better and quicker information. I think it's fine for the link to collapse to the icon in other cases like images, but for navigation it's the primary element. |
Word form of the action only makes sense when it creates a better hierarchy with the surrounding UI, or there’s no better way to describe the action itself. It gets convoluted with various words. Worth pushing the possibilities of the icon, and only use word form when we exhausted the capabilities of the icons. |
A more advanced prototype available in #23023 (comment) - any feedback is appreciated! |
Thanks for the feedback above. I've been working more on this and have some progress to share with regards to the Link UI in context of the Paragraph block: This one uses the link icon as the way to toggle the Link UI, and as a visual anchor for the Link UI's toolbar. Once you start typing, search results are shown — this is similar to the current Link UI, but with some style updates and simplification: Once the link is added a dropdown icon appears with more advanced options: There's also a new "linked" state for the Link button in the toolbar, which is shown here with a subtle (maybe too subtle) blue background, matching the blue background we use to highlight links in the block content: |
As the design discussion is still going, I will put my PR on hold for now |
@shaunandrews is there a reason there are tiny differences between navigation, paragraph and buttons linking in the GIFs above? Just to check, what happens when I click the subtly shaded link icon? Do I end up in edit mode or do we show the link like the current LinkControl works? |
There are reasons, and I'm sorry I didn't take the time to detail them out alongside the GIFs. The differences mostly come from @mtias' comment above:
What I take away from this, is that some blocks need to prioritize a link's URL while others don't. For example, the Button block requires a URL to function; Without a URL the buttons don't actually do anything. With this in mind the Button block should show the URL in the toolbar. The same logic holds true for the Navigation Link block. When these blocks are missing a URL they will instead show the "Add link" label: Since URLs can get rather... lengthy, we'll need to do our best to remove unnecessary information and truncate when needed: There are other blocks where the URL is not required, like the Paragraph or Image blocks. These blocks would show the link icon, but not the URL. The URL would be shown in a tooltip when hovering over the icon. For smaller block toolbars the link interface will increase the width as needed: The blue background color for the link button that appears in all of the above images is my attempt at highlighting the difference between a block without a URL and a block with a URL. I've included some additional options, including the last option (G) where there is no indicator. There's a difference between adding a new link, and editing an existing link; Existing links offer a menu for more options, like removing a link and opening a page in the editor. This menu would also be pluggable letting plugins add advanced options like adding a |
The unlink functionality for |
I don't think the light blues are a clear and contrasting pattern. |
This is too large for a single PR so I decided to split it up into a few separate ones. Here's the first one that makes it possible to replace the default content of the toolbar (ignore the actual form - it's just a placeholder for testing): Feedback highly appreciated @noisysocks @shaunandrews @talldan @draganescu |
That PR got approved and is waiting until after beta 1 release (which is scheduled for July 7th). Once it's merged I'll propose the next one. |
The support for "expanded block controls" (as in overriding the toolbar contents) is now merged, the next step here is to update LinkControl and implement the actual toolbar change. |
I believe that's caused by the "parent absorbs child toolbar" prop that is enabled on the Navigation Menu block. I'm a big proponent of that prop as an option some blocks can use — imagine a canvas you can draw shapes on, where ever shape technically becomes a child block you can rotate and skew. It makes sense for the canvas to hold the block toolbar. However perhaps we should disable that prop for the navigation block, so the spatial connection is reestablished between the selected menu item and the toolbar right above. |
Indeed that's a good point. I have some early ideas I'd like to explore that might improve this, but I don't think your visualization is so bad it should block the exploration. |
As a side note, I think the toolbar should be constrained to the editor area, by which I mean it's left coordinate should me |
That should already be the case no? |
@jasmussen of course you're right - I got confused, please ignore my comment :-) |
Worth mentioning the proposed pattern, that basically "replaces on the fly" part of the toolbar with another UI still needs to be fully evaluated from an accessibility perspective, as noted in #24805. There are serious concerns this pattern can be reasonably reconducted to an accessible pattern that provides a predictable, expected, interaction and semantics. To name a few of the main concerns:
Overall, a toolbar is expected to only contain buttons that open menu or "do something". Also important: assistive technology software are designed to understand the ARIA toolbar pattern if it's built according to the specs. Breaking the expected pattern by injecting an extraneous UI within a toolbar would prevent assistive technologies from working correctly thus making the UI not operable by the persons who use that software. |
Taking a step back and looking at the current UX patterns. The above gif shows how we interact with the toolbar. When clicking an icon that contains additional options a drop down is seen. With the new link control inline editing current version Navigation screen PR: The UX: Inline editing is a new UX pattern. Actions happen inside the toolbar. The toolbar changes to show an action. It breaks the consistency seen in the current toolbar in Gutenberg where one clicks an icon to open a drop down showing additional options. The interaction happens outside the toolbar. The toolbar remains unchanged by any drop down action. Having a non changing toolbar like a mountain can be very comforting. Changing elements are kept outside what is seen as static. Will additional toolbar actions be brought inline creating a more dynamic toolbar? It feels like inline editing is just one of multiple bigger changes that will make the toolbar more dynamic based on the action being selected. Leaving the consistency of the non changing toolbar to something that reacts to the action of the user. Edit: 17 May 2021. Adding in the following comment as we closed this issue: |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This issue is still relevant for Navigation items and Images. But in my testing the behaviour is resolved for Buttons. |
In light of the efforts in #50891 is this proposal still open for exploration? The accessibility review here is pretty blocking. I love the interaction in this design issue - opening a popover from a poover is not the best experience. However switching in and out of these modes echoes the problems in #53852. cc @richtabor |
It's worth noting that this is a different context to #53852. The primary objections there (once I added the visible Submit/Cancel buttons) were from Design and were specifically due to the UI's location within the List View which is a very "busy" part of the interface. Perhaps in a different context this would be workable. However, I would caution against anyone proceeding here without some upfront design exploration to determine whether or not inline editing in this location is feasible from a Design perspective. |
Some blocks, like the Paragraph, Navigation Link, and Button block, require a URL for the block to function. Right now these blocks tend to open addition UI to allow for manipulation of this required data:
You'll notice that the Paragraph block alters the link icon in the toolbar, allowing a user to unlink the selected text. Navigation Link and Button blocks don't follow this pattern, instead clicking on the icon always opens the link UI.
For the Navigation Link block specifically, we've been looking at exposing the URL directly within the block's toolbar (#23023):
The next logical step for this UI is to allow manipulation of the data from directly within the toolbar. As this isn't an isolated need, this issue aims to explore how we could allow for manipulation of URL (or general text-based) data directly from any block's toolbar.
--
The somewhat mysterious link icon is replaced with a more obvious text label; Edit Link when a link has been set, and Link when there is no link set.
If there's a link, hovering over this button for a few seconds will display the current URL in a tooltip:
When clicked, a new Link UI appears with
:focus
moved to the URL input alongside options like "Open in new window" and a Done button. The Link UI consumes the toolbar, hiding the selected block's buttons.--
This also touches on some recent work around Reusable blocks and Templates (#23213), where there is often the need to display/change a descriptive name:
The text was updated successfully, but these errors were encountered: