UI

Pagination

Navegação entre páginas de uma tabela ou listagem, com reticências e botões Anterior/Próxima.

Instalação

npx shadcn@latest add @lenstech/pagination

Uso

import { Pagination } from "@/components/ui/pagination"
const [page, setPage] = React.useState(1)

<Pagination page={page} totalPages={12} onPageChange={setPage} />

Componente controlado

A paginação não guarda estado nem corta os dados: você informa page e totalPages e atualiza a página em onPageChange. As páginas começam em 1.

Exemplos

Páginas vizinhas

siblingCount define quantas páginas aparecem de cada lado da atual. Primeira e última estão sempre visíveis.

siblingCount=0 (compacto)

siblingCount=2

Somente ícones

Com showLabels={false} os textos "Anterior" e "Próxima" somem (em telas pequenas isso já acontece automaticamente).

Com uma lista

Corte os dados com slice a partir da página atual e mostre o contexto ("Página 2 de 3") ao lado.

  • Como escolher um domínio para sua empresa
  • 5 erros comuns em sites de clínicas
  • Google Meu Negócio: guia completo
  • Quanto custa um site profissional em 2026?

Página 1 de 3

Quando usar

  • Use em tabelas e listagens longas: contatos, pedidos, posts do blog.
  • Não use para poucos itens (cabem numa tela) — mostre tudo.
  • Não use em feeds contínuos — prefira "Carregar mais" ou rolagem infinita.
  • Para tabela com busca e paginação prontas, use o bloco Data Table.

API

Pagination

Aceita as props de um <nav> HTML, mais:

Prop

Type

getPaginationRange

Função auxiliar exportada que calcula os itens exibidos — útil para montar uma paginação com visual próprio.

getPaginationRange(6, 12) // [1, "ellipsis-start", 5, 6, 7, "ellipsis-end", 12]

On this page