Pagination
Navegação de páginas que mantém cada botão no lugar, desliza até a página atual e salta para qualquer página a partir das reticências.
Showing 1–10 of 248 results
pnpm dlx shadcn@latest add https://hextaui.com/r/pagination.jsonAdiciona o componente, os tokens de tema do HextaUI e quaisquer componentes do HextaUI dos quais ele depende.
Adicione os tokens de tema ao seu CSS global, se ainda não o fez.
Instale as dependências.
pnpm add @base-ui/react @tabler/icons-react class-variance-authority cnCopie e cole o código a seguir no seu projeto.
components/ui/pagination.tsx components/ui/button.tsx lib/motion.ts Atualize os caminhos de importação para corresponder à configuração do seu projeto.
Dê a Pagination um count e ela monta a barra inteira. Ela sempre mostra o mesmo número de slots, então Previous, Next e os números nunca se deslocam sob o cursor enquanto você clica pelas páginas. Omita count para compor as partes você mesmo.
Ir para uma página
Clique em uma reticência para digitar um número de página. Enter salta, um número fora do intervalo faz o campo tremer, e Esc devolve a reticência. Desative com jump={false}.
Compacto
Quando a barra não cabe no contêiner, ela passa para Previous, “Page 4 of 24” e Next, e volta quando há espaço. O rótulo também é um campo de salto. Force qualquer um dos layouts com compact.
Links
Com getPageHref, cada página é um link de verdade, então pode ser aberta em uma nova aba. Cliques simples ainda chamam onPageChange.
Composável
Sem count, monte a barra a partir das partes, como no shadcn/ui. Passe render para usar o link do seu roteador.
Da direita para a esquerda
usePagination retorna os itens de página e de reticências para layouts personalizados. Os chevrons se invertem em texto da direita para a esquerda.
| Tecla | Ação |
|---|---|
| Tab | Entra na barra e sai dela. Previous e Next continuam focáveis nas extremidades. |
| ←→ | Move entre Previous, as páginas e Next. Inverte em layouts da direita para a esquerda. |
| HomeEnd | Move para o primeiro ou o último item. |
| Enter | Abre a página com foco ou o campo de página. No campo, salta para aquela página e a foca. |
| Esc | Fecha o campo de página e devolve o foco à reticência. |
- A raiz é um
<nav>rotulado “Pagination”, e a página atual temaria-current="page". - Na primeira e na última página, Previous e Next usam
aria-disabledem vez dedisabled, para o foco não se perder ao chegar ao fim. - O indicador deslizante vira um fade quando o movimento reduzido está ativado.
| Prop | Tipo | Padrão |
|---|---|---|
countTotal de páginas. Quando definido, a barra é montada para você; omita para compor as partes. | number | – |
page | number | – |
defaultPage | number | 1 |
onPageChange | (page: number) => void | – |
getPageHrefRenderiza as páginas como links em vez de botões. | (page: number) => string | – |
siblingsPáginas exibidas de cada lado da atual. | number | 1 |
boundariesPáginas sempre exibidas no início e no fim. | number | 1 |
compactauto passa para Previous, “Page x of y” e Next quando a barra não cabe. | boolean | "auto" | "auto" |
jumpPermite que a reticência abra um campo de página. | boolean | true |
| Atributo | Descrição |
|---|---|
data-slot="pagination" | A nav. |
data-slot="pagination-indicator" | O fundo que desliza até a página atual. |
| Prop | Tipo | Padrão |
|---|---|---|
isActiveMarca a página atual com aria-current="page". | boolean | false |
disabledDefine aria-disabled e ignora cliques. | boolean | false |
render | ReactElement | (props, state) => ReactElement | <a> |
| Atributo | Descrição |
|---|---|
data-slot="pagination-link" | Seleciona os links de página no CSS. |
data-active | Presente na página atual. |
| Prop | Tipo | Padrão |
|---|---|---|
textPasse null para um botão apenas com ícone. | ReactNode | "Previous" / "Next" |
disabled | boolean | false |
| Prop | Tipo | Padrão |
|---|---|---|
onJumpFaz da reticência um campo de página. Sem isso, a reticência é decorativa. | (page: number) => void | – |
countA maior página que o campo aceita. | number | – |
| Prop | Tipo | Padrão |
|---|---|---|
page | number | – |
count | number | – |
siblings | number | 1 |
boundaries | number | 1 |
Retorna items, page e count limitados, e hasPrevious e hasNext. Veja o guia do usePagination para montar seu próprio paginador.
- ButtonBotões em todas as variantes e tamanhos, com um fluxo integrado de carregamento, sucesso e erro que dispensa o spinner em requisições rápidas.
- MotionAs curvas de easing, as durações e a verificação de movimento reduzido com que todo componente anima, além de hooks para transformações de tamanho e destaques deslizantes.
- usePaginationTransforma uma página e uma contagem de páginas na lista de páginas e reticências a renderizar, mantendo o comprimento estável conforme a página muda.
- BreadcrumbUma trilha de links até a página atual que quebra linha com segurança, se espelha em layouts da direita para a esquerda e expande os segmentos recolhidos no próprio lugar.
- Navigation menuNavegação do site com dropdowns, ou um único painel de largura total que permanece aberto enquanto o conteúdo desliza entre os menus.
- SidebarUma barra lateral de app que recolhe para ícones ou fora da tela, permanece fixa sob o seu cabeçalho e vira uma sheet com deslize no celular.