GDPR/CCPA compliant cookie consent banner. No dependencies, mobile responsive, accessible.
Simple cookie consent with accept/decline buttons.
<div data-tradecalcs-cookie-banner
data-message="We use cookies to improve your experience."
data-accept-text="Accept"
data-decline-text="Decline">
</div>
Current Status:
Include a link to your privacy policy for full compliance.
<div data-tradecalcs-cookie-banner
data-message="We use cookies to improve your experience and analyze site traffic."
data-accept-text="Accept All"
data-decline-text="Reject All"
data-policy-url="/privacy"
data-policy-text="Privacy Policy">
</div>
Customize the message to fit your business.
<div data-tradecalcs-cookie-banner
data-message="This site uses cookies to remember your preferences and show you relevant project examples."
data-accept-text="Got it"
data-decline-text="No thanks"
data-policy-url="/privacy"
data-policy-text="Learn more">
</div>
Step 1: Add the CSS and JavaScript files to your HTML:
<!-- Add to <head> -->
<link rel="stylesheet" href="/widgets/cookie-banner.css">
<!-- Add before closing </body> -->
<script src="/widgets/cookie-banner.js"></script>
Step 2: Add the banner to your page (typically in footer or just before </body>):
<div data-tradecalcs-cookie-banner
data-message="We use cookies to improve your experience."
data-accept-text="Accept"
data-decline-text="Decline"
data-policy-url="/privacy"
data-policy-text="Privacy Policy">
</div>
Note: Replace d790a6cc.tradecalcs.pages.dev with tradecalcs.com once the production domain is configured.
data-tradecalcs-cookie-banner (required) — Main containerdata-message (optional) — Cookie consent message (default: "We use cookies to improve your experience and analyze site traffic.")data-accept-text (optional) — Accept button text (default: "Accept")data-decline-text (optional) — Decline button text (default: "Decline")data-policy-url (optional) — Privacy policy URL (e.g., "/privacy")data-policy-text (optional) — Privacy policy link text (default: "Privacy Policy")--tc-cookie-bg — Banner background--tc-cookie-border — Banner border color--tc-cookie-text — Text color--tc-cookie-link — Policy link color--tc-cookie-link-hover — Policy link hover color--tc-cookie-btn-accept-bg — Accept button background--tc-cookie-btn-accept-hover — Accept button hover--tc-cookie-btn-decline-bg — Decline button background--tc-cookie-btn-decline-hover — Decline button hover--tc-cookie-padding — Banner padding--tc-cookie-gap — Gap between message and buttons--tc-cookie-radius — Border radius// Initialize all banners manually
TradeCalcsCookieBanner.init();
// Initialize specific banner
const element = document.querySelector('[data-tradecalcs-cookie-banner]');
TradeCalcsCookieBanner.initElement(element);
// Get consent status
const consent = TradeCalcsCookieBanner.getConsent();
// Returns: true (accepted), false (declined), null (no choice yet)
// Clear consent (for testing or user request)
TradeCalcsCookieBanner.clearConsent();
// Listen for consent response
document.addEventListener('tc-cookie-consent-changed', function(e) {
console.log('Consent changed:', e.detail);
// { accepted: true/false, timestamp: "2026-05-20T..." }
});
This widget helps you comply with cookie consent laws:
// Check consent before loading analytics
const consent = TradeCalcsCookieBanner.getConsent();
if (consent === true) {
// User accepted - load analytics
loadGoogleAnalytics();
loadFacebookPixel();
} else if (consent === false) {
// User declined - don't load analytics
console.log('Analytics disabled by user choice');
} else {
// No choice yet - wait for response
document.addEventListener('tc-cookie-consent-changed', function(e) {
if (e.detail.accepted) {
loadGoogleAnalytics();
loadFacebookPixel();
}
});
}
Works in all modern browsers with localStorage:
Our Network
Built by Cali Dream Construction · CSLB #1054602
Need a custom calculator for your trade business? We'll get back to you within 24 hours.