Skip to main content

Gutenberg Blocks

UnysonPlus elements normally live in the Page Builder. This extension makes a selected few available as native Gutenberg blocks as well, so they can be used on sites — or by editors — that work in the block editor.

It is deliberately additive. Activating it changes nothing about the page builder, the shortcodes or any existing page.

The blocks

BlockElementWhat it is
Productswc_productsA grid or carousel of products
Single Productwc_productOne product as a card
Product Pagewc_product_pageA product's full page
Product Categorieswc_product_categoriesA grid of product categories
Product Filterswc_product_filtersFilter controls for a product grid
Product Searchwc_product_searchA search field scoped to products
Add to Cartwc_add_to_cartAn add-to-cart button for one product
Cart Linkwc_cart_linkA cart link with count and total
Mini Cartwc_mini_cartA cart drawer with contents and checkout
Account Linkwc_accountA link to the account page
Free Shipping Barwc_free_shippingProgress toward free shipping
Cartwc_cartWooCommerce's cart page
Checkoutwc_checkoutWooCommerce's checkout
My Accountwc_my_accountWooCommerce's account area
Order Trackingwc_order_trackingAn order lookup form
Portfolio GridportfolioA filterable grid of projects
Project Detailsproject_detailsA project's detail fields
Project Galleryproject_galleryA project's image gallery
Project Navigationproject_navPrevious / next between projects
Project Resultsproject_resultsA project's outcome figures
Project Testimonialproject_testimonialThe client quote on a project
Related Projectsrelated_projectsOther projects like this one
TabletableA data table with sorting, search and pagination
Contact Formcontact_formA contact form with your own fields
SectionsectionA full-width band holding other blocks
ColumncolumnA column with a responsive width
ContainercontainerA width-constrained wrapper
FlexboxflexboxA flex container
Bleed Sectionbleed_sectionA section with an image bleeding off one edge
Masonry Sectionmasonry_sectionA staggered masonry layout
Flip Boxflip_boxA two-faced card that flips on hover or click
3D Gallerygallery_3dImages in a WebGL 3D scene
Post Titlepost_titleThe current post's title
Post Contentpost_contentThe current post's content, for templates
Post Datepost_dateThe published or modified date
Post Excerptpost_excerptThe current post's excerpt
Post Meta Fieldpost_metaA custom field value
Post Termspost_termsTerms from any taxonomy
Post Authorpost_authorThe author byline
Site Logosite_logoThe site logo
Navigation Menunav_menuA WordPress menu
Menu Togglemenu_toggleA hamburger button
Widget Areawidget_areaA registered sidebar
Scroll to Topscroll_to_topA back-to-top button and progress bar
Call to Actioncall_to_actionA heading, message and button band
Image + Contentimage_contentAn image beside rich text
CountdowncountdownA countdown to a date and time
Code Blockcode_blockA code sample, or raw HTML
PostspostsA query-driven grid or list of posts
Table of ContentstocA contents list built from the page headings
ButtonbuttonA link button with presets, icons and hover effects
Pricing Tablepricing_tablePricing plans with a billing toggle
Image Sequenceimage_sequenceFrames scrubbed by scroll — a product spin
SVG Morphsvg_morphOne SVG shape morphing into the next
WebGL Objectwebgl_objectA generated 3D object rendered with WebGL
Global Sectionglobal_sectionA saved section placed by reference
SnippetsnippetA saved snippet, output by name
Scroll Indicatorscroll_indicatorA scroll-down cue for a hero
Site Searchsite_searchA site search field
LottielottieA Lottie JSON animation with playback triggers
SVG Drawsvg_drawAn SVG whose strokes draw themselves
3D Modelmodel_viewerAn interactive glTF / GLB model with AR
AvataravatarA user avatar — photo, initials or icon
Imagemedia_imageA single image with a style treatment and priority hint
Videomedia_videoA video — self-hosted or embedded
Text Blocktext_blockRich text with columns, drop caps and measure
Featured Imagefeatured_imageThe current post's featured image
Audio Playeraudio_playerAn audio player with a playlist
Author Boxauthor_boxAn author card with avatar, bio and links
CalendarcalendarA month calendar with events
Image Hotspotsimage_hotspotsAn image with pins that reveal text
MapmapAn embedded map with markers
Image Boximage_boxAn image with a heading, text and a button
GallerygalleryAn image gallery with captions and a lightbox
Team Memberteam_memberA person card — photo, name, role and links
ProgressprogressProgress bars or circular meters
Business Infobusiness_infoOpening hours, contact details and a live open/closed status
CarouselcarouselA slider of image or content slides
Feature Listfeature_listA list of features with icons or markers
Comparison Tablecomparison_tableA feature-comparison table with a highlighted column
IconiconA single icon with an optional title and badge
AccordionaccordionCollapsible panels with icons, numbering and FAQ schema
TestimonialstestimonialsCustomer quotes with avatars, ratings and an optional carousel
Social Iconssocial_iconsA row of social profile links
DividerdividerA separator — a line, an icon, text or a shape
TabstabsTabbed panels with optional media, autoplay and deep links
StepsstepsA numbered sequence with markers and connectors
TimelinetimelineA vertical timeline of dated entries
Logo Gridlogo_gridA grid or scrolling row of client logos
NotificationnotificationA notice, announcement bar or floating toast
Highlight Texthighlight_textText with an animated marker, underline or circle highlight
TooltiptooltipText or an icon that reveals a tooltip on hover, focus or click
Social Sharesocial_shareShare buttons for the current page
Modal Popupmodal_popupA button, link, icon or image that opens content in a modal dialog
Animated Headinganimated_headingA heading whose last words rotate through a list — typewriter, slide, flip
NewsletternewsletterAn email signup form — heading, fields, consent line and a subscribe button
BlockquoteblockquoteA pull quote with author, role and source link
BadgebadgeA small pill of text — label, announcement or status marker
Tag Listtag_listA row of small tags from a list of lines
Text Expandertext_expanderA short excerpt with a Read more toggle that reveals the rest
Special Headingspecial_headingAn overline, title and subtitle — the standard way to open a section
Icon Boxicon_boxAn icon above a heading and text — the standard feature or service card
Video Popupvideo_popupA poster image with a play button that opens the video in a lightbox
Star Ratingstar_ratingA star rating with optional score, label and review count
CountercounterAn animated number that counts up when scrolled into view
Before / Afterbefore_afterAn image comparison slider — drag, hover or click to reveal

They appear under a UnysonPlus category in the block inserter.

How a block relates to the element

Each block is a dynamic block that delegates its rendering to the existing shortcode:

Block editor → React inspector, generated from the option schema
Front end → PHP renders the shortcode, exactly as the page builder does

That split is the point. React handles editing; PHP still handles rendering, so a block can never drift away from what the element actually outputs. There is no second implementation to keep in sync — fix the shortcode and the block is fixed too.

The inspector is generated, not hand-built

A block's sidebar is produced from the same option schema an options.php file declares, rendered by the React control layer. Adding a block is therefore mostly a matter of choosing which options to expose — not writing a settings UI.

What the sidebar shows

Each block exposes a curated subset of its element's options, not the whole schema. A page builder panel is a wide, tabbed surface; a block sidebar is a narrow column, and every element also carries shared Advanced and Animations tabs that would swamp it.

Anything not shown still round-trips untouched. The block only ever writes the values you change, so an element styled in the page builder and then opened as a block keeps every setting the sidebar does not display.

Some options are page-builder only

An option type with no React control shows a short "no React control yet" notice rather than a broken field, and stays fully editable in the page builder. That is a coverage gap, not an error.

The composite types — repeaters (addable-popup), multi-picker, wp-editor, code-editor — are the main ones, which is why blocks exist for elements whose interesting options are simple.

Previews are inert on purpose

A block's canvas preview is a picture of the element, not a working copy:

  • Before / After would otherwise swallow the click that selects the block, and a drag on its handle would become a Gutenberg block drag.
  • Counter would re-run its count-up every time the editor scrolls it into view, which reads as the preview flickering while you work.

Visitors get the fully interactive element on the front end.

Requirements

Core 2.16.29 or later, with the Shortcodes extension active — the blocks render through it.

Every block has a page

Each block above links to its own page listing exactly which options its sidebar exposes, and anything block-specific worth knowing — an inert preview, an empty state, a setting that stays page-builder-only.

That is a rule rather than a nicety: a block exposes a curated subset of its element's options, so without a page there is no way to know what you get in the sidebar short of inserting one and looking. Any new block ships with its page in the same change.