ReUI
Components

Pagination

A responsive pagination component for navigating through multiple pages of content.

Installation

Install ReUI

Refer to the Installation Guide for detailed instructions on setting up ReUI dependencies in your project.

Add component

Copy and paste the following code into your project’s components/ui/pagination.tsx file.

'use client';

import * as React from 'react';
import { MoreHorizontal } from 'lucide-react';
import { cn } from '@/lib/utils';

const Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (
  <nav
    data-slot="pagination"
    role="navigation"
    aria-label="pagination"
    className={cn('mx-auto flex w-full justify-center', className)}
    {...props}
  />
);

function PaginationContent({
  className,
  ...props
}: React.ComponentProps<'ul'>) {
  return (
    <ul
      data-slot="pagination-content"
      className={cn('flex flex-row items-center gap-1', className)}
      {...props}
    />
  );
}

function PaginationItem({ className, ...props }: React.ComponentProps<'li'>) {
  return (
    <li data-slot="pagination-item" className={cn('', className)} {...props} />
  );
}

const PaginationEllipsis = ({
  className,
  ...props
}: React.ComponentProps<'span'>) => (
  <span
    data-slot="pagination-ellipsis"
    aria-hidden
    className={cn('flex h-9 w-9 items-center justify-center', className)}
    {...props}
  >
    <MoreHorizontal className="h-4 w-4" />
    <span className="sr-only">More pages</span>
  </span>
);

export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem };

Examples

Default

Loading

Icon

Loading

Card

Loading

API Reference

This component provides a customizable pagination system with support for various layouts and styles.

Pagination

This component is the root container for pagination elements.

PropTypeDefault
className string

PaginationContent

This component provides the container for pagination items.

PropTypeDefault
className string

PaginationItem

This component represents an individual item in the pagination.

PropTypeDefault
className string

This component represents a clickable pagination link.

PropTypeDefault
isActive booleanfalse
size ButtonProps["size"]
className string

PaginationEllipsis

This component displays an ellipsis to indicate additional pages.

PropTypeDefault
className string