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

Date Picker

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.
Subcomponente Modular

O br-date-picker é o subcomponente de calendário com grade visual de dias, meses e anos. É orquestrado automaticamente pelo componente principal <br-datetime-picker>, mas também pode ser utilizado de forma avulsa quando apenas um calendário estático for necessário.

Visão Geral​

Subcomponente de calendário visual do GovBR-DS, projetado para seleção interativa de datas individuais ou intervalos.

Papel na composição​

  • Exibe a grade mensal navegável com suporte a seleção de dia, navegação entre meses e anos, e destaque para a data atual e intervalos.
  • Implementa navegação acessível por teclado WAI-ARIA Grid (setas direcionais para dias e semanas).

Regra de uso e relacionamento​

Geralmente exibido dentro da superfície suspensa coordenada pelo br-datetime-picker. Pode ser declarado isoladamente quando a interface demandar um calendário estático permanentemente embutido na página (inline calendar).

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

Exemplo(s)​

Propriedades​

disabled​

Atributodisabled
DescriçãoDesabilita a interação do calendário quando ativo.
Tipoboolean
Valor padrãofalse

disabledDates​

Atributo---
DescriçãoLista de datas indisponíveis para seleção no calendário.
Recebe instâncias de Date por property binding; datas inválidas são ignoradas.
Exemplo de uso
const calendar = document.querySelector('br-date-picker');
calendar.disabledDates = [new Date(2026, 8, 7), new Date(2026, 8, 8)];
TipoDate[]
Valor padrão[]

fixedRowCount​

Atributofixed-row-count
DescriçãoDefine se o calendário deve manter um número fixo de linhas (6 semanas = 42 dias)
ou variar conforme o mês.

Quando true, o calendário sempre exibe 6 semanas completas.
Quando false, o calendário adapta-se ao mês, exibindo apenas as semanas necessárias.
Tipoboolean
Valor padrãofalse

locale​

Atributolocale
DescriçãoLocale usado para gerar nomes de meses e dias da semana.
Tipostring
Valor padrão'pt-BR'

rangeEnd​

Atributo---
DescriçãoData final selecionada quando o calendário opera no modo de intervalo.
TipoDate
Valor padrãonull

rangeStart​

Atributo---
DescriçãoData inicial selecionada quando o calendário opera no modo de intervalo.
TipoDate
Valor padrãonull

rangeValue​

Atributo---
DescriçãoIntervalo controlado no modo range, reunindo rangeStart e rangeEnd em uma atualização.
Deve conter datas válidas ou null; valores inválidos são ignorados. Passe o objeto por property binding.
Exemplo de uso
const calendar = document.querySelector('br-date-picker');
calendar.selectionMode = 'range';
calendar.rangeValue = { start: new Date(2026, 8, 7), end: new Date(2026, 8, 12) };
Tipo{ start: Date; end: Date; }
Valor padrão---

referenceDate​

Atributo---
DescriçãoData usada como base visual para o mês atualmente exibido, sem alterar a seleção.
Recebe uma instância de Date por property binding; valores inválidos usam a data atual.
Exemplo de uso
const calendar = document.querySelector('br-date-picker');
calendar.referenceDate = new Date(2026, 8, 1);
TipoDate
Valor padrãonew Date()

selectionMode​

Atributoselection-mode
DescriçãoDefine se a seleção ocorre por data única ou por intervalo. Valores inválidos usam single.
Tipo"range" | "single"
Valor padrão'single'

value​

Atributo---
DescriçãoData efetivamente selecionada, ou null quando não há seleção; é diferente de referenceDate, que controla apenas o mês visível.
Recebe uma instância de Date por property binding; datas inválidas usam null.
Exemplo de uso
const calendar = document.querySelector('br-date-picker');
calendar.value = new Date(2026, 8, 7);
TipoDate
Valor padrãonull

weekStartsOn​

Atributoweek-starts-on
DescriçãoDefine o índice do dia em que a semana começa na interface do calendário.
Tipo0 | 1 | 2 | 3 | 4 | 5 | 6
Valor padrão0

Eventos​

EventoDescriçãoDepreciaçãoPropagação
dateStateChangeEvento emitido quando a data de referência ou a seleção mudam.---true

CSS Shadow Parts​

NomeDescrição
"calendar"Grade geral do calendário.
"container"Parte para o container base do calendário.
"day"Célula individual do dia no calendário.
"grid"Grade de dias do mês.
"header"Cabeçalho do calendário (contendo navegação e seleção de mês/ano).
"month-select"Elemento de seleção do mês.
"weekday"Rótulo individual do dia da semana.
"weekdays"Container para os rótulos dos dias da semana.
"year-input"Elemento de entrada do ano.

Locales adicionais​

O br-date-picker inclui apenas o locale pt-BR no bundle padrão. Para usar outro locale, importe-o diretamente do date-fns e registre-o uma vez antes de renderizar o componente:

import { enUS } from 'date-fns/locale/en-US';
import { registerDatePickerLocale } from '@govbr-ds/webcomponents';

registerDatePickerLocale('en-US', enUS);

Depois do registro, use o código normalmente:

<br-date-picker locale="en-US"></br-date-picker>

O código usado no registro deve corresponder ao valor informado na propriedade locale. O pt-BR permanece disponível sem registro. Se um locale não tiver sido registrado, o componente usa pt-BR como fallback.

O registro é global para os date pickers da página. Faça-o uma vez no bootstrap da aplicação e importe apenas os locales que realmente serão utilizados.

Dependências​

Componente pai​

Usado por​

Depende de​

Gráfico​

Migração para <br-date-picker>​

O br-date-picker não existia na linha 1.x. Ele foi criado na 2.x como o calendário usado por br-datetime-picker.

Na maioria das aplicações, use o componente pai:

<br-datetime-picker mode="date" name="data" placeholder="Selecione a data"></br-datetime-picker>

Use br-date-picker diretamente apenas quando a tela precisar de um calendário sempre visível. Nesse caso:

  • value recebe a data selecionada;
  • referenceDate controla o mês exibido;
  • disabledDates informa as datas indisponíveis; limites min e max pertencem ao br-datetime-picker;
  • selectionMode="range" habilita intervalo e expõe rangeValue;
  • dateStateChange informa mudanças de navegação e seleção ao componente que coordena o calendário.

Valores do tipo Date devem ser atribuídos como propriedades JavaScript, e não como atributos HTML serializados.

Comece aquiComponentesQuickstartsSobre o projetoRepositório GitLabVersõesDiscordGovBR-DSFAQWikiRedefinir cookies