WordPress / gutenberg

The Block Editor project for WordPress and beyond. Plugin is available from the official repository.
https://wordpress.org/gutenberg/
Other
10.5k stars 4.19k forks source link

Polish Social Icons setup state to make adding blocks more intuitive #56259

Open getdave opened 11 months ago

getdave commented 11 months ago

Currently this is the state fo the Social Icons block when inserted:

Screen Shot on 2023-11-17 at 14-34-45

Problems I see:

Other suggested improvements:

cc @richtabor who is looking into editor polish and may have other ideas for improvements

jasmussen commented 11 months ago

This has been an adventure ever since the first iterations of this block, and it really needs a rethink. The problem is, each service is its own block, and inserting a service is not just a single click on the plus like it is for the Buttons block, it's click and then searchm, and then click again. We've tried pre-inserting a curated list of services, but that gives bias to those over others. Even then, they won't show up on the frontend until you add a URL. How can we make it as simple to add a social link as it is to add a button?

Just to explore an out-there idea:

Quick sketch of the idea:

Sketch

The potential benefits I could see from this would be:

richtabor commented 11 months ago

What about a pre-publish check for empty, or #, social icons? Instead of omitting them from the front-end if empty.

jasmussen commented 11 months ago

Yep, I think that's a "design linting" tool that would be useful regardless. Whether we then output empty icons on the frontend or not, I could go either way.

richtabor commented 11 months ago

Could we just infer icon/variation based on URL?

i.e. You type in https://twitter.com/richard_tabor and it selects the Twitter variation for you? And if you edit the link to https://profiles.wordpress.org/richtabor/ then it changes the icon/variation to WordPress.

If there is no variation, then just use the link variation.

richtabor commented 11 months ago

Could we just infer icon/variation based on URL?

Something like this, which leans on LinkControl UI a bit (also adding open in a new tab in the same fashion).

https://github.com/WordPress/gutenberg/assets/1813435/43dd87ba-ba7b-457a-8ee6-21b2966a81b9

jasmussen commented 11 months ago

I'm into it! What happens if you paste a URL that is not recognized? I suppose it just falls back to the generic link icon?

Perhaps more importantly: how do we enable generic patterns to pre-build a curated selection of social links — would they have to paste in the URL? That might not be the most discoverable. Could we show, perhaps, an "advanced" chevron that lets you choose the particular icon without filling in a URL, and then leaning on the URL inferring as the main interface? Mainly, if we'll ever build a pre-publish or document-outline linting tool to surface empty URLs, it would be nice if patterns wouldn't have to pre-fill them.

richtabor commented 11 months ago

I'm into it! What happens if you paste a URL that is not recognized? I suppose it just falls back to the generic link icon?

Yes, that's what I'm thinking — which we already have a variation for.

how do we enable generic patterns to pre-build a curated selection of social links — would they have to paste in the URL?

Instead of # which they're typing now, the values would be twitter.com/# for a Twitter/X link.

Though in this concept, the URL is just a quick entry for inserting the block (essentially like embeds do with relative URLs), then you could still add the block within the pattern markup, empty.

jasmussen commented 11 months ago

Though in this concept, as the URL is just a quick entry for inserting the block (essentially like embeds do with relative URLs), then you could still add the block within the pattern markup, empty.

Ah yes, so the individual links exist, but this is just a shortcut. Yes, let's try this! 👍 👍

krokodok commented 11 months ago

I think the URL recognition looks promising. I had one additional thought about improving the block: Should we allow users to upload a custom logo and enter an accompanying a11y-text for services that are not supported? As an alternative to the fallback icon?

In addition: Would this issue here be the right place to include the issue of transforming block variations (https://github.com/WordPress/gutenberg/issues/46726)? I think the URL auto-detect mechanism would not solve this entirely. I would need to know the exact URL scheme of a service that can be parsed and then type it out or copy-paste it from a new tab I opened to search the correct URL, just to transform a placeholder block I created to the right variation.

richtabor commented 11 months ago

I think the URL auto-detect mechanism would not solve this entirely. I would need to know the exact URL scheme of a service that can be parsed and then type it out or copy-paste it from a new tab

My expectation is that copy/paste is currently (and would continue being) the primary pattern used to add social links. The URL mechanism would just remove the step required currently, where you first insert the block before copy/paste.

Mamaduka commented 8 months ago

Thank you, @jasmussen, for pointing me to this issue.

I can start working on a variation auto-detect mechanism using the URLs.

Mamaduka commented 8 months ago

The PR is ready for testing and reviews - #59303.

afercia commented 7 months ago

Just noting that I recently created a few issues about the Social Icons:

getdave commented 2 months ago

Another incremental improvement