sheengemologic ui
All components

Pagination

Requests pages while announcing only controlled, accepted results.@gemologic/sheen · navigation

Playground

This example has no scalar controls. Its validated source remains interactive below.
<Pagination pageIndex={0} pageCount={10} onPageChange={index => console.log(index)} />

Variant matrix

Controlled pages

Anatomy

Package
@gemologic/sheen
Source
packages/ui/src/primitives/Pagination.tsx
Tokens
  • --sheen-space-inline-xs
  • --sheen-color-bg-selected
  • --sheen-color-fg-muted

Accessibility

Role: navigation, statusKeyboard: Tab, Shift+Tab, Enter, Space

Do

  • Use within ThemeProvider for explicit locale and translated messages.
  • Retain the accepted page during remote work and expose errors/retry in the owning region.
  • Use Link for URL navigation; these controls request app-owned dataset changes.

Do not

  • Do not announce requested pages before their results are accepted.
  • Do not use pagination=false to mean infinite network fetching.

Generated props

NameTypeDefaultDescription
pageIndex *numberZero-based accepted page. Empty results require zero.
pageCount *numberNonnegative safe integer count; zero represents empty results.
onPageChange *(pageIndex: number) => voidRequests a new zero-based page; the app updates pageIndex only after acceptance.
pendingbooleanfalsePrevents further requests without removing keyboard focus or replacing accepted page text.
disabledbooleanfalsePrevents requests without exposing a busy state, for example while retained rows belong to a different failed query.
labelstringNavigation landmark name; defaults to the provider's pagination message.
Native Solid/HTML attributes remain available and are omitted from this authored-prop view.