2 minute read

Change log

v2.0 — 3rd December 2025

Major release. Tagged on GitHub as v2.0.0.

  • Automatic integration with Google Tag Manager and Silktide Analytics — set gtag on a consent type and the manager calls gtag('consent', 'update', {...}) for you on every change.
  • A single GTM dataLayer event (stcm_consent_update) is now used for all consent types rather than a separate event per type. The event name can be overridden with the new eventName config option.
  • Consent updates and events are only sent when consent values have actually changed since the previous state.
  • Easier support for injecting custom scripts via the new scripts property on each consent type.
  • When a user revokes consent for a consent type that had injected scripts, the page now automatically reloads to ensure a clean state.
  • If the cookie banner is blocking and the user clicks outside it without making a choice, the banner now nudges side-to-side to draw attention.
  • Closing the preferences modal (with the X button) no longer triggers consent updates, even if checkboxes were toggled.
  • Renamed the “Accept all” button on the preferences modal to “Save and close” (configurable as text.preferences.saveButtonText).
  • New debug config option that logs helpful messages to the console for consent updates and GTM events.
  • Consistent config naming throughout (prompt, preferences, icon, backdrop).
  • Dramatically simpler API surface (init, update, resetConsent, getInstance) — see API methods.
  • Design improvements throughout the prompt and preferences modal.

v1.1 — 14th August 2025

Accessibility and security improvements.

  • Increased the clickable area of links and buttons to meet accessibility hit-target guidelines.
  • All banner and modal content remains accessible at a browser zoom level of 400%.
  • Added noreferrer to outbound links to prevent tabnabbing.
  • Added a title attribute to the cookie icon button.
  • Improved the logic that writes consent values to localStorage.

v1.0 — 28th January 2025

First public release. The deltas below describe the configuration changes from the pre-release internal version.

  • Removed the compliance.showRejectButton option — users should always be able to reject consent immediately.
  • Removed compliance.complianceLink and text.banner.policyLinkText; HTML can now be placed directly inside text.banner.description, text.preferences.description, and consent-type descriptions.
  • Renamed text.banner.rejectOptionalButtonText to text.banner.rejectNonEssentialButtonText with a new default of “Reject non-essential”.
  • Renamed text.banner.preferencesLinkText to text.banner.preferencesButtonText.
  • Renamed text.preferences.credit to text.preferences.creditLinkText.
  • Added accessible-label options: text.banner.acceptAllButtonAccessibleLabel, text.banner.rejectNonEssentialButtonAccessibleLabel, text.banner.preferencesButtonAccessibleLabel, and text.preferences.creditTextAccessibleLabel.
  • Accept and reject buttons are now styled the same by default, so neither is visually preferred over the other.
Back to top