SWCore / Componentes / LGPD / Cookies

LGPD / Cookies Componentes

Barra de consentimento de cookies, com aceite/recusa e expiração configurável.

O que é

Aviso legal de cookies/rastreamento — some depois que o usuário decide, e não volta a aparecer até a chave expirar no localStorage.

Como funciona

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).

Exemplos

Demo ao vivo — os 4 modelos Ao vivo
Uso via atributo HTML Ao vivo

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>
Uso via JavaScript (SW.Lgpd.init) Ao vivo
<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>

Atributos

sw-lgpd-msg
texto da mensagem
sw-lgpd-modelo
visual: 1 = barra inferior (padrão), 2 = card flutuante, 3 = compacto centralizado, 4 = dark/alto-contraste
sw-lgpd-ok / sw-lgpd-nao
texto dos botões aceitar/recusar
sw-lgpd-link
URL do link "saiba mais"
sw-lgpd-dias
dias até expirar o aceite (padrão 365)
sw-lgpd-key
chave usada no localStorage (padrão "sw_lgpd")

Variantes

Nenhum.

Eventos

Nenhum.

API (JavaScript)

SW.Lgpd.init(opções)
mostra a barra por código, com onAccept/onReject
SW.Lgpd.clear(key?)
limpa o aceite salvo (útil pra testar de novo)

Requisitos

  • Depende de localStorage disponível (não funciona em modo totalmente privado que bloqueia storage).

Limitações — o que ele não faz

  • O ícone usa <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.