Skip to content

Pagination

Navigate between pages of content. Simple prev/next and ellipsis page-number variants, with optional HTMX wiring.

Default Rendered example
Usage Example
@pagination.Pagination(pagination.Config{
    Mode:        pagination.ModeSimple,
    CurrentPage: 3,
    TotalPages:  10,
    BaseURL:     "/items",
})

Simple — First Page

The Previous control auto-disables on the first page (and Next on the last).

Simple — First Page Rendered example
Simple — First Page
@pagination.Pagination(pagination.Config{
    Mode:        pagination.ModeSimple,
    CurrentPage: 1,
    TotalPages:  10,
    BaseURL:     "/items",
})

With Ellipsis — Beginning

Mode: pagination.ModeEllipsis shows page numbers, collapsing large ranges with an ellipsis.

With Ellipsis — Beginning Rendered example
With Ellipsis — Beginning
@pagination.Pagination(pagination.Config{
    Mode:        pagination.ModeEllipsis,
    CurrentPage: 2,
    TotalPages:  30,
    BaseURL:     "/items",
})

With Ellipsis — Middle

A current page in the middle collapses both sides with ellipses.

With Ellipsis — Middle Rendered example
With Ellipsis — Middle
@pagination.Pagination(pagination.Config{
    Mode:        pagination.ModeEllipsis,
    CurrentPage: 15,
    TotalPages:  30,
    BaseURL:     "/items",
})

With Ellipsis — End

Near the end, only the leading range collapses.

With Ellipsis — End Rendered example
With Ellipsis — End
@pagination.Pagination(pagination.Config{
    Mode:        pagination.ModeEllipsis,
    CurrentPage: 29,
    TotalPages:  30,
    BaseURL:     "/items",
})

Small Page Count

With 7 or fewer pages, every page number is shown (no ellipsis). Add HTMX.Target + HTMX.Swap to swap content in place instead of navigating.

Small Page Count Rendered example
Small Page Count
@pagination.Pagination(pagination.Config{
    Mode:        pagination.ModeEllipsis,
    CurrentPage: 5,
    TotalPages:  30,
    BaseURL:     "/api/items",
    HTMX: &pagination.HTMXConfig{Target: "#items-tbody", Swap: "innerHTML"},
})

Go API

v0.2.7

The examples above cover behavior and composition. pkg.go.dev is the canonical reference for exported types, functions, methods, and Go documentation.

github.com/araihu/goshtoso/components/pagination
Open v0.2.7 API