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.
1 Barra inferior padrão
Ideal para notificações gerais - máxima visibilidade.
2 Card flutuante
Boa escolha para sites com muito conteúdo.
3 Compacto centralizado
Ideal para mensagens curtas e CTAs diretos.
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 |