v2.0 — 3rd December 2025
Major release. Tagged on GitHub as v2.0.0.
- Automatic integration with Google Tag Manager and Silktide Analytics — set
gtagon a consent type and the manager callsgtag('consent', 'update', {...})for you on every change. - A single GTM
dataLayerevent (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 neweventNameconfig 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
scriptsproperty 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
debugconfig 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
noreferrerto outbound links to prevent tabnabbing. - Added a
titleattribute 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.showRejectButtonoption — users should always be able to reject consent immediately. - Removed
compliance.complianceLinkandtext.banner.policyLinkText; HTML can now be placed directly insidetext.banner.description,text.preferences.description, and consent-type descriptions. - Renamed
text.banner.rejectOptionalButtonTexttotext.banner.rejectNonEssentialButtonTextwith a new default of “Reject non-essential”. - Renamed
text.banner.preferencesLinkTexttotext.banner.preferencesButtonText. - Renamed
text.preferences.credittotext.preferences.creditLinkText. - Added accessible-label options:
text.banner.acceptAllButtonAccessibleLabel,text.banner.rejectNonEssentialButtonAccessibleLabel,text.banner.preferencesButtonAccessibleLabel, andtext.preferences.creditTextAccessibleLabel. - Accept and reject buttons are now styled the same by default, so neither is visually preferred over the other.