Barra de consentimento de cookies, com aceite/recusa e expiração configurável.
Aviso legal de cookies/rastreamento — some depois que o usuário decide, e não volta a aparecer até a chave expirar no localStorage.
Checa o localStorage na chave configurada antes de mostrar. Ao aceitar, grava a data de expiração; ao recusar, só chama o callback (não grava nada, então volta a perguntar na próxima visita).
Barra padrão (modelo 1)
<div sw-lgpd
sw-lgpd-msg="Usamos cookies para melhorar sua experiência."
sw-lgpd-ok="Aceitar todos"
sw-lgpd-nao="Recusar">
</div>
Card flutuante (modelo 2)
<div sw-lgpd
sw-lgpd-modelo="2"
sw-lgpd-msg="Usamos cookies para personalizar o conteúdo."
sw-lgpd-ok="Aceitar"
sw-lgpd-link="/privacidade">
</div>
Compacto central (modelo 3)
<div sw-lgpd
sw-lgpd-modelo="3"
sw-lgpd-msg="Usamos cookies para otimizar sua navegação."
sw-lgpd-ok="OK">
</div>
Dark contrastado (modelo 4)
<div sw-lgpd
sw-lgpd-modelo="4"
sw-lgpd-msg="Este site utiliza cookies essenciais."
sw-lgpd-ok="Entendi"
sw-lgpd-link="/politica">
</div>
<button type="button" class="sw-btn sw-btn-out" id="lgpdBtn">Mostrar a barra de cookies</button>
<script>
document.getElementById('lgpdBtn').addEventListener('click', () => {
SW.Lgpd.clear('sw_lgpd_demo');
SW.Lgpd.init({
key: 'sw_lgpd_demo',
msg: 'Usamos cookies pra melhorar sua experiência.',
accept: 'Aceitar',
reject: 'Recusar',
link: '/privacidade',
onAccept: () => SW.Alert.ok('Aceito — não aparece de novo por 365 dias.'),
onReject: () => SW.Alert.inf('Recusado — volta a perguntar na próxima visita.'),
});
});
</script>
sw-lgpd-msgsw-lgpd-modelosw-lgpd-ok / sw-lgpd-naosw-lgpd-linksw-lgpd-diassw-lgpd-keyNenhum.
Nenhum.
SW.Lgpd.init(opções)SW.Lgpd.clear(key?)localStorage disponível (não funciona em modo totalmente privado que bloqueia storage).<i class="swi-check-shield"> e os botões usam classes próprias (.sw-lgpd-ok/.sw-lgpd-rej) em vez dos padrões documentados em Elementos — troca é cosmética, ainda não feita.