Pular para o conteúdo

Pagination

Controles de navegação entre páginas com contrato copy-first e composição shadcn.

Em cada stack

HTML e Astro
Classes itps-* do CSS Sinapse, com todas as variantes desta página.
React e Vue
Componentes padrão do shadcn (pagination) com o tema Sinapse: cores, fonte e raio vêm do tema, e as variantes itps-* desta página existem só no HTML.

Instalação

O comando instala o Pagination da sua stack com o tema Sinapse. Configure o registry uma vez por projeto em Comece por aqui.

terminal · React/Next

pnpm dlx shadcn@latest add @sinapse/pagination

terminal · Vue 3/Nuxt 4

pnpm dlx shadcn-vue@latest add https://dsystem.sinapse.org.br/r/vue/pagination.json

Sem shadcn, não há instalação por componente: use o CSS Sinapse e as classes da API copy-first desta página.

Uso

Use Pagination quando o usuário precisa navegar por listas, tabelas ou resultados longos mantendo página atual, total e extremos claros.

Em React/Next com shadcn/ui e Vue 3/Nuxt 4 com shadcn-vue, use os componentes compostos de @/components/ui/pagination. Para HTML ou wrappers finos, use itps-pagination diretamente e conecte os handlers de navegação na sua stack.

Exemplos

Estrutura

PeçaReact/Next e Vue 3/Nuxt 4HTML
LandmarkPagination<nav class="itps-pagination">
Lista e itemPaginationContent, PaginationItemfilhos diretos do nav
Página numéricaPaginationLinkitps-pagination__input ou botão local
Anterior/próximaPaginationPrevious, PaginationNextitps-pagination__button
Atalho de extremocomposição do projetoitps-pagination__button--boundary
Totalcomposição textualitps-pagination__label

Extremos e estado desabilitado

Use atalhos de primeira/última página em tabelas longas. Nos extremos, desabilite o controle que não pode executar ação. Nos links do shadcn, prefira aria-disabled com estado visual; em botão copy-first, use disabled.

API copy-first

Classe/atributoUso
itps-paginationContêiner em linha com gap estável para controles de página.
itps-pagination__buttonBotão circular para anterior/próxima ou ações de navegação.
itps-pagination__button--boundaryBotão de primeira/última página com borda e fundo secundário.
itps-pagination__inputCampo numérico da página atual, limitado por min e max.
itps-pagination__labelTexto auxiliar para total de páginas.
aria-labelNomeia o nav e os botões apenas com ícone.
disabledBloqueia botões copy-first que não podem navegar.
aria-disabled="true"Comunica estado indisponível em links shadcn.
min / maxLimitam o campo numérico ao intervalo real de páginas.
aria-hidden="true"Esconde ícones decorativos de tecnologias assistivas.

Acessibilidade

Use um <nav> com aria-label específico para diferenciar paginações quando houver mais de uma na tela. Botões apenas com ícone precisam de aria-label; os ícones decorativos ficam com aria-hidden="true". Campos numéricos devem ter min, max e nome acessível. Em links desabilitados, use aria-disabled="true" e remova handlers de ativação.