Changelogs

Follow the improvements and fixes in each product release.

GT ACF Blocks Plugin

GT ACF Blocks Plugin adds 29 production-ready blocks to the WordPress editor with automatic field registration, conditional assets, performance controls, and protected lifetime updates. Requires ACF Pro 6.0+…

Explore Product

Release History

Permalink

2.11.3

What’s Changed

Fixed

  • Block stylesheets were never cache-busted by a plugin release. Core’s register_block_style_handle() reads $metadata['version'] from block.json and falls back to false, which makes wp_register_style() stamp the WordPress version onto the URL. Every one of this plugin’s block.json-registered handles was therefore versioned by core, not by the plugin: on this site url-preview.min.css shipped as ?ver=7.1 for WordPress 7.1, and the files are served public, max-age=31536000. The query string is the only thing that can retire a year-long cached copy, so a CSS fix in a plugin release stayed invisible to every reader who had already loaded the page until WordPress itself updated. The 2.11.2 contrast fix was landing this way — correct on disk and at the CDN, still broken in the browser of anyone who had visited before.

A block_type_metadata filter now sets version to ACF_BLOCKS_VERSION for blocks whose block.json lives inside this plugin, matching what the plugin’s direct wp_enqueue_style() calls have always passed. Blocks that other plugins register under the acf/ namespace are left alone. Asset URLs now carry the plugin version and change with every release.

Sites running GT Performance saw this compounded: its assetVersion filter rewrites ver when it equals the core version, turning ?ver=7.1 into a stable hash. It was doing its job — hiding the core version — but the versioning underneath was already wrong, and the hash made the staleness harder to spot.

Commits

  • 2.11.3: version block.json assets with the plugin, not with WP core (a91797b)
  • 2.11.2: fix white-on-white URL Preview button in dark mode (e40be8e)

Stats

  • Commits: 2
  • Changes: 11 files changed, 82 insertions(+), 10 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.11.1

What’s Changed

Fixed

  • Callout labels ignored the colour the block was given, and every one of them failed contrast. .acf-callout-label carried a hardcoded color:#d4a600 that never varied with the block’s own callout_bgColor or callout_textColor, and four style variations replaced it with literals that were just as uncoupled. Across 501 labelled callouts on 272 posts, 500 of the 500 evaluable labels came in under 4.5:1 — none passed. The mustard sat at 2.17:1 on #f0fdf4 (172 blocks) and 2.09:1 on #eff6ff (131), and a “Warning” label on #f8d7da bottomed out at 1.70:1. The label now resolves to currentColor, inheriting the callout’s own text colour, which authors already pick to pair with the background: 415 of 415 blocks carrying explicit colours now pass, and the 85 with none fall back to the theme’s own --acfb-text on --acfb-bg pair. The Dark and Dashed Dark variants keep their --acfb-star label, which is token-based and already correct on a dark ground.
  • Custom border-color could not override a variation’s border. Highlight, Dashed Light, and Dashed Dark set border as a shorthand, so a block supplying only callout_borderColor kept the variation’s width and style and changed nothing but the hue — a Highlight callout with custom colours rendered a 3px dashed border it never asked for, on top of the 1px solid the base rule intended. The three variations now set border-width, border-style, and border-color as longhands so a per-block colour lands without dragging the rest of the shorthand with it.
  • Highlight and Testimonial opted out of dark mode. Both hardcoded their surface (#f0fff0 and #fdf6e3) instead of deriving it from --acfb-bg, so they stayed bright on a dark page while every other callout followed the theme. Both now tint the token with color-mix(), which reproduces the previous light-mode surface to within a couple of values and yields a correspondingly dark tint in dark mode. Highlight’s → list marker keeps its green.

Notes

  • Callout registers style as an array in block.json, so WordPress inlines the bytes rather than linking a URL. There is no asset URL to bust here; page caches need a purge for the change to appear on already-cached HTML.

Commits

  • 2.11.1: callout labels inherit the block’s text color (543e820)

Stats

  • Commits: 1
  • Changes: 8 files changed, 25 insertions(+), 15 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.11.2

Fixed

  • The URL Preview button was white-on-white in dark mode. .acf-url-preview__button fills with background:var(--acfb-text) and wrote its label in var(--acfb-text-invert). Those two are only inverses of each other in light mode: --acfb-text-invert aliases --color-button-text, which MD deliberately holds at white in both schemes so it stays legible on the saturated --color-button fill, while --acfb-text flips to a light value for dark. Measured on a live page, the button rendered #FFFFFF on #E4E4E4, a contrast ratio of 1.27:1 against the 4.5:1 AA floor, while light mode was fine at 16.09:1. The Featured variant inherited the same label color under an --acfb-text gradient fill. Seven published posts and pages carry URL Preview blocks; every button on them was affected.
  • Dark callouts had the same defect, latent. .acf-callout.is-style-dark also fills with --acfb-text and set its body text, its links, and its button links in --acfb-text-invert, so the box inverted into a light panel with white text wherever dark mode was on. No published post currently uses the variation, so nothing shipped broken, but the rule was wrong in the same way.

Added

  • --acfb-on-text, the companion to --acfb-text used as a background, mirroring how --acfb-on-primary companions --acfb-button. It resolves to --color-content-bg, which is the true inverse of --color-text and flips under both the [data-theme] toggle and the prefers-color-scheme fallback, so a single :root declaration covers both paths and no dark-mode override is required. The five affected rules now use it: the URL Preview button and its :hover, and the Dark callout’s base, link, and button-link rules. Dark mode measures 13.69:1 after the change, light mode is untouched at 16.09:1.

--acfb-text-invert keeps its meaning and its 41 remaining consumers across 17 stylesheets, all of which pair it with a saturated accent or brand fill where white is the correct choice. Redefining it for dark would have fixed these five rules and put those at risk, so it was left alone. Reach for --acfb-on-text whenever --acfb-text is the background, and --acfb-text-invert only on a brand-colored one.

Permalink

2.11.0

What’s Changed

Fixed

  • Inlined block stylesheets shipped unminified source. acf_blocks_minify_loader_src() only runs when a sheet is printed as a <link>. Styles registered from block.json also carry path data, and wp_maybe_inline_styles() reads that file straight off disk and prints its bytes into the page without the URL ever reaching style_loader_src — so every page rendering one of those blocks carried the readable source. It hit the four blocks whose block.json declares style as an array (Callout, Feature Grid, Post Display, Table of Contents); a string style is pre-registered by acf_blocks_register_styles() under the handle WordPress would have generated, so core bails before attaching path. acf_blocks_minify_registered_styles() now rewrites both src and path on plugin-owned registrations before the inline pass. Rewriting the registration rather than the printed tag keeps the inlining, so pages still avoid the extra request and just carry less of it — measured on a published Table of Contents post, 2,279 inlined bytes down to 1,494.
  • ACF blocks now keep their baseline rhythm in the block editor. acf_blocks_register_layout_styles() attaches tokens.css and block-layout.css with wp_enqueue_block_style(), which only fires when a block renders on the front end — the editor canvas never received them. A heading following a Table of Contents block sat flush against it while editing and had 1.5rem of air once published. The sheets are now also enqueued on enqueue_block_assets in admin, the hook WordPress injects into the canvas document. Front-end delivery still goes through wp_enqueue_block_style(), so pages only pay for the sheets when a block is actually present.
  • block-layout.css matches the editor’s markup. The front end renders the block element itself carrying .acf-block, while the editor wraps the same output in .wp-block and puts acf-block-component / acf-block-<name> on the wrapper — so .acf-block matched nothing inside the canvas even once the sheet loaded. The rule now carries a second selector for the wrapper. The two cannot match the same element, so the margin is never doubled. That second selector deliberately does not use :where(): the block editor sets its own margins on .wp-block elements, so a zero-specificity rule loses to them. Measured on a Table of Contents block followed by a heading — 0px with :where(), 24px without, against 24px on the published page.

Commits

  • 2.11.0: serve minified CSS for inlined block stylesheets (ae06e79)

Stats

  • Commits: 1
  • Changes: 7 files changed, 212 insertions(+), 4 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.10.2

What’s Changed

Fixed

  • Collapsible TOC rendered a double border on themes that style <details> as a card. The block drew its own hairline frame and summary divider around the <details> element, so themes with disclosure-card styling (such as Marketers Delight) showed two nested borders. The render template now adds an acf-toc--collapsible modifier class, and the block stylesheet drops its frame, summary divider, and duplicate content padding for that variant, letting the theme’s disclosure card own the chrome. Non-collapsible TOCs are unchanged.

Notes

  • blocks/toc-block/block.json now declares "version", so the enqueued stylesheet URL busts CDN caches on plugin updates.

Commits

  • 2.10.2: fix collapsible TOC double border on themes with details cards (55a1f59)

Stats

  • Commits: 1
  • Changes: 9 files changed, 49 insertions(+), 12 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.10.1

What’s Changed

Fixed

  • Filled buttons were unreadable in 2.10.0. The 2.10.0 conversion mapped several filled controls to --acfb-surface-3, a light neutral, while leaving their text inverted white — so they rendered as pale text on a pale fill. Affected: the Product Box primary and Amazon buttons and its discount badge, the Product List primary button and rank chip, and the Coupon Code copy button.
  • Filled controls now use --acfb-button, which the theme guarantees pairs with --acfb-button-text. Measured 5.44:1 in both light and dark.
  • The Product Box Amazon button is now a readable neutral secondary (dark text on a light fill, 13.4–14.4:1) rather than a second full-strength fill, so the card keeps one primary action. Its hover no longer darkens toward the brand colour underneath dark text.

Notes

  • Added a regression test rejecting any filled control whose background is a --acfb-surface-* token while its paired text is --acfb-on-primary.

Commits

  • 2.10.1: fix unreadable filled buttons from the token conversion (79879cf)

Stats

  • Commits: 1
  • Changes: 11 files changed, 63 insertions(+), 12 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.10.0

What’s Changed

Added

  • Design token bridge (assets/css/tokens.css). Every block now styles through --acfb-* tokens that resolve to Marketers Delight theme tokens when MD is active and to neutral literals otherwise. Dark mode follows the theme’s own toggle with no per-block rules.
  • Build-time asset minification (tools/build-assets.php). Writes a .min sibling for every CSS and JS file; the enqueue layer serves it, SCRIPT_DEBUG serves the source, and a missing artifact falls back to the source rather than 404ing. composer build regenerates, composer generated (and CI) verifies freshness.
  • Keyboard support for the Tabs block: arrow keys, Home/End, and a roving tabindex, per the ARIA tabs pattern.

Changed

  • Tabs redesigned as a minimal segmented control. Tab buttons no longer carry wp-element-button, which had rendered every tab as a filled CTA button. Pills, underline and boxed variants retained.
  • Tabs behaviour moved out of an inline <script> into tabs.js, registered as the block’s viewScript.
  • 797 hardcoded colours across the block stylesheets reduced to 89, all of which are deliberate (social brand colours, code-editor syntax themes, video letterboxing).
  • 54 hand-rolled [data-theme] override rules removed; the token layer handles both schemes.

Fixed

  • Video block rendered on the front end but not in the block editor. The player is absolutely positioned, so the wrapper’s padding-bottom was the block’s only source of height — if the stylesheet did not reach the editor the block collapsed to 0px and vanished. The aspect ratio is now carried inline, so the box survives with no CSS at all.
  • Pros & Cons is now dark-mode capable. It previously hardcoded dark text on light pink and green tints, which was unreadable on a dark background.
  • Semantic status labels (changelog, pricing) sat at 4.0–4.2:1 against their own tint, under the WCAG AA floor. They are now mixed toward the text colour.
  • Button fills used --color-primary, which MD lightens for dark mode, dropping white button text to 3.3:1. They now use --color-button, which MD keeps stable and guarantees pairs with --color-button-text.
  • Removed the rounded-container-plus-thick-coloured-rail treatment from the opinion box, video caption, compact URL preview and Pros & Cons.

Notes

  • Total shipped CSS dropped from ~291 KB to ~257 KB: deleting the dark-mode override rules more than pays for the token layer.
  • Every measured text/background pair passes WCAG AA in both light and dark (19 pairs across 14 block palettes, worst 5.44:1).

Commits

  • Correct 2.10.0 changelog date to release day (5fd652d)
  • 2.10.0: MD design tokens, minified assets, Tabs redesign (842f9da)

Stats

  • Commits: 2
  • Changes: 91 files changed, 2655 insertions(+), 322 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.9.6

What’s Changed

Fixed

  • Kept the Table of Contents frame padding visually even under opinionated theme margins by normalizing only its outer title and list-edge spacing. Numbering, marker indentation, link treatment, and spacing between list items continue to inherit from the theme.

Commits

  • Release 2.9.6: fix TOC edge spacing (76543dd)

Stats

  • Commits: 1
  • Changes: 6 files changed, 58 insertions(+), 4 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.9.5

What’s Changed

Changed

  • Replaced the Table of Contents’ thick rounded accent treatment with a quiet square hairline frame while retaining the title divider, active-state emphasis, semantic list styles, and theme inheritance.
  • Added a zero-specificity 1.5rem block-end spacing fallback to every rendered .acf-block; existing theme and block margins continue to take precedence.

Commits

  • Release 2.9.5: refine block spacing and TOC (803931a)

Stats

  • Commits: 1
  • Changes: 10 files changed, 79 insertions(+), 13 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.9.4

What’s Changed

Changed

  • Gave the theme-native Table of Contents a restrained currentColor frame, stronger leading edge, title divider, and modest inset spacing without restoring plugin backgrounds, hard-coded colors, fixed typography, or custom markers.

Commits

  • Release 2.9.4: refine TOC styling (0230105)

Stats

  • Commits: 1
  • Changes: 6 files changed, 61 insertions(+), 8 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.9.3

What’s Changed

Added

  • Optional semantic fallback styles for minimal themes. Settings → ACF Blocks License → Theme Compatibility Styles can load a small zero-specificity stylesheet for common semantic HTML inside ACF blocks. It is disabled by default and loads in both the editor and frontend only when enabled.
  • Every rendered acf/* block now exposes a predictable .acf-block class for theme authors, whether or not the fallback stylesheet is enabled.

Changed

  • The Table of Contents block now inherits its visual design from the active theme. Removed plugin-defined backgrounds, colors, borders, radii, fixed type sizing/casing, link decoration, hover fills, spacing, custom markers, dark-mode overrides, and scrollbar styling.
  • Numbered, bulleted, and plain list modes remain explicit. Ordered and unordered lists use native theme-aware markers, while plain lists stay marker-free.
  • Sticky positioning, smooth scrolling, reduced-motion handling, active-section emphasis, and heading scroll offsets remain intact.
  • The Accordion block is now entirely theme-native. Its native <details>/<summary> behavior needs no plugin stylesheet, so the CSS asset and metadata references were removed.
  • Tabs now ship only structural, state, accessibility, responsive, and style-mode rules. Removed the plugin palette, light/dark overrides, opacity system, decorative fills, transition effects, container spacing, and forced typography while retaining all four tab treatments and panel switching.
  • Section block CSS now covers structure only. Removed inactive default palette, dark-mode, width, spacing, and container rules. The template now emits its scoped wrapper and alignment classes so user-selected video and overlay backgrounds layer correctly without imposing a design.

Commits

  • Release 2.9.3: inherit theme block styles (9b681c3)

Stats

  • Commits: 1
  • Changes: 24 files changed, 769 insertions(+), 113 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.9.2

What’s Changed

Changed

  • The migrator now strips the retired FAQ-schema flag from existing content. 2.9.1 made acf_accord_enable_faq_schema inert; this removes it (and its _acf_accord_enable_faq_schema field reference) from acf/accordion blocks when the migrator runs, so old posts no longer carry a key nothing reads.
  • Removals are reported under their own Retired FAQ schema flag removed category in the scan breakdown and per-post badges, rather than being folded into “Accordion fields fixed”.

Notes

  • Expect a one-time jump in the migrator’s affected-post count. Posts whose only issue is the stale flag now show up as needing migration. Rendering is unchanged either way — this is a data cleanup, not a fix for a visible bug, so it is safe to defer.
  • Accordion blocks with nothing to clean are left byte-identical and are not rewritten, so no post gains a revision for no reason.

Commits

  • 2.9.2: strip retired FAQ schema flag from existing content (b2b86b5)

Stats

  • Commits: 1
  • Changes: 5 files changed, 130 insertions(+), 14 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate