package examples import "github.com/axadrn/shadcn-templ/v2/components/pagination"package examples import "github.com/axadrn/shadcn-templ/v2/components/pagination" templ PaginationDemo() { @pagination.Pagination() { @pagination.Content() { @pagination.Item() { @pagination.Previous(pagination.PreviousProps{Href: "#"}) } @pagination.Item() { @pagination.Link(pagination.LinkProps{Href: "#"}) { 1 } } @pagination.Item() { @pagination.Link(pagination.LinkProps{Href: "#", IsActive: true}) { 2 } } @pagination.Item() { @pagination.Link(pagination.LinkProps{Href: "#"}) { 3 } } @pagination.Item() { @pagination.Ellipsis() } @pagination.Item() { @pagination.Next(pagination.NextProps{Href: "#"}) } } }}Installation
Usage
Composition
Use the following composition to build a Pagination:
Simple
A simple pagination with only page numbers.
package examples import "github.com/axadrn/shadcn-templ/v2/components/pagination"package examples import "github.com/axadrn/shadcn-templ/v2/components/pagination" templ PaginationSimple() { @pagination.Pagination() { @pagination.Content() { @pagination.Item() { @pagination.Link(pagination.LinkProps{Href: "#"}) { 1 } } @pagination.Item() { @pagination.Link(pagination.LinkProps{Href: "#", IsActive: true}) { 2 } } @pagination.Item() { @pagination.Link(pagination.LinkProps{Href: "#"}) { 3 } } @pagination.Item() { @pagination.Link(pagination.LinkProps{Href: "#"}) { 4 } } @pagination.Item() { @pagination.Link(pagination.LinkProps{Href: "#"}) { 5 } } } }}Icons Only
Use just the previous and next buttons without page numbers. This is useful for data tables with a rows per page selector.
package examples import (package examples import ( "github.com/axadrn/shadcn-templ/v2/components/field" "github.com/axadrn/shadcn-templ/v2/components/pagination" selectcomp "github.com/axadrn/shadcn-templ/v2/components/select") templ PaginationIconsOnly() { <div class="flex items-center justify-between gap-4"> @field.Field(field.Props{Orientation: field.OrientationHorizontal, Class: "w-fit"}) { @field.Label(field.LabelProps{For: "select-rows-per-page"}) { Rows per page } @selectcomp.Select(selectcomp.Props{Value: "25"}) { @selectcomp.Trigger(selectcomp.TriggerProps{ID: "select-rows-per-page", Class: "w-20"}) { @selectcomp.Value() } @selectcomp.Content(selectcomp.ContentProps{Align: selectcomp.AlignStart}) { @selectcomp.Group() { @selectcomp.Item(selectcomp.ItemProps{Value: "10"}) { 10 } @selectcomp.Item(selectcomp.ItemProps{Value: "25"}) { 25 } @selectcomp.Item(selectcomp.ItemProps{Value: "50"}) { 50 } @selectcomp.Item(selectcomp.ItemProps{Value: "100"}) { 100 } } } } } @pagination.Pagination(pagination.Props{Class: "mx-0 w-auto"}) { @pagination.Content() { @pagination.Item() { @pagination.Previous(pagination.PreviousProps{Href: "#"}) } @pagination.Item() { @pagination.Next(pagination.NextProps{Href: "#"}) } } } </div>}API Reference
Pagination
The Pagination component is the nav landmark that wraps the page controls.
PaginationContent
The pagination.Content component is the list that holds the items.
PaginationItem
The pagination.Item component wraps a single control.
PaginationLink
The pagination.Link component is a page link, outlined while active.
PaginationPrevious
The pagination.Previous component links to the previous page.
PaginationNext
The pagination.Next component links to the next page.
PaginationEllipsis
The pagination.Ellipsis component marks collapsed pages.