Pular para o conteúdo

Pagination

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

Instalação

Instale o Pagination da sua stack e rode o comando individual ITpS em seguida. O comando itps add pagination é theme-only: ele valida o slug e confirma que o contrato visual vem do tema ITpS, das classes copy-first e dos snippets desta página.

terminal · React/Next

pnpm dlx shadcn@latest add pagination
pnpm dlx github:ITPS/sinapse-ui-cli add pagination

terminal · Vue3/Nuxt4

pnpm dlx shadcn-vue@latest add pagination
pnpm dlx github:ITPS/sinapse-ui-cli add pagination

O comando individual adapta só este componente; não instala o catálogo inteiro.

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 Vue3/Nuxt4 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 Vue3/Nuxt4HTML
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 disabled

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

API copy-first

Classe/atributoUso
itps-paginationContainer inline 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.