Ir para o conteúdo principal
WBC - GovBR-DS
Copiar página como Markdown para IA

Cookiebar

Componente estável e recomendada para novos projetos.
Anatomia, uso, comportamento visual e recomendações conceituais são mantidos pelo Padrão Digital de Governo. Esta página documenta a implementação Web Components e sua API executável.

Visão Geral​

O br-cookiebar avisa sobre o uso de cookies e registra o consentimento da pessoa, por categoria e por cookie.

Ele aparece como uma barra no rodapé (mode="default") e abre um painel com as categorias quando a pessoa escolhe "Definir Cookies" (mode="open").

Como usar​

  1. Escreva o texto da barra em info-text.
  2. Coloque o título e a introdução do painel em um br-cookiebar-header.
  3. Crie um br-cookiebar-group por categoria e, dentro dele, um br-cookiebar-cookie por cookie. Use group-opt-out="false" nas categorias que não podem ser desativadas.
  4. Adicione os links de política em br-cookiebar-link, no slot links.
  5. Ouça brCookiebarResponse para salvar a escolha e ative show somente enquanto não houver escolha salva.
<br-cookiebar info-text="Usamos cookies para melhorar sua experiência.">
<br-cookiebar-header slot="header" main-title="Aviso de cookies" entry-text="Escolha quais cookies aceitar."></br-cookiebar-header>

<br-cookiebar-group group-id="necessarios" group-name="Necessários" group-text="Essenciais para o site funcionar." group-opt-out="false">
<br-cookiebar-cookie cookie-id="sessao" cookie-name="sessao" expires="Ao fechar o navegador" domain="exemplo.gov.br" enterprise="Próprio" purpose="Manter a sessão" description="Identifica a sessão de acesso."></br-cookiebar-cookie>
</br-cookiebar-group>

<br-cookiebar-link slot="links" name="Política de privacidade" href="/privacidade"></br-cookiebar-link>
</br-cookiebar>
const cookiebar = document.querySelector('br-cookiebar');
cookiebar.show = !localStorage.getItem('consentimento');
cookiebar.addEventListener('brCookiebarResponse', (event) => {
localStorage.setItem('consentimento', JSON.stringify(event.detail));
});

event.detail traz o estado de cada categoria (cookieGroups) e de cada cookie (cookieList). Para reabrir o painel depois, por exemplo num link "Preferências de cookies", chame openPanel().

Quando evitar​

  • Avisos que não tratam de consentimento: use br-message ou br-notification.

Consulte as diretrizes de design do GovBR.

Exemplo(s)​

Desktop (100%)
Tablet - 768px
iPhone (iOS) - 390x844
Android - 360x800
Compartilhar URL
Ativar movimento reduzido
Mudar fundo
Abrir no StackBlitz
Mais opções
Tela cheia
Carregando preview…
HTML
Controles do componente
Console: logs, eventos e erros
Angular (Somente leitura)
React (Somente leitura)
Vue (Somente leitura)
Acessibilidade
Recolher controles e código
Desfazer alteração
Refazer alteração
Comparar alterações
Formatar código
Resetar código para o estado inicial
Escolher formato para copiar

Sobreposição​

A barra fica fixa no rodapé, sobre o conteúdo, sem empurrar a página. O painel (mode="open") e a barra com scrim abrem como diálogo modal: o restante da página fica inacessível até o diálogo fechar.

Evite abrir outro modal ao mesmo tempo que o cookiebar.

Propriedades​

acceptButton​

Atributoaccept-button
DescriçãoTexto do botão primário de aceite. Padrão: Aceitar.
Tipostring
Valor padrão'Aceitar'

allAlertMessage​

Atributoall-alert-message
DescriçãoMensagem exibida abaixo do checkbox geral quando está desmarcado ou com seleção parcial.
Tipostring
Valor padrão---

allOptOut​

Atributoall-opt-out
DescriçãoDefine se o cookiebar opera no padrão opt-out (true, recomendado) ou opt-in (false).
- opt-out (true): botão secundário "Definir Cookies"; usuário pode configurar cookies.
- opt-in (false): botão secundário "Ver Política de Cookies"; painel é somente leitura.
Tipoboolean
Valor padrãotrue

closeLabel​

Atributoclose-label
Descriçãoaria-label do botão fechar exibido no canto do painel expandido (mode="open").
Permite traduzir o rótulo para outros idiomas.
Tipostring
Valor padrão'Fechar'

cookieGroupsLabel​

Atributocookie-groups-label
DescriçãoRótulo do título da seção de grupos de cookies.
Tipostring
Valor padrão'Classes de cookies'

customId​

Atributocustom-id
DescriçãoIdentificador único; gerado automaticamente quando omitido.
Tipostring
Valor padrãogenerateUniqueId()

defaultPanelLabel​

Atributodefault-panel-label
Descriçãoaria-label da barra de aviso de cookies (mode="default").
Deve descrever o propósito da região de forma sucinta (ex: "Aviso de cookies").
Tipostring
Valor padrão'Aviso de cookies'

infoText​

Atributoinfo-text
DescriçãoTexto informativo exibido na barra inferior (modo default), descrevendo a política de cookies. (obrigatório)
Tipostring
Valor padrão---

linksLabel​

Atributolinks-label
Descriçãoaria-label do elemento <nav> que envolve os links complementares no painel expandido.
Permite traduzir o rótulo para outros idiomas.
Tipostring
Valor padrão'Links complementares'

mode​

Atributomode
DescriçãoEstado visual atual do painel. Valores inválidos usam default.
- default: barra inferior com texto e botões.
- open: painel de tela cheia com grupos de cookies configuráveis.
Tipo"default" | "open"
Valor padrão'default'

optInButton​

Atributoopt-in-button
DescriçãoTexto do botão secundário quando all-opt-out="false".
Tipostring
Valor padrão'Ver Política de Cookies'

optOutButton​

Atributoopt-out-button
DescriçãoTexto do botão secundário quando all-opt-out="true".
Tipostring
Valor padrão'Definir Cookies'

panelLabel​

Atributopanel-label
Descriçãoaria-label do painel expandido (mode="open"), que possui role="dialog".
Leitores de tela anunciam este texto ao entrar no diálogo modal de configuração de cookies.
Deve descrever o propósito do diálogo de forma sucinta (ex: "Configurações de cookies").
Tipostring
Valor padrão'Configurações de cookies'

rejectButton​

Atributoreject-button
DescriçãoTexto do botão de rejeição dos cookies não obrigatórios.
Exibido apenas quando show-reject-button="true".
Tipostring
Valor padrão'Rejeitar não obrigatórios'

scrim​

Atributoscrim
DescriçãoQuando true, exibe uma camada semitransparente (scrim) sobre o conteúdo da página
abaixo do painel default, sinalizando que o cookiebar requer atenção.

Efeito no foco: com scrim=true, o atributo inert é aplicado nos irmãos do
cookiebar no DOM, prendendo o foco e o cursor virtual do leitor de tela dentro do
painel default enquanto ele estiver visível. Com scrim=false (padrão), nenhum trap
é ativado — o usuário pode navegar livremente pela página, em conformidade com
WCAG 2.1.2 (No Keyboard Trap). Use scrim=true apenas quando o cenário de negócio
exigir que a decisão sobre cookies seja tomada antes de qualquer outra interação.

No modo open (diálogo modal), o inert é aplicado independentemente do valor de scrim.
Tipoboolean
Valor padrãofalse

selectAll​

Atributoselect-all
DescriçãoEstado inicial do checkbox "Selecionar tudo".
Quando true, todos os grupos opt-out iniciam selecionados.
Tipoboolean
Valor padrãofalse

selectAllLabel​

Atributoselect-all-label
DescriçãoTexto do checkbox geral quando está totalmente selecionado (ação: desselecionar).
Tipostring
Valor padrão'Selecionar tudo'

show​

Atributoshow
DescriçãoControla a visibilidade do componente.
O consumidor é responsável por definir este valor com base na persistência do consentimento
(ex: verificar se já existe um cookie de consentimento salvo).
Tipoboolean
Valor padrãofalse

showRejectButton​

Atributoshow-reject-button
DescriçãoQuando true, exibe o botão "Rejeitar não obrigatórios" nos painéis default e open.
Cookies de grupos com group-opt-out="false" (sempre ativos) não são afetados.
Tipoboolean
Valor padrãofalse

unselectAllLabel​

Atributounselect-all-label
DescriçãoTexto do checkbox geral quando está desmarcado ou indeterminado (ação: selecionar).
Tipostring
Valor padrão'Desselecionar tudo'

Slots​

NomeDescrição
"actions"Recebe botões de ação. Se vazio, o componente renderiza os botões padrão.
"default"Recebe os subcomponentes br-cookiebar-group, br-cookiebar-note-group e br-cookiebar-note.
"header"Recebe br-cookiebar-header ou HTML livre.
"links"Recebe links complementares (br-cookiebar-link ou elementos <a> livres).

Eventos​

EventoDescriçãoDepreciaçãoPropagação
brCookiebarAcceptSinal emitido quando o usuário clica em Aceitar. Não carrega payload — ouça brCookiebarResponse para obter o estado completo de consentimento.---true
brCookiebarCloseEmitido quando o painel recolhe para modo default.---true
brCookiebarHideEmitido quando o componente é ocultado (show → false).---true
brCookiebarOpenEmitido quando o painel expande para modo open.---true
brCookiebarPolicyClickEmitido quando o usuário clica no botão secundário no modo opt-in (allOptOut=false). O consumidor é responsável por navegar para a página de Política de Cookies.---true
brCookiebarRejectSinal emitido quando o usuário clica em "Rejeitar não obrigatórios". Não carrega payload — ouça brCookiebarResponse para obter o estado completo de consentimento.---true
brCookiebarResponseEmitido após brCookiebarAccept ou brCookiebarReject, com o estado final de consentimento. É o único evento que carrega CookiebarOutputData — use-o para persistir o consentimento (localStorage, cookie HTTP, API etc.). Não é disparado durante interações com checkboxes e switches internos.---true
brCookiebarShowEmitido quando o componente se torna visível (show → true).---true

Métodos​

close​

DescriçãoOculta o cookiebar.
Assinaturaclose() => Promise<void>
Parâmetros---

getSelectedCookies​

DescriçãoRetorna o JSON com o estado atual de seleção de todos os grupos e cookies.
AssinaturagetSelectedCookies() => Promise<CookiebarOutputData>
Parâmetros---

openDefault​

DescriçãoExibe o cookiebar no modo default (barra inferior).
AssinaturaopenDefault() => Promise<void>
Parâmetros---

openPanel​

DescriçãoExibe o cookiebar diretamente no modo open (painel de tela cheia).
AssinaturaopenPanel() => Promise<void>
Parâmetros---

CSS Shadow Parts​

NomeDescrição
"body"Corpo do painel aberto (com rolagem).
"container"Container raiz do componente.
"default-panel"Painel fechado (modo default).
"footer"Rodapé com botões de ação.
"header"Cabeçalho do painel aberto.
"open-panel"Painel expandido (modo open).
"scrim"Camada de sobreposição opcional.

Dependências​

Subcomponentes​

Depende de​

Gráfico​

Migração de <br-cookiebar> (1.x → 2.x)​

O conteúdo deixou de ser um objeto e passou a ser montado com subcomponentes.

1.x2.xO que fazer
contentsubcomponentesMonte com br-cookiebar-header, br-cookiebar-group, br-cookiebar-cookie e br-cookiebar-link.
lang—Remova. Escreva os textos no idioma da aplicação.
openshowRenomeie.
evento reportbrCookiebarResponseLeia a escolha em event.detail.

Para abrir e fechar pelo código, use openDefault(), openPanel() e close(). Para ler a escolha a qualquer momento, use getSelectedCookies().

1.x:

<br-cookiebar :content="content" lang="pt-BR" open></br-cookiebar>

2.x:

<br-cookiebar show info-text="Usamos cookies para melhorar sua experiência.">
<br-cookiebar-header slot="header" main-title="Aviso de cookies"></br-cookiebar-header>
<!-- grupos e cookies -->
</br-cookiebar>
Comece aquiComponentesQuickstartsSobre o projetoRepositório GitLabVersõesDiscordGovBR-DSFAQWikiRedefinir cookies