Blocks, Patterns, and Layouts

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ is diving deep into customization leading into 2020. With customization, and eventual full site editing, comes new terminology that needs to be defined.

Blocks

Blocks are the smallest, most atomic unit in the WordPress editor. The Paragraph is the default blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.. Blocks can be static (an image) or dynamic (a list of posts).

Think of blocks as a single LEGO brick.


Patterns

Patterns are curated collections of blocks, often organized around a specific section or purpose. They make up common patterns across the web.

For example, a Contact pattern could contain:

  • A contact information block on one side, with fields for address, phone number, and email address.
  • A contact form block on the right.

A Team pattern could contain:

  • A column block
  • Inside each column, a group block containing:
    • An image block with a round mask for headshots
    • A headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. block for names
    • A paragraph block for biographies
    • A social links block

Think of patterns as several LEGO bricks stuck together to make just a castle gate. It’s a feature in itself, but only part of the greater whole of your post or page.

But doesn’t that mean something like Cover or Media & Text are patterns, not layouts?

That’s a great question! It requires more discussion before there’s a definitive answer. Should Cover / Media & Text / etc. be patterns, rather than blocks? What do you think?


Layouts

Layouts are one step up from patterns. They can be groupings of patterns or specific blocks that make up the entire design of your page — including your header, footer, and any additional global or repeating block areas, like sidebars.

Think of layouts as the entire castle — gates, towers, ramparts, catapults, flags, and all.

But isn’t this just a page template?

The short answer is yes, “layout” is a new way of saying page template. Template, however, is a pre-existing term that carries a lot of baggage. Page templates, as they exist in WordPress now, are technical entities with design implications. On the admin side, changing your page template is a pretty poor user experience. Selecting a different template for your page should be a visual process, but instead, we offer different templates in a dropdown. You can’t preview them, so you have to guess what they’ll look like, or search for a theme demo.

(Additionally, there isn’t any sort of native UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. for selecting different post templates, or any UI at all for post formats.)

By creating layouts as a block-first concept, complete with visual placeholders for filling in content instead of creating pages from scratch, we can start to deprecate templates as a design concept.


Putting it all together

To summarize:

Layouts > Patterns > Blocks

(If you’re familiar with atomic design, you can also think of blocks as atoms and molecules, patterns as organisms, and layouts as templates.)


Does this terminology make sense? Are you left with any lingering doubts or questions?

#blocks, #layouts, #patterns