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

Componente de gestão de consentimento de cookies (LGPD), obrigatório em sites e aplicativos do Governo Federal que coletam dados de usuários.

Apresenta duas etapas visuais:

  • default – barra inferior com texto informativo e botões de ação;
  • open – painel de tela cheia com lista de classes de cookies configuráveis.

A persistência do consentimento é responsabilidade do consumidor: ouça o evento brCookiebarAccept e armazene o payload onde desejar (localStorage, cookie HTTP, API etc.).

Para a documentação completa, consulte o Design System do GovBR.

Exemplo(s)

Padrão em que o usuário pode configurar as preferências de cookies individualmente.

Desktop (100%)
Tablet - 768px
iPhone (iOS) - 390x844
Android - 360x800
Compartilhar URL
Mudar fundo
Abrir no StackBlitz
Tela cheia
HTML
Controles
JS
CSS
Console
Angular (Somente leitura)
React (Somente leitura)
Vue (Somente leitura)
Acessibilidade
Recolher controles e código
Formatar código
Resetar código para o estado inicial
Copiar para a área de transferência

Fluxo, camada e modalidade

O aviso simples permanece como barra fixed, fora do fluxo da página. Com scrim ou no modo open, o container usa <dialog> modal e a top layer quando disponível. A máscara ocupa a subcamada local 0 e o painel a 1, garantindo que cliques e foco alcancem sempre os controles do painel.

Sem showModal(), o cookiebar usa a camada bloqueadora 4. Nesse fallback CSS, mantenha somente um bloqueador legado ativo por vez.

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

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

A 1.x modelava o conteúdo da cookiebar em um objeto e controlava sua abertura com open. Na 2.x, consentimento, painel e ações são expressos por propriedades e composição próprias.

Propriedades e composição

API 1.xAPI 2.xAção na migração
mode, scrim, selectAllConfigure o fluxo de consentimento da versão atual.
contentslots e labels atuaisMova o texto e as informações para a composição da cookiebar.
langRemova; traduza os textos por labels e conteúdo da aplicação.
openshowRenomeie o estado de visibilidade.

Use os métodos close, openDefault e openPanel, além de getSelectedCookies, para integrar o consentimento. Trate os eventos atuais da cookiebar em vez do evento report da 1.x.

Exemplo

1.x:

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

2.x:

<br-cookiebar show mode="default" scrim>
<span slot="description">Usamos cookies para melhorar sua experiência.</span>
</br-cookiebar>

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