This release tackles many current issues and adds plenty of improvements and some exciting new features to Bricks. It’s a big one—more than 110 changes in total.

Let’s have a look at the highlights of this release.

CSS Variables Manager

After introducing the global class manager in Bricks 1.9.5, we now extend the global style management capabilities of Bricks to CSS variables with the introduction of the new global variables manager 🤩


Code Element: Support Dynamic Data

The Code element now supports parsing dynamic data.

To remain backward-compatible and avoid breaking any existing code with the new parse, you have to explicitly enable the new “Parse dynamic data” setting, as shown in the screenshot.

You’ll also notice another new setting named “Suppress PHP errors”. Enable it if you don’t want any potential PHP errors inside your Code element to be visible on the front end of your live site.

Duplicate Pages/Templates

Do you have existing content, built with Bricks or Gutenberg, that you want to duplicate, including all its post meta, terms, etc.?

You can now duplicate content of any post type with Bricks in the WordPress dashboard by hovering over the title on the post screen in your dashboard and clicking the “Duplicate” link.

Or duplicate posts, pages, etc., inside the builder from the “Pages” panel (see screenshot).

Please use this new built-in duplicator instead of third-party solutions to ensure that unique element IDs are properly generated for your duplicated pages, templates, etc.

The duplicated page/template will be saved as a draft.

Style Tab & Breakpoint Setting Indicators

The trusty setting “dot” indicator was only available next to individual settings. You can now quickly spot if the element or global class you are editing contains settings on any breakpoint. And if any styles are set under the “Style” tab.

NOTE: The little “dot” that indicated the “Base breakpoint” in the builder toolbar has been changed to a “line” below the breakpoint icon. This way, we can use the “dot” indicator throughout the builder to denote properties that “have settings.”

New Spacing Control UI (margin/padding)

As the new variable picker requires additional space inside the panel, we had to rethink certain controls, such as the spacing control used for margin, padding, and border width.

You can still access the previous spacing control by clicking the “toggle” icon. 😎

Cache remote templates

Previously, remote templates were requested every time you opened the template manager in the builder, which was a bit excessive. So now, all remote templates are cached locally on your machine for seven days via IndexedDB.

More flexible echo function name checks

If you are using a lot of DD echo tags on your Bricks site, you can now take advantage of a more flexible way to whitelist and check the function names you want to call through the echo tag via regex patterns or 100% custom checks. Learn how, plus code examples, at

New custom JavaScript events

We prepared the following three new custom JavaScript events for you:

  • bricks/tabs/changed
  • bricks/accordion/open
  • bricks/accordion/close

There’s also a new Academy article listing all custom JavaScript events Bricks provides at

Full changelog

  • Style tab: Setting indicatorNew
  • Code Element: Dynamic Data SupportNew
  • Toolbar: Breakpoint Setting IndicatorNew
  • Duplicate Page (WP & Bricks data)New
  • New DD tag: post_slugNew
  • Popup: New setting ‘Disable backdrop’New
  • CSS Variables ManagerNew
  • Code element: New setting “Suppress error message”New
  • Filter Datepicker: New setting “Date format” (to get correct min/max date)New
  • New filter: bricks/nav_menu/menu (set nav menu programmatically)New
  • Cache remote templates (client-side, via IndexedDB, for 7 days)New
  • DD filter array_value: Support WP core custom fields (e.g. cf_xxx:array_value|key)New
  • New custom JavaScript events: bricks/tabs/changed, bricks/accordion/open, bricks/accordion/closeNew
  • New spacing control UI + toggle (margin, padding)New
  • New DD tag: wp_user_author_url & Support DD tags author_xxx (in user query loop)New
  • Posts: Metro Layout new setting ‘Columns’New
  • Structure Panel: Show Custom CSS/Interaction indicator (if set on a class)New
  • Datepicker control: New “options” control property to customize Flatpickr instanceNew
  • Bricks settings: Optimize get_users query (avoid any memory limits)Improve
  • Builder: Flex basis input not expandingImprove
  • Builder: Unsplash scrollbar needs higher contrastImprove
  • Code review: Sort echo function names alphabetically (A-Z)Improve
  • Pagination: Add flex-wrapImprove
  • Popup: Improved performance (for AJAX-loaded popups)Improve
  • Query loop: “No results” should take HTML tag setting into accountImprove
  • Show Bricks 1.9.7 admin notice only to users who can perform the stepsImprove
  • Structure panel: Fix rename lagImprove
  • Structure panel: Fix reorder lagImprove
  • Template element: Performance improvementsImprove
  • Updated: Font Awesome from 6.4.2 to 6.5.1Improve
  • Builder: Generate new element IDs when using “Save as template” (avoid duplicate element ID issue)Improve
  • Change bricksToggle function to a BricksFunction to avoid adding multiple events when function reruns through 3rd-party pluginImprove
  • Progress Bar: Don’t show label if emptyImprove
  • Compatibility with WooCommerce 8.8.2Improve
  • Remove filter: bricks/code/disable_signaturesImprove
  • More flexible echo filter: bricks/code/echo_function_namesImprove
  • Builder: Auto-select chosen image/SVG/video (media modal)Improve
  • Canvas: Gap below iframe after switching to smaller breakpointImprove
  • Form element: Remove redundant aria-label (if label tag is rendered)Improve
  • Icon List: Icon line-height issueImprove
  • Settings Panel: Add setting indicators (theme styles, page settings, template settings)Improve
  • Term Query: Add number placeholder valueImprove
  • WooCommerce: Center error noticeImprove
  • Global class manager & dropdown: Performance issuesImprove
  • Appearance > Menus > Menu item: “Multilevel” option not savedFix
  • Bricks Settings: LastPass browser extensions blocks Remote Templates “add” buttonFix
  • Builder: ACF relationship/post object loop 1st image from custom field always emptyFix
  • Builder: Element Custom CSS: Broken CSS class namesFix
  • Builder: First in-loop result with DD tag not rendered correctly (for x-template elements like Heading)Fix
  • Builder: Shortcode element placeholder width and height incorrectFix
  • Filter – Checkbox element: Space in meta value causes issueFix
  • Filter – Checkbox element: JavaScript error on taxonomy pageFix
  • Filter element: Indentation gap not applying on disabled optionsFix
  • Filter – Input placeholder: echo dd tag doesn’t work after filteringFix
  • Filter: Meta Query merge logic bug when original query has predefined Meta QueryFix
  • Form element: Input validation performance issueFix
  • Form submissions: Form name not shown if form element located in header/footer templateFix
  • Image Gallery: Masonry layout issue inside Nested tabsFix
  • Image element: Wrong selector for border radiusFix
  • Instagram element: Token regeneration not workingFix
  • Live search: Custom tag structure issues (table)Fix
  • Mini Cart element: Offcanvas ‘bottom’ incorrect top value (if admin bar enabled)Fix
  • Product gallery element: Missing product gallery image outputs PHP errorFix
  • Nestable Slider: ‘Items to show’ incorrect for breakpoints larger than base breakpointFix
  • Nested dynamic tag: Not working correctly in element conditionFix
  • Nested echo tag: Not executed in frontend (if whole page only has one DD tag on heading element)Fix
  • Form submissions: PHP Fatal Error “WP_List_Table class not found”Fix
  • Query loop meta_query with ‘relation’ key outputs PHP errorFix
  • Polylang: Search results not working on translated pageFix
  • Post comments: Fix comment_form_default_fields syntaxFix
  • Posts element: Sort & filter works only on every second clickFix
  • Query Filter: “Hide empty” still shows in SafariFix
  • Query Loop: Nested echo tag not workingFix
  • Query loop: Random seed not working if query set as Main Archive QueryFix
  • Query loop set as main query: Dynamic tag in parameters not workingFix
  • Query filter element with Condition might cause undefined after filter callsFix
  • Rich & Basic Text elements: Limit words adds additional ‘p’ tagsFix
  • Save Bricks data as Gutenberg data: replace post_content tag brackets with parenthesis to avoid infinite loopFix
  • Session expired text rendered (when using Formidable form with AJAX enabled)Fix
  • Filter – Select: Sort returns every post within a categoryFix
  • Tax Query: Not used when marking the query as Main Archive QueryFix
  • Term Query with Query Editor and Infinite Scroll: Always returned same resultFix
  • Infinite scroll returns empty result on archive page if query element ID was duplicated in another template (Bricks: Save as template)Fix
  • Text shadow: Double unitFix
  • Undefined array key “comment” (when using ReviewX plugin)Fix
  • AJAX Pagination: Custom icons reset to default (after enabling Query Filter)Fix
  • Builder: Link to External URL: Can’t link to file URLFix
  • Border control: border-width: 0 when using CSS variables & PHP 7.xFix
  • DD tag url_parameter: Not parsing if colon exists in URLFix
  • Attributes setting: DD tag echo nested with other DD tag not working insideFix
  • Image gallery: Masonry layout images overlapFix
  • Builder: Typo in Nav nestabled dropdown settingsFix
  • Query Loop: ACF Post Object (not multiple) inside ACF Repeater has no resultFix
  • Basic text: Inconsistent behaviour if emptyFix
  • Builder: Click to edit element not working (if element ID consists of only numbers)Fix
  • Builder: Lightbox clickable in preview (breaks canvas)Fix
  • Builder: Margin/padding placeholder values not inherited correctly (mobile-first too)Fix
  • Builder: Textarea control: Scrollbar covers DD pickerFix
  • Canvas: Footer disappears (if scaling disabled)Fix
  • Color Palette: Change to ‘raw’ CSS variable value not updatedFix
  • Custom Breakpoint: Single-letter Label (styles are not applied)Fix
  • Custom breakpoints: Naming conflict “Landscape”Fix
  • Custom breakpoints: Naming conflict “Portrait”Fix
  • Drag element into the structure panel not working after inserting a templateFix
  • Excerpt: Keeps formatting when dragged onto the canvasFix
  • Masonry layout: Lazy-load images can cause overlap (if slow network)Fix
  • Page settings: Undo/redo code affect builder historyFix
  • Social Sharing element: Tooltips can cause overflow (align right)Fix
  • Structure panel: ‘Hidden’ icon shows on wrong breakpoint (after builder load)Fix
  • Text Link element: SVG Icon selector too unspecific (within Dropdown)Fix
  • Theme Styles: Apply Container min/max-width to #brx-content.wordpressFix
  • Theme Styles: Popup ‘Breakpoint’ settings missingFix
  • WooCommerce: Single template product schema missingFix
  • Polylang: Search results return all languages (with Query Loop set as main query and term include/exclude)Fix
    All releases