JS Module

Y2Lgpd Cookie Consent

Banner de consentimento de cookies em conformidade com LGPD/GDPR - 4 modelos visuais, inicialização via atributo HTML ou JavaScript, persistência em localStorage e callbacks de aceite/rejeição.

1. Demo ao Vivo

Clique em cada modelo para ver o banner aparecer na página. O banner só aparece uma vez - use Y2Lgpd.clear() no console para resetar.

2. Modelos

Escolha o modelo com y2lgpd-modelo (1-4) ou modelo: no JS.

Barra fixa na parte inferior da página, ocupa toda a largura.

1 Barra inferior padrão

Ideal para notificações gerais - máxima visibilidade.

Card no canto inferior esquerdo - menos intrusivo.

2 Card flutuante

Boa escolha para sites com muito conteúdo.

Barra inferior centralizada - layout compacto e limpo.

3 Compacto centralizado

Ideal para mensagens curtas e CTAs diretos.

Fundo escuro fixo, independente do tema da página.

4 Dark / Contrastado

Alta visibilidade em qualquer tema claro ou escuro.

3. Uso via Atributo HTML

A forma mais simples - adicione y2lgpd em qualquer elemento e o módulo inicializa automaticamente ao carregar a página.

Mínimo

Completo

Flutuante (modelo 2)

Dark (modelo 4)

4. Uso via JavaScript

Para controle total com callbacks, modelos e chaves customizadas.

Configuração completa

Y2Lgpd.init({
  msg:      'Usamos cookies para melhorar sua experiência.',
  accept:   'Aceitar todos',
  reject:   'Rejeitar',
  link:     '/privacidade',
  linkTxt:  'Política de privacidade',
  modelo:   1,          // 1 | 2 | 3 | 4
  days:     365,        // dias até expirar
  key:      'yd_consent',

  onAccept() {
    console.log('Aceito!');
    initAnalytics();
  },

  onReject() {
    console.log('Rejeitado.');
  }
});

Verificar e limpar

// Verificar se já consentiu
const saved = localStorage.getItem('yd_consent');
if (saved) {
  initAll(); // já respondeu
}

// Limpar consentimento
// (banner reaparece na próxima visita)
Y2Lgpd.clear();              // chave padrão
Y2Lgpd.clear('minha_chave'); // chave custom

Banners independentes

// Use chaves diferentes por finalidade
Y2Lgpd.init({
  key:    'consent_analytics',
  modelo: 2,
  msg:    'Aceita cookies de analytics?',
  onAccept: initGA
});

Y2Lgpd.init({
  key:    'consent_ads',
  modelo: 2,
  msg:    'Aceita cookies de marketing?',
  onAccept: initAds
});

5. Integração com Analytics

Padrão recomendado - carrega scripts de rastreamento somente após consentimento.

window.addEventListener('DOMContentLoaded', () => {

  // Consentimento já salvo - carregar scripts direto
  if (localStorage.getItem('yd_consent')) {
    loadAnalytics();
    return;
  }

  // Exibir banner pela primeira vez
  Y2Lgpd.init({
    msg:    'Usamos cookies para melhorar sua experiência.',
    accept: 'Aceitar',
    reject: 'Recusar',
    link:   '/privacidade',
    modelo: 2,
    key:    'yd_consent',
    onAccept() { loadAnalytics(); },
    onReject()  { console.log('Analytics desativado.'); }
  });
});

function loadAnalytics() {
  const s = document.createElement('script');
  s.src = 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXX';
  document.head.appendChild(s);
  window.dataLayer = window.dataLayer || [];
  function gtag(){ dataLayer.push(arguments); }
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXX');
}

6. Quick Reference

Atributos HTML

Atributo Padrão Descrição
y2lgpd - Ativa o módulo no elemento
y2lgpd-msg Usamos cookies… Texto do banner
y2lgpd-ok Aceitar Texto do botão de aceite
y2lgpd-nao - Texto do botão de rejeição (oculto se vazio)
y2lgpd-link - URL da política de privacidade
y2lgpd-modelo 1 Modelo visual: 1 barra — 2 flutuante — 3 compacto — 4 dark
y2lgpd-dias 365 Dias até o consentimento expirar
y2lgpd-key yd_lgpd Chave no localStorage

API JavaScript

Método Descrição
Y2Lgpd.init(opts) Exibe o banner se o consentimento ainda não foi dado
Y2Lgpd.clear(key?) Limpa o consentimento do localStorage - banner reaparece
opts.onAccept() Callback chamado quando o usuário aceita
opts.onReject() Callback chamado quando o usuário rejeita