Skip to main content

Blocks in Simple English

The following block types exist and this is what they do. I'm always getting confused by the terminology, as I'm not a native English speaker and the terminology does not cleanly map on other programming paradigms.

Block Type What They Say What I say

Synced patterns


Previously Reusable Blocks


... you will be able to arrange blocks in unlimited ways and save them as patterns for use throughout your site, directly within the editing experience. You can also specify whether to sync your patterns, so that one change applies to all parts of your site, or to keep them unsynced, so you can customize each instance.



Patterns as symlinks: use one pattern in many places.

Can be created by editors

Can be converted to regular patterns.

Block Variations


Block Variations is the API that allows a block to have similar versions of it, but all these versions share some common functionality. Each block variation is differentiated from the others by setting some initial attributes or inner blocks. Then at the time when a block is inserted these attributes and/or inner blocks are applied.

A great way to understand this API better is by using the embed block as an example.

Blocks as a function: pass in parameters and the block acts differently.

Block Patterns


Block Patterns are a collection of predefined blocks that you can insert into posts and pages and then customize with your own content. Using a Block Pattern can reduce the time required to create content on your site, as well as being a great way to learn how different blocks can be combined to produce interesting effects.

Blocks group snapshot: insert a combination of blocks in one go.

Good for templating layout sections, not content (use innerblocks instead)

Dynamic Blocks


Dynamic blocks are blocks that build their structure and content on the fly when the block is rendered on the front end. Live data blocks.

Block Styles


Block Styles allow alternative styles to be applied to existing blocks. They work by adding a className to the block’s wrapper. This className can be used to provide an alternative styling for the block if the block style is selected. Block Styles!