Gutenberg: Reusable Blocks: Reconsider name of Reusable Block

Created on 5 Dec 2017  ·  22Comments  ·  Source: WordPress/gutenberg

Reusable Blocks are currently implemented with a block type named core/block and a custom post type named wp_block.

However, there's some lack of consensus on what the _user visible_ name this feature should be. That is, what the labels should be in this UI:

local wordpress test_wp-admin_post php_post 557 action edit
local wordpress test_wp-admin_post php_post 557 action edit 1
local wordpress test_wp-admin_post php_post 557 action edit 2

Some ideas:

  • _Global Block_
  • _Saved Block_
  • _Custom Block_
  • _Fragments_
  • _Snippets_

Some inspiration:

  • Sketch has a feature called _Symbols_ which lets you create a reusable graphic.
  • Microsoft Word has a feature called _AutoText_ which lets you save some text to re-use later.

    • Closely related are Microsoft Word's _Quick Part_ and _Building Block_ features.

  • The original issue where we discussed this feature

cc. @mtias @jasmussen @mcsf @aduth @youknowriad @pento

[Feature] Reusable Blocks [Type] Question

Most helpful comment

Why not just going all the way with "Saved Block"? That seems to be the clearest name for the inserter tab (not sure shared would make the most sense there?).

@jasmussen as part of this we should probably look at adding a bit more room to the tabs area.

All 22 comments

I like Custom Block more than Reusable Block (because _all_ blocks are reusable). But I also don't have a super strong opinion, and given that this is a label we can rename right up until the ship date (and even after that if we need to) I think it's probably good to make a fast decision on this one. CC: @melchoyce because she was there for the initial discussion.

Yeah, something like Save as custom block or Save as template block sounds right to me. The user has made customizations to their liking and wants to save that as a template. Though template could get conflicted with the existing gutenberg template pattern, which saves a group of blocks as a template post.

I'd definitely stay away from fragment or snippet, which sound like something destructive. Plus snippet might get confusing with the Yoast SEO snippet preview.

I also like custom, though I think it might depend on where the block originates. If someone manually saves a block for reuse, then I think custom is appropriate. However, if the reusable block comes from a theme or plugin, we might need to consider a different name there.

Instead of “reusable” what about calling it a “shared” block? When you reuse it you're sharing it so it can be used in other places.

I'd be open to "Shared".

Feels like unless someone objects today we should go with "Shared Blocks" and move ahead.

Important to still remember that renaming this to something else, like "Custom Blocks" or back to "Reusable Blocks", is a non-destructive action, so we can easily tweak if we need to.

It has a bit of a social media connotation for me, but I'd be open to using it too, at least for now, if y'all like it.

That's a tricky question. I would assume, _all_ blocks are reusable, as you can use them more than once in a post or page. Custom is rather arbitrary, while shared may be confusing for users who run a blog themselves.
How about block template? That would turn an existing block into a template to create more blocks. (Don't confuse this with template block, being a block created by a template.)

Why not just going all the way with "Saved Block"? That seems to be the clearest name for the inserter tab (not sure shared would make the most sense there?).

@jasmussen as part of this we should probably look at adding a bit more room to the tabs area.

Saved sounds good.

as part of this we should probably look at adding a bit more room to the tabs area.

I serendipitously tried this in these mockups:
https://github.com/WordPress/gutenberg/issues/3078#issuecomment-349940424

Great minds and all that jazz...

@jasmussen I like the extra padding! Could you give me the exact measurements of the updated inserter so that I can implement this?

trailing inserter 03b inserter clicked

@noisysocks The inserter in that mockup is 350px wide (which is 10px below the max it can be on mobile), and each tab is 88px wide. So that's 348px without the borders left for the tabs.

No need to be quite that precise, as I have some concern that perhaps there won't be room for translations in those tabs, and so we might be looking at making the giant "embeds" kitchensink into a category at the end of blocks instead. So maybe don't spend too much time optimizing.

I have read the above thread without having any prior knowledge of Reusable blocks.

My main thought on the naming convention is that from reading the above I am not clear how a reusable block works.

I understand it is a block that has previously been saved and can be added into another post. However, it is not clear from the above if you edit the inserted re-usable block, is it a 'shared' block that then updates all instances of that block site wide where it is inserted in other posts, or is it merely a saved block template that you can insert and then continue to edit independently of other instances.

"Shared/Reusable Block" implies if I edit it in one place it updates everywhere.

"Custom Block" or "Template Block" implies that I can insert it like any other block template and continue to edit it without affecting anywhere else this may have been inserted in the site.

"Shared/Reusable Block" implies if I edit it in one place it updates everywhere.

This is the default case, though you can also "detach" it (not a great name) and convert it back to an instance without affecting other uses of the block.

Looks like a great feature! 😄

In which car I think "Shared Block" is the most clear in stating that the same block occurs in multiple places and will update everywhere if the content is changed. Possibly "Site-wide Block"? Something that makes it clear the same block exists in multiple places.

"Saved" works OK but is not quite as clear I feel.

Although you could use a a 'saved' block as a starter template, you must detach it first which could easily be a step users may forget, and then accidently update all instances within a site.

Would there be a clear visual indication that you are editing a 'Saved' block when it is focussed in the editor? If so, then there is perhaps less need for an explicitly descriptive title like "Shared Block".

I am super keen we call it what it is, lets be careful of naming it 'snippets' or 'fragments'. I get the naming but we will add confusion if we don't be explicit.

Custom to me also has the contextual issues @melchoyce raises. I do like saved though. Shared to me also is something you'd pass onto someone.. maybe a good idea in itself, to share blocks with other installs. Back to point though, shared gets a +1 from me.

It seems that every term on the table presents one main value (1) but comes with lacunæ which can lead the user: to assume certain behaviors that aren't there (2); or conversely to not expect certain things to happen (3); or even incorrectly challenge some previous assumptions (4). Let's have a look:

term | (1) | (2) | (3) | (4)
-------------|----------------------------|---------------------------------|---------------------------------------------|----------------------------------------------------------
reusable | I can _reuse_ it | Is this how I duplicate blocks? | | Aren't they all reusable?
shared | I can _share_ it | Share it socially? | | Isn't my post shareable to begin with?
saved | I can _save_ what I make | | Modifying block elsewhere modifies here too | What happens to the regular blocks which I haven't saved?
custom | I can _custom_-make blocks | Can I get new ones via plugins? Is this for HTML? | | Can't I customize all blocks?

(We can play Devil's advocate and come up with more points _ad libitum_, but, for the purpose of this comment, this is the table I ended up with.)

The general benefit (1) is generally conveyed for all terms, but their drawbacks vary. Thus, it can be helpful to decide what we want to optimize for. For instance, I'm slightly leaning towards saved for these reasons:

  • (4) seems like the least serious / least plausible challenging of users' expectations
  • (2) is missing; it's nice that _saved_ doesn't pose as something else to the user
  • (3) seems like an easy _caveat_ to inform the user of as they start using the feature

Feel free to continue this exercise with some other terms, e.g. _block template_.

Quoting from the original discussion: Saved block might speak to users more yep I'd agree it's the easiest term for users but I think it doesn;t tell exactly what these blocks are and how they work.

Also, a good name should also make sense in the context of the "detaching" action. If I see a "saved block", and then I see a "detach" control, what that does mean? Not sure. The chances it will be translated improperly are very high too.

I'm not sure sticking to the concept of "block" is the best option in the first place. Conceptually, these are not blocks any longer: they're reusable "pieces of content". They could be used also outside the Gutenberg scope, since they're real posts. Wondering if a new, specific, WP terminology would make sense instead of trying to reuse terms that don't explain what this feature exactly is.

Seeing the detach option made me think of the game engine I use to create games:

In it, if you move an object (block) out of a level (posttype) into the larger project hierarchy (wordpress), they call it a prefab. It makes sense, we know this word from the real world, and the acronym kind of hints at what it is as well. If you have one of these prefabs instanced in your level and you want to make changes without breaking the original, you choose break prefab instance and it becomes a normal object again.

I'd stay away from a word like "break" maybe, but just some food for thought. The suggestions so far have been very much in the scope of web (design) terminology, maybe something outside of that will prove to communicate better.

I think the notion of _content_ is missing. As a website owner, I'm writing content, not blocks.

The labels could be:

  • _Convert to Reusable Content_ or _Save as Reusable Content_
  • _My Reusable Contents_
  • _Saved Contents_

Another approach could be the idea of a _Library_. This is something we have in Photoshop, Illustrator and InDesign to save reusable ressources. Instead of _Convert to Reusable Block_, we could use _Save to my Library_.

As a user, "reusable block" made sense to me. Template does not, because that's not really how the blocks act in use. A template would imply empty fields, but that's not what happens here, its filled it, and you need to edit it. So its reusable. I would hope in the future we have some templating system possible, separately. Shared makes no sense to me. It means I'm sending it someplace or its coming from someplace. Custom could work, but is too generic and also not accurate, IMO. It asks the user to trust their actions in a strange new interface. Reusable is very literal to what is happening here, so it has my vote.
The dissonance to me is reusable blocks and "saved" in the inserter. They don't correlate. That header should be "reusable" in the inserter. User saves a block as reusable and then finds them in the reusable tab. even if that header was "reuse" that'd be fine.

Was this page helpful?
0 / 5 - 0 ratings