Docs Components Navigation

Pagination

React example follows below.
ts
import * as React from "react";
const paginationFixture = {
id: "pagination",
page: 5,
count: 9,
siblingCount: 1,
} satisfies { id: string; page: number; count: number; siblingCount: number };
import { Pagination } from "@grassroot/ui-react";
export default function PaginationDemo() {
const [page, setPage] = React.useState(paginationFixture.page);
return (
<div>
<Pagination
count={paginationFixture.count}
page={page}
siblingCount={paginationFixture.siblingCount}
onPageChange={setPage}
/>
</div>
);
}
ts
<script setup lang="ts">
import { ref } from "vue";
import { Pagination } from "@grassroot/ui-vue";
const paginationFixture = {
id: "pagination",
page: 5,
count: 9,
siblingCount: 1,
} satisfies { id: string; page: number; count: number; siblingCount: number };
const page = ref(paginationFixture.page);
</script>
<template>
<div>
<Pagination
:page="page"
:count="paginationFixture.count"
:sibling-count="paginationFixture.siblingCount"
@page-change="page = $event"
/>
</div>
</template>
ts
import { Component, signal } from "@angular/core";
import { GrassrootPagination } from "@grassroot/ui-angular";
const paginationFixture = {
id: "pagination",
page: 5,
count: 9,
siblingCount: 1,
} satisfies { id: string; page: number; count: number; siblingCount: number };
@Component({
selector: "app-pagination-demo",
standalone: true,
imports: [GrassrootPagination],
template: `
<div>
<grassroot-pagination
[page]="page()"
[count]="fixture.count"
[siblingCount]="fixture.siblingCount"
(pageChange)="page.set($event)"
/>
</div>
`,
})
export class PaginationDemoComponent {
protected readonly fixture = paginationFixture;
readonly page = signal(paginationFixture.page);
}
export default PaginationDemoComponent;
ts
<script lang="ts">
import { Pagination } from "@grassroot/ui-svelte";
const paginationFixture = {
id: "pagination",
page: 5,
count: 9,
siblingCount: 1,
} satisfies { id: string; page: number; count: number; siblingCount: number };
let page = $state(paginationFixture.page);
</script>
<div>
<Pagination
{page}
count={paginationFixture.count}
siblingCount={paginationFixture.siblingCount}
onPageChange={(next) => (page = next)}
/>
</div>
ts
/** @jsxImportSource solid-js */
import { createSignal } from "solid-js";
import { Pagination } from "@grassroot/ui-solid";
const paginationFixture = {
id: "pagination",
page: 5,
count: 9,
siblingCount: 1,
} satisfies { id: string; page: number; count: number; siblingCount: number };
export default function PaginationDemo() {
const [page, setPage] = createSignal(paginationFixture.page);
return (
<div>
<Pagination
page={page()}
count={paginationFixture.count}
siblingCount={paginationFixture.siblingCount}
onPageChange={setPage}
/>
</div>
);
}

Installation

API Reference

Import

import * as React from "react";
import { Pagination } from "@grassroot/ui-react";

Props

Prop
Type
Default
Requirement
Description
page
number
required
Current page (1-based).
count
number
required
Total number of pages.
siblingCount
number | undefined
1
optional
Pages to show either side of the current one.
onPageChange
((page: number) => void) | undefined
optional
className
string | undefined
optional
Prop
page
Type
number
Default
Requirement
required
Description
Current page (1-based).
Prop
count
Type
number
Default
Requirement
required
Description
Total number of pages.
Prop
siblingCount
Type
number | undefined
Default
1
Requirement
optional
Description
Pages to show either side of the current one.
Prop
onPageChange
Type
((page: number) => void) | undefined
Default
Requirement
optional
Description
Prop
className
Type
string | undefined
Default
Requirement
optional
Description

Events

EventPayload
onPageChange((page: number) => void) | undefined

Import

import { ref } from "vue";
import { Pagination } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
page
number
required
count
number
required
siblingCount
number | undefined
1
optional
className
string | undefined
optional
Prop
page
Type
number
Default
Requirement
required
Prop
count
Type
number
Default
Requirement
required
Prop
siblingCount
Type
number | undefined
Default
1
Requirement
optional
Prop
className
Type
string | undefined
Default
Requirement
optional

Events

EventPayload
pageChange[page: number]

Import

import { Component, signal } from "@angular/core";
import { GrassrootPagination } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
page
number
required
count
number
required
siblingCount
number
1
optional
Prop
page
Type
number
Default
Requirement
required
Prop
count
Type
number
Default
Requirement
required
Prop
siblingCount
Type
number
Default
1
Requirement
optional

Events

EventPayload
pageChangenumber

Import

import { Pagination } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
page
number
required
count
number
required
siblingCount
number
1
optional
onPageChange
(page: number) => void
optional
className
string
optional
class
string
optional
Prop
page
Type
number
Default
Requirement
required
Prop
count
Type
number
Default
Requirement
required
Prop
siblingCount
Type
number
Default
1
Requirement
optional
Prop
onPageChange
Type
(page: number) => void
Default
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional
Prop
class
Type
string
Default
Requirement
optional

Events

EventPayload
onPageChange(page: number) => void

Import

import { createSignal } from "solid-js";
import { Pagination } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
page
number
required
count
number
required
siblingCount
number
1
optional
onPageChange
(page: number) => void
optional
className
string
optional
Prop
page
Type
number
Default
Requirement
required
Prop
count
Type
number
Default
Requirement
required
Prop
siblingCount
Type
number
Default
1
Requirement
optional
Prop
onPageChange
Type
(page: number) => void
Default
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Events

EventPayload
onPageChange(page: number) => void