Skip to content
v2.5.0
English
Русский
Documentation

Pagination

Pagination is a compound component for paged navigation.

Root Props

PropTypeDefault
refRef<HTMLUListElement>—
Ref forwarded to the underlying list element.
sizePaginationSize'md'
Visual size of the pagination items, inherited from IconButtonProps. Controls padding, font size, or spacing according to the design system scale.
variantPaginationVariant'primary'
Visual variant of the component. Inherits available values from IconButtonProps['variant'], such as 'primary' or 'secondary'. Controls the visual style (color, background, border) according to the design system.

Also accepts all <ul> attributes.

Child Parts

  • PaginationItem: page number item.
  • PaginationTriggerIconButton: previous/next or jump controls.
  • PaginationEllipsis: visual gap item.
  • PaginationListItem: list wrapper.
  • PaginationText: compact textual status.

PaginationItem

PropTypeDefault
currentboolean—
Marks this item as the currently active page. Applies visual emphasis.
asChildboolean—
When true, renders the button as a child component using Slot (e.g., from Radix UI). Enables polymorphic rendering — useful for making the button act as a link or custom tag.
sizeButtonSize—
Defines the size of the button. Affects padding, font size, and overall dimensions.
fullWidthboolean—
When true, the button expands to fill the width with its container.
variantButtonBaseVariant—
Defines the visual style of the button, affecting color schemes and emphasis.
appearanceButtonBaseAppearance—
Adjusts the button's structural appearance (background, border, etc.).
disabledboolean—
Disables the button when true. Prevents user interaction and applies a visually disabled state. Not applied with asChild: the child element owns its disabled state, for example, aria-disabled or a link without href.
classNamestring—
Optional custom CSS class for the button element. Useful for design system overrides or scoped styles.
childrenReactNode—
Content of the button — text, icon, or any React node.
refRef<HTMLButtonElement>—
Ref forwarded to the native <button> element. Allows direct DOM access for focus management or measuring.

Also accepts all <button> attributes.

PaginationTriggerIconButton

PropTypeDefault
sizeIconButtonSize—
Size of the button container. Controls padding and overall clickable area.
asChildboolean—
When true, renders the button as a child component using Slot (e.g., from Radix UI). Enables polymorphic rendering — useful for making the button act as a link or custom tag.
variantButtonBaseVariant—
Defines the visual style of the button, affecting color schemes and emphasis.
appearanceButtonBaseAppearance—
Adjusts the button's structural appearance (background, border, etc.).
disabledboolean—
Disables the button when true. Prevents user interaction and applies a visually disabled state. Not applied with asChild: the child element owns its disabled state, for example, aria-disabled or a link without href.
classNamestring—
Optional custom CSS class for the button element. Useful for design system overrides or scoped styles.
childrenReactNode—
Content of the button — text, icon, or any React node.
refRef<HTMLButtonElement>—
Ref forwarded to the native <button> element. Allows direct DOM access for focus management or measuring.

Also accepts all <button> attributes.

PaginationEllipsis

PropTypeDefault
asChildboolean—
When true, renders the button as a child component using Slot (e.g., from Radix UI). Enables polymorphic rendering — useful for making the button act as a link or custom tag.
sizeButtonSize—
Defines the size of the button. Affects padding, font size, and overall dimensions.
fullWidthboolean—
When true, the button expands to fill the width with its container.
variantButtonBaseVariant—
Defines the visual style of the button, affecting color schemes and emphasis.
appearanceButtonBaseAppearance—
Adjusts the button's structural appearance (background, border, etc.).
disabledboolean—
Disables the button when true. Prevents user interaction and applies a visually disabled state. Not applied with asChild: the child element owns its disabled state, for example, aria-disabled or a link without href.
classNamestring—
Optional custom CSS class for the button element. Useful for design system overrides or scoped styles.
childrenReactNode—
Content of the button — text, icon, or any React node.
refRef<HTMLButtonElement>—
Ref forwarded to the native <button> element. Allows direct DOM access for focus management or measuring.

Also accepts all <button> attributes.

PaginationListItem

Also accepts all <li> attributes.

PaginationText

PropTypeDefault
variantPaginationVariant—
Visual style variant of the text.
sizeTextSize—
Visual size of the text, typically mapped to the design system’s type scale.
asChildboolean—
If true, renders the text as a child component using Slot. Useful for compatibility with native elements or other components.
fontWeight400 | 500 | 600 | 700 | 900500
Font weight applied to the text. Common values: 400: Regular; 500: Medium; 600: Semi-bold; 700: Bold; 900: Extra bold
refRef<HTMLSpanElement>—
Ref to the underlying <span> or slotted element. Useful for measuring, focusing, or DOM manipulation.

Also accepts all <span> attributes.

Types

  • PaginationProps
  • PaginationItemProps
  • PaginationTriggerIconButtonProps
  • PaginationEllipsisProps
  • PaginationListItemProps
  • PaginationTextProps
  • PaginationSize
  • PaginationVariant

State Model

  • The root only provides shared style context.
  • Current page, disabled boundaries, and routing behavior are owned by the parent feature.
  • PaginationItem current sets aria-current='page'.