Changelog
Every release across our tools.
v1.5.5Maps, audio embeds and payment buttons appear on every site
Maps, audio embeds and payment buttons appear on every site
- Maps, audio embeds and payment buttons appear on every site. They were carried in Bricks’ Code element, which does nothing unless you switch code execution on, and Bricks ships it off; on those sites a converted map rendered no map, no message and no note saying why. They now use Bricks’ own raw-HTML element, which needs no setting.
- The review queue warns when a shortcode belongs to Elementor itself, naming the template it prints and the converted Bricks template that replaces it.
v1.5.51Post loops carry their filters
Post loops carry their filters
- Post loops carry their filters. A loop limited to certain categories or tags, certain authors, a hand-picked set of posts, or posts from the last week, month or year now converts with those limits on the Bricks query. “Exclude the current post” is the one that still needs you, and the review queue says where to set it.
v1.5.4Single templates converted before 1.5.3 are repaired on update
Single templates converted before 1.5.3 are repaired on update
- Single templates converted before 1.5.3 are repaired on update. Their Post Content element still called for the WordPress content, so pages inside them kept showing Elementor’s markup; the first dashboard visit after updating switches every such element to the page’s converted layout and lists what was changed.
- Converted forms carry your customised success and required-field messages. The review note now names only the wording Bricks has no place for.
- The review queue warns when an Elementor-form anti-spam plugin is active, and says how to protect the converted Bricks form.
- Invisible script-only elements never take up layout space, whichever way the parity-CSS setting is switched.
v1.5.2Elementor 4 tabs, post loops and pagination now convert
Elementor 4 tabs, post loops and pagination now convert
- Elementor 4 tabs, post loops and pagination now convert. Tabs keep their titles, panels, active tab and styling; a post loop becomes a Bricks query loop on its own item layout, with dynamic title, excerpt and link; pagination becomes Bricks pagination on that loop, with ajax paging when set.
- Converted pages are now styled on sites using Bricks’ “External files” CSS mode.
- Pressing Activate or Re-check on a licence that is already active no longer spends another site from your plan.
- The front end preview no longer breaks the Elementor editor.
- A previewed page is never cached by your site.
- A licence key only activates the product it was bought for.
- Mega menu titles keep their authored colour instead of a fixed dark grey.
- Mega menu dropdowns keep their container styling, and an empty column no longer renders as a card.
- Form success and error messages carry over into the Bricks form, with your wording.
- Checkbox, radio and acceptance labels keep the line height set in your custom CSS.
- Desktop dropdown menu items keep Elementor’s item padding.
v1.5.3Pages inside a converted Single template now show their converted layout
Pages inside a converted Single template now show their converted layout
- Pages inside a converted Single template now show their converted layout. The template’s Post Content element rendered the page’s Elementor markup while Elementor was still active, and the raw WordPress content after cutover, never the Bricks conversion; on those pages every column row stacked in the preview and counters read zero.
- Full-width classic sections span the page instead of being boxed at the content width.
- Placeholder cards keep a readable width when the widget they replace was narrow.
- The post-type notice gives a remedy that works for post types Bricks cannot list.
v1.5.1Elementor 4 pages now convert
Elementor 4 pages now convert
- Elementor 4 pages now convert. Headings, paragraphs, buttons, images, dividers, video, and the flexbox, div and grid containers, with the variables and global classes you set up in Elementor.
- Elementor 4 forms convert, with their field types, widths, placeholders and submit button styling.
- Elementor 4 tabs, post loops and pagination are not converted yet. Each becomes a labelled placeholder and a review queue entry naming it.
- Elementor 4 SVG elements need SVG uploads enabled on your site. The review queue names the element and the fix when they are not.
- Icon boxes keep their icon alignment and their authored colours.
- The free scan names the widget types it cannot convert, not just how many.
- The trial batch message counts documents, not pages. Headers and footers stay free.
- The front end preview switcher returns to the same scroll position in both directions.
v1.5.0Shared styles become global classes
Shared styles become global classes
- Shared styles can now become Bricks global classes. Turn on “Extract shared styles into global classes” in the settings and elements of the same type that end up with identical styling share one global class instead of repeating the settings on each element, so a converted site is edited once, not fifty times. Classes take their names from the element names you gave in Elementor, carry an el2b- prefix so you can tell them from your own, and every page renders exactly as it did before. Off by default.
- Inline icon lists keep their tablet and phone spacing. The responsive Space Between values were written to a key the Bricks list element ignores, so the desktop gap applied at every width and a divider could hang past the edge of the screen, leaving a horizontal scrollbar on phones.
- Listing cards built with JetWooBuilder no longer raise two review notes for one per-product colour binding.
- Share buttons that wrap onto a second row now keep their Row Gap, including its tablet and phone values. The value was written to a key the Bricks element ignores, so the column gap applied on both axes.
- Global colours and fonts now carry their Elementor names into Bricks’ variable picker. A custom colour titled Dark grey becomes el-dark-grey instead of el-c793f65; the four system slots keep their names, and a site converted before this update keeps the variable names its pages already use.
- The dashboard’s confidence number now says what it counts: widget types that convert automatically, not styling. Look at each converted page before you switch.
- The CSS you wrote under Appearance > Customize > Additional CSS can now be copied into Bricks. WordPress serves that CSS only while the theme you wrote it under is active, so switching to Bricks stops it without saying so. The dashboard offers to copy it into Bricks’ own site-wide CSS between two marker comments, your own CSS in that field is untouched, the original stays in the Customizer, and rolling back the migration removes the copy. It is copied unchanged, so any rule written against Elementor’s markup is named for you to review.
- Elementor Pro Custom Code snippets are now listed rather than quietly left behind. They are not carried, because that code runs on the page rather than styling it, so the dashboard names each snippet and whether it holds CSS, JavaScript or markup, and you can re-add it where it belongs.
- Text painted the same colour as the surface behind it is now flagged for review. When a heading, paragraph or button ends up, say, white on a white container, the review queue names it with both colours and tells you what to check in the original, because the thing that coloured it in Elementor, often a class or custom CSS, may not have travelled. Exact matches only, and never when an image or gradient sits between.
v1.4.1Your element names come with you
Your element names come with you
- Custom element names now carry into Bricks’ structure panel. Any element you renamed in Elementor’s Navigator, including the names Elementor gives carousel slides, tabs and accordion items, shows under the same name in Bricks’ structure panel after conversion. A renamed top-level container names the section it becomes, and a widget the conversion rebuilds from several elements is named on its outer box.
v1.4.0Submissions and widget areas come with you
Submissions and widget areas come with you
- Submissions your Elementor forms already collected can now be carried into Bricks’ own store. When the site holds stored submissions for forms you have converted, a Stored form submissions card appears on the dashboard, and one confirmed click copies every entry under Bricks > Form Submissions, field for field, with its date, read state, browser and referrer. Nothing is removed from Elementor, entries already carried are skipped so the button is safe to press again, trashed submissions do not travel, and rolling the whole migration back removes the copies again.
- Forms inside templates, headers, footers and popups carry their submissions too. Those forms now receive a short, stable form id at conversion, so their history lands under the right form in Bricks. Templates converted with an earlier version show a reconvert notice first, and nothing is carried for them until they are reconverted.
- Sidebar widget areas carry across the theme switch. Elementor’s Sidebar widget becomes Bricks’ own Sidebar element pointing at the same widget area, and every widget area a converted page or template references is registered in Bricks at conversion, so WordPress keeps each widget in place when you activate the theme instead of parking it in the inactive list.
- If you activated Bricks before converting, the parked widgets can be put back. A Widget areas card lists the widgets WordPress moved to its inactive list at the switch and moves them back into their areas in one confirmed click. Widgets WordPress merged into Bricks’ own Sidebar area are left where they are and named in the dialog.
- Sidebar now counts as fully covered in the scan. Bricks supplies its own widget markup, so the element carries a review note: per-widget HTML ids and classes such as widget_search are not emitted, and theme CSS written against them stops applying.
- Rolling back removes the widget areas this migration registered and never touches your widget placement.
v1.3.5Each plan covers the websites it says
Each plan covers the websites it says
- Each plan now covers the number of websites it says, and moving a license to a different website goes through support. Staging, development and live copies of one website still count as a single website, and a database push carries the license with the site. Licenses bought before 2 September 2026 keep the self-service move on the License screen.
v1.3.4Classic pages stack on phones
Classic pages stack on phones
- Classic Section/Column pages now stack their columns on phones.
- Reverse Columns on mobile takes effect on classic sections.
- Classic sections with a minimum height centre their columns as Elementor does, and Column Position carries.
- Vertical Align on classic sections and columns lands on the converted content.
- Testimonial names and job titles follow the site’s global typography.
- Column gutters carry for untouched sections, and custom column gaps carry in full with tablet and phone values.
v1.3.3Submissions that actually get stored
Submissions that actually get stored
- Forms that store submissions now actually store them after migration. When you approve carrying a form’s actions and one of them is “Collect Submissions”, the plugin now also switches on Bricks’ own submissions store and creates its table, so every submission after cutover lands under Bricks > Form Submissions. Before this, unless you had enabled that Bricks setting yourself, those submissions were silently lost: the visitor saw the success message, the emails went out, and the stored copy went nowhere.
- Rolling everything back is symmetrical: if the migration turned that switch on and no submissions were ever stored, rollback turns it back off. If submissions exist, the store is left untouched, because rollback never deletes data.
v1.3.2A dashboard that is quicker to read
A dashboard that is quicker to read
- The review queue explains itself in less space. Every reason rewritten to carry the same facts in roughly a third fewer words.
- Content is a list of expandable rows: one open at a time, the page title links to the page, re-convert and rollback as icons.
- Type filters are chips with counts.
- Settings switches are pills, with each one’s timing shown beside it.
- The menu icon shows in full colour, and the menu sits with Bricks near the top of the admin sidebar.
- Other plugins’ notices no longer appear inside the migration screens.
- Dark-mode and spacing polish across the dashboard.
v1.3.1Borders that survive the move, and gaps that look like gaps
Borders that survive the move, and gaps that look like gaps
- Borders set in Elementor survive the move: form and pricing-table buttons, product images, My Account tabs, checkout fields, the coupon box and category images keep their colour, width and style.
- The mini cart matches the original once opened: its border, item dividers, subtotal line and remove button carry across, even at Elementor’s defaults.
- Hover border colours convert as chosen, instead of falling back to grey.
- Product gallery frames go around the gallery, not around every photo.
- Framed-style share buttons convert as outlined buttons, not solid ones.
- Unmapped dynamic text converts empty and is named in the review queue, instead of carrying Elementor’s placeholder copy onto your page.
- Fixed settings read under the wrong name: My Account tab border, search-form corner radius, nested-tab border widths, link-in-bio button border.
v1.3.0Your theme's text spacing, and photos that keep their proportions
Your theme's text spacing, and photos that keep their proportions
- Text keeps the spacing your original theme gave it. Paragraph gaps, list indents and heading margins are read from the theme the site actually ran, so long text pages keep their rhythm.
- Photos in sliders and carousels keep their proportions at every screen size, instead of rendering stretched.
- Add-to-cart buttons in product listings keep their original size instead of stretching to the full card width.
- Script-only widgets (a payment badge in a footer) are no longer collapsed as empty.
- Elements with a set width and side spacing keep their exact width in classic Elementor markup.
- Accordion and FAQ icons stay aligned with their headings at tablet and phone sizes.
- Tablet and phone settings carry across for seven more widgets: cart icons, menu toggles, share buttons, product buttons, social icons, carousel advance, cart-page spacing.
- Icon-list and accordion text steps down on smaller screens with your site’s global font settings.
- OoohBoi Steroids: Postman list padding and Harakiri paragraph trimming carry across.
v1.2.0JetEngine listings convert, and galleries match
JetEngine listings convert, and galleries match
- JetEngine listing grids convert into native Bricks query loops, with the listing design, price and add-to-cart button. Other Crocoblock widgets still become labelled placeholders.
- Justified photo galleries match Elementor’s row layout exactly.
- Site-wide Custom CSS targeting text widgets by Elementor’s class name translates to the converted elements.
- Custom CSS that hides a button’s label (icon-only buttons on mobile) works after conversion.
- Justify-aligned buttons no longer render full-width where Elementor kept them content-sized.
- Carousels no longer stretch taller than their slides in side-by-side layouts.
- Icon boxes follow the site’s global font sizes at tablet and mobile.
- Elements hidden per device stay hidden even when custom CSS styles them.
- Text written with blank-line spacing keeps that spacing.
- Pre-cutover pages no longer show placeholder images to logged-out visitors.
- The plugins screen no longer shows a stale “update available” after updating.
v1.1.2Responsive alignment follows the container
Responsive alignment follows the container
- Images, icons, social icons and buttons follow their container’s alignment at tablet and mobile, the way Elementor renders it.
v1.1.1License refresh fix
License refresh fix
- Activating or deactivating a license refreshes the update check immediately, instead of serving a cached answer for up to six hours.
v1.1.0Forms and custom CSS convert
Forms and custom CSS convert
- Form submit actions convert, with your consent per form: send-email, redirect and webhook carry over, and the rest is named in the review queue.
- Custom CSS written on elements translates to the converted markup.
- Site-wide button styling from Site Settings lands on every converted button.
- The mini cart panel renders much closer to the original.
- Menu items no longer grow on hover when menu typography shrinks on smaller screens.
- Pages drawn entirely by a template (like the WooCommerce cart) now say there’s nothing on the page itself to convert.
v1.0.1First post-launch fixes
First post-launch fixes
- Dynamic-source images (featured images, ACF image fields) keep their styling: height, borders, filters, captions, links and lightbox.
- The WooCommerce Sale badge keeps its styling, and a hidden badge stays hidden.
- Mouse-track motion effects and customised form messages are named in the review queue instead of dropped silently.
v1.0.0First public release
First public release
The Bricks Migration Engine leaves alpha. It converts whole Elementor sites, never modifies your Elementor content, and any page rolls back at any point.
What converts
- Pages, posts and reusable templates, with global colors, fonts and breakpoints.
- Theme Builder templates: header, footer, single, archive, search, 404, popups and floating bars, with their display conditions.
- WooCommerce product, archive, cart, checkout, thank-you and My Account templates (license required).
- ACF dynamic tags.
Scan and review
- Full site scan with a confidence-scored coverage report before you commit to anything.
- Documents the scan doesn’t cover are named and counted, never quietly dropped.
- Front-end preview switcher to compare the Bricks and Elementor renders of the same site.
- Converted templates get an “Edit in Bricks” link in the admin bar.
Free trial
- Convert 3 pages at a time on any site, with no license.
- Headers, footers and the single template framing a converted post convert free and never count against the three, so what you preview is a complete page.
v1.4.6The free tier shows more of what it found
The free tier shows more of what it found
- More unlocked findings, free. A free install used to see its single worst finding in each audit. It now sees its worst finding at each severity level in each audit, so you can see the difference between what is urgent and what is tidying before you decide anything.
- Every unlocked finding still comes with its one-click fix. Each new sample carries a working Smart Fix, with the same snapshot and clean undo as a licensed one.
- Nothing already unlocked was taken away: samples unlocked before this update stay unlocked.
v1.4.5Licensing does the right thing, and findings say which one they are
Licensing does the right thing, and findings say which one they are
- Fixed: activating a license on a site that already held the same key registered a brand new site against your plan every time, so a one-site plan could be used up by pressing the button twice. Bricks Health now re-checks the existing registration instead.
- Fixed: a license key for a different Built for Bricks product would activate Bricks Health, because both products are sold from the same store and only the store was checked. Bricks Health now tells you which product the key is for, and nothing on the site changes.
- Fixed: when the licensing server could not be reached, the plugin said “please try again” even where a site may already have been registered against the key, so trying again could use up another one. It now checks and says what actually happened.
- Fixed: activating a license did not clear the cached update answer, so a site that had just been licensed could keep showing the new version as not updatable for up to six hours.
- Improved: findings of the same kind now show which one they are. An image with no media-library attachment shows its file name, and single-location findings show where they sit, so six similar rows are no longer six identical ones.
v1.4.4Font and icon findings count what Bricks actually loads
Font and icon findings count what Bricks actually loads
- Fixed: the Google Fonts, font overload and multiple icon libraries findings counted families picked in a Theme Style that has no conditions. Bricks never loads such a Theme Style, so those fonts were never requested. On a site built from an imported template pack this reported three Google families where one loads.
- Fixed: a custom font whose only mention was in a Theme Style with no conditions was listed as used in the design system inventory, while the Theme Styles row on the same screen called that style “applies nowhere”.
v1.4.3Apply a fix to only the elements you choose
Apply a fix to only the elements you choose
- New: the fix preview lets you tick and untick individual elements before applying, with a select all and select none toggle. Anything you leave unticked is not changed, and the finding stays open for it.
- Fixed: the delete unused variables fix could offer to remove a variable that only your theme’s stylesheet or JavaScript used, because it read your Bricks data and nothing else.
- Fixed: the plugin now ships its GPL license file, and declares the license in its plugin header and readme.
v1.4.2Fewer false positives, a corrected baseline chip, and custom CSS in the inventory
Fewer false positives, a corrected baseline chip, and custom CSS in the inventory
- Fixed: elements driven by a script or styled only by a global class were reported as empty wrappers. An element carrying a data attribute, an inline CSS custom property, or a global class that paints or sizes it now counts as rendering something.
- Fixed: Automatic.css classes filed under the ACSS category in Bricks were reported as unused when the current ACSS files no longer listed them.
- Fixed: a finding’s “new since baseline” chip could read more new items than the finding had in total, for example “3 of 2 new” on a Google Fonts finding.
- Fixed: two scan caches were left behind in the options table when the plugin was deleted with “delete all plugin data” enabled.
- New: the Design system card counts the elements carrying element-level custom CSS, and lists each one with its page, its path and a link that opens it in the builder.
v1.4.1Baseline and scan-completion fixes
Baseline and scan-completion fixes
- Fixed: with a baseline set, every accessibility and responsive finding was reported as new after each scan, even when nothing on the site had changed.
- Fixed: a scan interrupted before its accessibility and responsive checks finished showed an overall score and could be used as a baseline, as though it were complete.
v1.4.0Baseline mode for inherited sites
Baseline mode for inherited sites
Bricks Health 1.4.0 adds baseline mode for inherited sites, reads your theme’s own CSS before calling anything empty, recognises Automatic.css, and starts new installs read-only.
Baseline mode
- Set a baseline once and later scans mark only what is new, with a New since baseline tab.
- Show the score trend across recent scans, with the change since the previous scan and since the baseline.
Fewer false positives
- Read the active theme’s stylesheets and scripts before reporting an element as empty.
- Stop reporting a wrapper whose only child is a query or repeater loop as a pass-through.
- Use one shared check for the empty-wrapper finding and its delete fix, so they can no longer disagree.
- Recognise Automatic.css and stop reporting its utility classes as unused or single-use.
- Show Automatic.css classes as managed in the site inventory instead of unused.
Safety
- Start new installs read-only; the fix dialog turns writing on in one action the first time you apply a fix.
- Keep writing on for existing installs when updating.
Polish
- Copy and settings updates throughout.
v1.3.0Copy-pasted sections become components
Copy-pasted sections become components
- Bricks Health now finds sections copy-pasted across your pages and converts them into one Bricks component. Identical copies convert with no visual change, and the new component appears in the builder’s Components panel.
- Sections that share a structure but differ in content are listed as component candidates, each deep-linked to its place in the builder.
- Component findings sit in the Design audit, under a new Component candidates filter.
- Undoing a conversion restores every affected page exactly and removes the component it created.
- Fixed: undoing a fix that had created a new setting left that setting empty instead of removing it.
- The fix history button now carries an accessible name.
v1.2.0The dashboard, reworked
The dashboard, reworked
The same five audits, the same checks, the same scores. What changed is how much work it takes to read them.
- One ring, and it retargets. Hover any of the five audit pills and the ring becomes that audit; click to jump to its findings.
- The five audit scores moved onto the score card, so the tabs carry names and icons instead of competing numbers.
- Findings rows read denser: half the spacing, tighter filter chips, one grey border for hover and open states.
- Builder marks are one rounded frame with the finding’s number in its corner. They survive Bricks re-rendering an element, and Bricks’ own selection outline steps aside on flagged elements.
- License & Account is two cards: what your licence covers, and a support details block you can copy into a ticket. Nothing in it is sent anywhere on its own.
- Menu, tooltip and layout polish throughout, and Bricks Health now sits directly under Bricks in the admin menu.
v1.1.0The Accessibility audit
The Accessibility audit
A fifth audit joins the scan: WCAG 2.2 Level A and AA, checked where a machine can decide and named honestly where it cannot.
What it checks
- 31 checks across 13 criteria, each finding citing its criterion and level and linking the W3C’s explanation.
- Two passes: one reads your Bricks data on every page, the other measures the rendered page for contrast, faint borders and missing focus outlines, riding along with the Responsive pass.
- Findings deep-link into the builder and outline the element on the live page. Markup Bricks doesn’t control is reported and labelled as such.
What it will not claim
- A permanent panel names the criteria that still need a person. Automated checking decides 13 of the 55 A and AA criteria.
- Nothing in the plugin says compliant, accessible or certified. A clean scan is not a statement about conformance.
- Videos are flagged for a person to check their captions, never as detected failures.
Smart Fixes
- Six findings fix in one click: alt text, heading level, positive tabindex, autocomplete tokens, frame titles, text contrast.
- The contrast fix offers only palette colours that pass, labelled with their ratio, and declines rather than inventing a shade.
- The alt-text fix asks what the image conveys, with “decorative” as a real answer.
- A fix covering only part of a grouped finding says so and leaves the rest open.
v1.0.0First commercial release
First commercial release
Bricks Health leaves beta. Every install scans for free, and a license unlocks the findings behind the score.
Free on every site
- The full scan, the complete Website Health Score, per-audit scores and issue counts.
- One finding per audit revealed in full, with a working one-click Smart Fix.
- A license reveals every remaining finding, retroactively, on scans you have already run.
The four audits, in a single scan
- Design Consistency, Global Class Intelligence, Responsive Layout Inspector, Performance Inspector.
- On sites with more than 25 pages, the responsive pass measures the 25 most recently edited.
Smart Fixes
- Every write snapshots first, and the snapshot is verified before it can be restored.
- A site-wide lock prevents overlapping applies.
- A kill-switch disables all writes, and forces itself on when Bricks is a version this release hasn’t been verified against.
Licensing
- Automatic updates need an active license. A lapsed license falls back to the free tier: scans keep running, findings and undo history stay.
- Separate Settings and License screens, and a rebuilt dashboard.
v0.3.0Beta hardening, accuracy, safety, and scale
Beta hardening, accuracy, safety, and scale
Everything learned from the beta round, plus a full pre-launch engineering audit.
Accuracy
- Colors set through variables or theme styles are no longer flagged as hardcoded.
- Treat
posts_per_pageas a cap, so a sensible query-loop limit is never flagged. - Exclude BEM-structured classes from duplicate-merge and single-use findings.
- Deep-nesting discounts now require list semantics (
ul > licard grids). - Responsive overflow findings carry exact measurements; sub-pixel spills are ignored.
- Classes used only in header/footer templates count as used.
- Long finding titles collapse to readable counts.
Smart Fix safety
- Preserve backslashes in custom CSS and Code elements exactly, on apply, rollback and undo.
- Verify snapshots before any write; a corrupt snapshot can never be restored.
- Fixes take a site-wide lock, so overlapping applies can’t interfere.
- Delete/merge fixes refuse when a class is used in header/footer templates or components.
- Variable merges refuse while the losing token is still referenced anywhere.
Scans at scale
- Scan progress persists per job and survives timeouts.
- The health score stays density-normalized at any site size.
- Responsive checks show live which breakpoints are measured, and Stop aborts instantly.
Housekeeping
- Real server error messages surface in the dashboard.
- New setting: optionally delete all plugin data when the plugin is deleted.
- Uninstall removes every option, transient and capability the plugin created.
v0.2.1First public beta
First public beta
The first public beta of Bricks Health.
- Design Consistency Audit: hardcoded colors that should be variables, near-duplicate tokens, off-scale spacing and typography.
- Global Class Intelligence: finds identically styled elements and offers to consolidate them into one class.
- Responsive Layout Inspector: measures every breakpoint in a real browser for overflow, clipping and small tap targets.
- Performance Inspector: oversized images, unbounded query loops, autoplaying media, empty wrappers.
- Website Health Score: every finding rolled into one trackable score.
- Smart Fixes: one-click repairs that snapshot your page first and undo cleanly.