Components (experimental)
Components, probably the biggest missing building blocks in Bricks, are now available as an experimental feature in Bricks 1.12.
Components allow you create reusable and customizable elements for a scalable, consistent, and easy to maintain workflow. Make sure to watch the official Components video below, for a first dive into the world of components in Bricks …
Documentation: Components
Query Loop: Include/Exclude support dynamic data
Bricks now supports dynamic data tags in the “Include” and “Exclude” query loop controls.
This lets you include/exclude posts dynamically through dynamic data field values, such as those retrieved from ACF or Meta Box relationship fields, while also combining all other query parameters like meta queries or taxonomy queries.
Documentation & examples: Query Loop
You can also query ACF Gallery fields by setting the post type to “Media” and selecting the ACF gallery DD tag under “Include”.
ACF Gallery example: Query Loop
Optimized CSS file loading order to prevent CLS & FOUC
We received various reports about CLS (Cumulative layout shifts) and FOUC (Flash of unstyled content) issues. The root cause being that certain CSS files were loaded/enqueued too late. This has now been resolved in Bricks 1.12. If you still experience any CLS/FOUC issues when using Bricks 1.12+, please let us know.
Cascade layer for Bricks default styles
If you ever ran into a CSS specificity issue with the default Bricks styles, this new, experimental feature, is for you. As Bricks 1.12 introduces a possible solution to this longstanding issue through CSS cascade layers (@layer), which as of December 2024 reach an impressive 96% browser support and “Widely available” Baseline.
For more details about this new feature, how to enable it, and how it works, please head over to Cascade layer
Show outer Post Content elements
When editing a page with Bricks that is rendered through a template (e.g. template condition: post type = page) the elements surrounding the “Post content” element were not visible in the builder.
Instead of viewing the entire page as it looks on the frontend only the “Post content” area of the page template was visible. Making it extremely hard to style such pages in the builder.
In Bricks 1.12 you can now see all outer Post content elements in the builder
NOTE: Available for all templates of type “Single”
Context menu: Copy and paste attributes & classes
The context menu contains two more copy & paste action icons for that let you copy & paste all attributes & classes defined on an element. The respective icons only appear if the element contains any attributes and/or classes.
Query Filters: Support term & user queries
Prior to Bricks 1.12 query filters only supported “Post” queries. You can now also filter queries of type “Term” and “User”.
There are also two new user-specific dynamic data tags:
- wp_user_role: Returns current user context primary role. Use :value to return the role slug.
- wp_user_registered_date: Returns current user context registered date
Global Class Import Manager
When importing classes through the global class manager, through importing a template file, inserting a remote template or copy/pasting elements, Bricks now displays the Global Class Import Manager when new classes or class conflicts with imported classes are detected.
Conflicts are highlighted in red with options to override, discard, or rename the class. You can now also categorize those classes during import.
2 class import conflicts detected
To resolve the conflict for a specific class, hover over or click it, then select the “arrow” icon to override the local class, or the “trash” icon to discard the conflicting class from the import.
If there’s a naming conflict, meaning a class with the same name already exists on your site, you can resolve the conflict by renaming the imported class.
To resolve class conflicts in bulk, select the class conflicts you want to resolve, and use the override/discard icons at the top of the column.
Once all conflicts are resolved you can finish importing the classes by clicking the green IMPORT CLASSES button at the top-right of the global class manager. You can also skip the entire class import by clicking the SKIP CLASS IMPORT button next to it.
Documentation: Global class import manager
You can configure/disable the global class import manager under Bricks > Settings > Builder
Other noteworthy changes
- Accordion & Tabs (flat & nested): New default open item setting
- Form: Show/hide password field toggle icon
- Form: New setting “Disable form validation” (input, blur)
- Global Classes Manager: New filters for Used/Unused on this site
- Query Loop: New Infinite Scroll Delay setting
- Image Gallery: New “Lightbox ID” setting (to connect with single images)
- Duplicate post: Bricks setting and filter bricks/use_duplicate_content to disable this feature
This release, just shy of 100 changes, introduces dozens of fixes and improvements, plus multiple significant new features we can cross off our roadmap. Let’s have a quick look at the highlights of Bricks 1.11.1.
- Password Protection (Template Type)New
- Masonry layout (Style > Layout)New
- WooCommerce: ConditionsNew
- WooCommerce: New element “Checkout Coupon” & “Checkout Login”New
- Query Loop: More “order by” options & select multiple optionsNew
- Typography: New text-wrap controlNew
- Builder: Responsive control indicatorNew
- Query filter: Custom field integration (ACF, Meta Box)New
- Dynamic data: New @sanitize key-value pairNew
- Flex align setting: New ‘auto’ optionNew
- Form element: New “Max length” input settingNew
- Form element: New setting to hide form message after .. msNew
- Posts element: New “Link image alt text” settingNew
- Rating element: New “Additional properties” setting (for schema)New
- Search element: New “Label” settingNew
- New constant: BRICKS_LOCK_CODE_SIGNATURESNew
- New filter: bricks/render_query_loop_trail (to disable .brx-query-trail node)New
- New filter: bricks/builder/codemirror_configNew
- Theme Styles: Alert muted border settingNew
- Theme Styles: Button outline controls & info, success, warning, danger, dark, muted stylesNew
- WooCommerce: New DD tag “woo_product_badge_new”New
- WooCommerce: Admin bar “Edit with Bricks” links to Woo templatesNew
- WooCommerce: Product up/cross-sell: New “Cart Cross-sell” settingNew
- WooCommerce: Add to cart element: New regular & sale price typography settingsNew
- New filter: bricks/content/tagNew
- Accessibility: Comments element missing textarea label (Source: WordPress)Improve
- Accessibility: More visible default :focus-visible stylingImprove
- Author element: Rename “Show Website” label to “Link to website”Improve
- Builder: Add label to text-shadow popup (for indicator)Improve
- Builder: Canvas inline text editing should use “strong” instead of “b” tagImprove
- Button: Hide Icon typography control if icon is an SVGImprove
- Color palette: Show “Clear” button only when a color is setImprove
- Skipped heading levels for author name, comments, and related posts & new HTML tag setting for author name (a11y)Improve
- Form element: Email inconsistent line break handling between main and confirmation emailsImprove
- Heading: Wrong custom tag placeholderImprove
- Hide “View cart” button placeholder valueImprove
- Metabox relationship improvement to use current page/post as fallback context (inside nested loop)Improve
- Nav menu & Nav (Nestable): Navigation via arrow, home, end keys (a11y)Improve
- Nav (Nestable): ::before pseudo widthImprove
- Nav (Nestable): Opening content on click/hover don’t close previously opened contentImprove
- Performance: Optimize user query in conditionsImprove
- Query filter element: Input tag should self-closeImprove
- Rating element: If rating is higher than max. rating use max. rating valueImprove
- Testimonials element: Use blockquote tag instead of div (a11y)Improve
- Theme Styles: WooCommerce button styles should also apply on non-woo pagesImprove
- Accessibility: Accordion (Nestable), Tabs, Tabs (Nestable)Fix
- Accordion (Nestable): Empty FAQ schemaFix
- Builder: Attributes indicator not showing on all breakpointsFix
- Builder: Panel expands unexpectetly on class changeFix
- Builder: Preview window opens in same tab instead of new tabFix
- Conditions: Meta Box empty relationship labelFix
- Copy & paste styles betwen element ID & global class and vice versaFix
- Custom CSS class name gets modifiedFix
- Custom CSS: Wrongly applied after switching between classesFix
- Custom CSS: %root% refers to old class name after class was renamed in class managerFix
- Dropdown & Nav menu: Set mobile menu stroke inline on SVG pathFix
- Control: text-align “exclude” not working correctlyFix
- Form element: Can’t retrieve form actions in query loopFix
- Form element: Autocomplete attribute info tooltip should be on/offFix
- Form element: Can not upload .ai and .eps filesFix
- Form element: Dynamic data for “Directory Name” is not workingFix
- Form element: Submit icon spins in the wrong directionFix
- Icon element: Custom attribute “class” generates fatal PHP errorFix
- Image & Video element: “Custom URL” with dynamic tag + static text unable to parse correctlyFix
- Infinite Scroll: Double AJAX loader if nonce expiredFix
- JetEngine: Relation meta data not working with dynamic data tagsFix
- Nav nestable: Mobile menu close toggle not showing on canvasFix
- Nestable elements: Direct child elements render as DIV instead of default tag (i.e. heading inside Back to Top)Fix
- Polylang: Infinite query loop not working when templates are not set to be translatableFix
- Popup template settings not applied when added via Template elementFix
- Posts element: Alternate images + direction column on mobile doesn’t workFix
- Product Gallery: Wrong margin on thumbnail slider (RTL)Fix
- Product Stock element: Return empty if variable product manage stock level on variationsFix
- Query filter: Not working if target query uses dynamic data tag in query settingsFix
- Query loop (PHP): order_by, posts_per_page gets overridden (post type: product)Fix
- Query loop: ACF Repeater > Group > Repeater has no resultsFix
- Query loop: Order by possible duplicate results with load more or query filtersFix
- Rating element: Inside query loop, the first element does not render stars when using dynamic data (in builder)Fix
- Remove html height 100% which caused site background image to not cover whole bodyFix
- SVG element: Source “Code” in header renders incorrectly in builder on other pagesFix
- Slider (Nestable): Wrong order of slides inside nested tabsFix
- Sticky header: Transition overrides nav nestable & dropdown icon transitionFix
- Table of Contents element: Fix TOC initialization at different breakpointsFix
- Tabs (Nestable) & Accordion (Nestable): Suppress DOMDocument PHP WarningFix
- Tabs element: Open tab via anchor link: First item always openFix
- Theme Styles: Link selector :hover issueFix
- Unable to get code signature if using Template and Loop + Post Content (Source: Bricks)Fix
- WPML: Page settings not copied to translated pageFix
- WooCommerce: Account – Edit Address: Margin applies to wrong selectorFix
- WooCommerce: Notice error message border styling issue (RTL)Fix
- Fix PHP 8.2+ strpos deprecated warning when using DD link for looping “a” tag
- WooCommerce – Breadrcrumbs: Link: Home (New setting)New
- Carousel: Adaptive height image width not appliedImprove
- Products filter box list not fired if click on the li (due to padding)Improve
- Builder: Element disappears from the structure & canvas after drag & dropFix
- Builder: Empty element attribute or attribute with spaces breaks the builderFix
- Filter bricks/element/render no longer working correctlyFix
- Popup: Animated Typing (without loop) starts on page loadFix
- Posts: Image width doesn’t workFix
- Product tabs element: Typography selector is too unspecific