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

Pagination

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 componente br-pagination é o controle de navegação paginada do GovBR-DS, desenvolvido para segmentar grandes volumes de dados ou conteúdos extensos em páginas sequenciais numeradas.

Para que serve​

  • Segmentação de dados volumosos: Divide listas, tabelas e catálogos em blocos gerenciáveis de itens, reduzindo o tempo de carregamento da página e o consumo de memória.
  • Navegação direta e sequencial: Oferece botões para avançar, retroceder, ir diretamente a uma página específica e navegar através de atalhos de reticências.
  • Variante contextual completa: Permite alterar a quantidade de itens exibidos por página (ex.: 10, 20, 50, 100 itens) e pular diretamente para qualquer página através de campo de digitação integrado.

Quando utilizar​

  • Utilize quando:
    • O número total de itens for superior ao limite recomendado para visualização em uma única rolagem (geralmente mais de 20 a 50 registros).
    • Integrar com tabelas de dados (br-table) ou grades de cartões (br-card).
  • Evite e prefira outro componente quando:
    • O conjunto completo de itens for pequeno (menos de 20 itens) e puder ser visualizado sem perda de performance.
    • A navegação representar etapas interdependentes de um processo sequencial com validação (prefira br-step ou br-wizard).

Estrutura e Slots​

O br-pagination disponibiliza slots para complementar a navegação:

  • pagination-info: Slot para customização do texto de contagem (ex.: "Exibindo 1-20 de 240 itens").
  • loading: Slot para indicador visual exibido durante a troca assíncrona de páginas.

Para a documentação completa de design, incluindo diretrizes de acessibilidade e especificações visuais, consulte o Design System do GovBR.

Exemplos​

Desktop (100%)
Tablet - 768px
iPhone (iOS) - 390x844
Android - 360x800
Padrão
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

Dados remotos​

Use brPaginationPageChange e brPaginationPerPageChange para iniciar a consulta. Enquanto ela estiver pendente, defina loading; os controles ficam desabilitados, aria-busy="true" é aplicado e o slot loading pode substituir o indicador padrão.

Para confirmar a navegação somente depois da resposta, use controlled. Nesse modo, o evento contém a página solicitada, mas current permanece inalterado até a aplicação atribuir o novo valor:

pagination.addEventListener('brPaginationPageChange', async ({ detail }) => {
pagination.loading = true;

try {
const result = await pageService(detail.page);
pagination.current = result.page;
} finally {
pagination.loading = false;
}
});

Propriedades​

ariaLabel​

Atributoaria-label
DescriçãoDefine o rótulo acessível usado por tecnologias assistivas.

> Uso compartilhado: mantenha esta descrição idêntica em todos os componentes que usam ariaLabel. (obrigatório)
Tipostring
Valor padrão---

colorMode​

Atributocolor-mode
DescriçãoDefine se a paginação usará um esquema de cores escuro. Valores inválidos são ignorados.
Quando definido como dark, aplica a classe dark-mode ao container principal.
Tipo"dark"
Valor padrão---

controlled​

Atributocontrolled
DescriçãoMantém current e perPage sob controle da aplicação.

Quando ativo, interações apenas emitem a intenção de mudança. A aplicação
deve atualizar a propriedade correspondente após concluir seu processamento.
Tipoboolean
Valor padrãofalse

current​

Atributocurrent
DescriçãoPágina atual (inteira e 1-indexada). Valores inválidos usam 1; valores fora do intervalo são ajustados.
Tiponumber
Valor padrão1

currentPage​

Atributocurrent-page
DescriçãoPágina atual. Tem precedência sobre current; valores inválidos usam 1.
Tiponumber
Valor padrão---

customId​

Atributocustom-id
DescriçãoIdentificador único do componente.
Quando omitido, um valor é gerado automaticamente.

> Padrão: valor único gerado por generateUniqueId().

> Uso compartilhado: mantenha esta descrição idêntica em todos os componentes que usam customId.
Tipostring
Valor padrãogenerateUniqueId()

density​

Atributodensity
DescriçãoDefine a densidade visual do componente.

- small: Alta densidade (componente menor, mais compacto e com menos espaçamento).
- medium: Densidade intermediária, padrão recomendado para a maioria dos casos.
- large: Baixa densidade (componente maior, mais espaçamento e altura).

> Uso compartilhado: mantenha esta descrição idêntica em todos os componentes que usam density.
Valores inválidos usam medium.
Tipo"large" | "medium" | "small"
Valor padrão'medium'

ellipsisLabel​

Atributoellipsis-label
DescriçãoRótulo acessível do botão de reticências que abre a lista de páginas ocultas.
Tipostring
Valor padrão'Abrir ou fechar a lista de paginação'

goToPageLabel​

Atributogo-to-page-label
DescriçãoRótulo do seletor "ir para página" (variante contextual).
Tipostring
Valor padrão'Página'

itemsText​

Atributoitems-text
DescriçãoSufixo textual para a informação de quantidade de itens (variante contextual).
Tipostring
Valor padrão'itens'

loading​

Atributoloading
DescriçãoIndica que a página solicitada ainda está sendo carregada pelo consumidor.
Tipoboolean
Valor padrãofalse

nextLabel​

Atributonext-label
DescriçãoRótulo acessível do botão de próxima página.
Tipostring
Valor padrão'Página seguinte'

perPage​

Atributoper-page
DescriçãoItens por página (inteiro positivo, aplicável na variante contextual). Valores inválidos usam 10.
Tiponumber
Valor padrão10

perPageLabel​

Atributoper-page-label
DescriçãoRótulo do seletor de itens por página (variante contextual).
Tipostring
Valor padrão'Exibir'

perPageOptions​

Atributo---
DescriçãoOpções disponíveis de itens por página na variante contextual.
Passe o array por property binding; atributos HTML não representam arrays.
Exemplo de uso
const pagination = document.querySelector('br-pagination');
pagination.perPageOptions = [10, 25, 50, 100];
Tiponumber[]
Valor padrão[10, 20, 30]

previousLabel​

Atributoprevious-label
DescriçãoRótulo acessível do botão de página anterior.
Tipostring
Valor padrão'Voltar página'

total​

Atributototal
DescriçãoQuantidade total de páginas (inteiro mínimo 1). Valores inválidos usam 1.
Tiponumber
Valor padrão1

totalItems​

Atributototal-items
DescriçãoTotal de itens (inteiro não negativo, aplicável na variante contextual). Valores inválidos usam 0.
Tiponumber
Valor padrão---

totalPages​

Atributototal-pages
DescriçãoQuantidade total de páginas. Tem precedência sobre total; valores inválidos usam 1.
Tiponumber
Valor padrão---

variant​

Atributovariant
DescriçãoVariante de renderização do componente. Valores inválidos usam default.
- default: paginação numérica (padrão)
- contextual: paginação contextual com seletores e informação de itens
Tipo"contextual" | "default"
Valor padrão'default'

Slots​

NomeDescrição
"loading"Indicador exibido enquanto uma página é carregada.
"pagination-info"Informação customizada da paginação contextual. Quando utilizado, o texto padrão de contagem é substituído.

Eventos​

EventoDescriçãoDepreciaçãoPropagação
brPaginationPageChangeEvento canônico para iniciar o carregamento de uma página. O detail contém { page }; o evento não é cancelável.---true
brPaginationPerPageChangeEvento canônico para iniciar o carregamento de uma nova quantidade de itens. O detail contém { perPage }; o evento não é cancelável.---true
pageChangeSolicita uma página por interação do usuário ou pelo método público. Em controlled, o evento informa a página solicitada, mas current só muda quando a aplicação confirma o resultado. O componente não faz chamadas remotas nem cancela a consulta do consumidor.---true
perPageChangeSolicita uma quantidade de itens por página (variante contextual). Em controlled, a aplicação confirma a mudança atribuindo perPage.---true

Métodos​

goToPage​

DescriçãoSolicita navegação programática para uma página (1-indexada).
Em controlled, aguarda a confirmação externa para alterar current.
AssinaturagoToPage(page: number) => Promise<void>
Parâmetrospage:

setPage​

DescriçãoDefine programaticamente a página atual dentro do intervalo permitido.
AssinaturasetPage(page: number) => Promise<void>
Parâmetrospage: Página desejada (1-indexada).
Em controlled, emite a solicitação sem alterar current.

CSS Shadow Parts​

NomeDescrição
"ellipsis-button"Parte encaminhada do botão de reticências.
"ellipsis"Parte para o botão de reticências e seu contêiner.
"go-to-container"Contêiner encaminhado do seletor de navegação direta.
"go-to-input"Campo encaminhado do seletor de navegação direta.
"go-to-list"Lista encaminhada do seletor de navegação direta.
"go-to"Parte para o seletor de navegação direta na variante contextual.
"list"Parte para a lista de páginas (elemento ul), usada para estilização via ::part().
"loading"Área do indicador de carregamento.
"nav"Parte para o contêiner raiz da paginação (elemento nav), usada para estilização via ::part().
"next-button-inner"Botão interno encaminhado da próxima página.
"next-button"Parte para o botão de próxima página, usada para estilização via ::part().
"page"Parte para os itens de página numérica (elemento a), usada para estilização via ::part().
"per-page-container"Contêiner encaminhado do seletor de itens por página.
"per-page-input"Campo encaminhado do seletor de itens por página.
"per-page-list"Lista encaminhada do seletor de itens por página.
"per-page"Parte para o seletor de itens por página na variante contextual.
"prev-button-inner"Botão interno encaminhado da página anterior.
"prev-button"Parte para o botão de página anterior, usada para estilização via ::part().

Documentações relacionadas​

Consulte o guia geral de dados remotos para escolher entre atualização otimista e controlada, iniciar consultas e coordenar loading com a resposta da aplicação.

Também são relacionados:

  • Table, para paginar linhas carregadas remotamente;
  • Select, quando a quantidade por página ou filtros usa um controle de seleção;
  • Acessibilidade, para comunicar mudanças de estado durante o carregamento.

Dependências​

Depende de​

Gráfico​

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