About this set
Three compact alternatives for when a full row of page numbers is too much, either because there are hundreds of pages or because the exact page does not matter. Arrows with a counter places small bordered previous and next buttons around a Page 3 of 24 readout, a good fit for image galleries, search results and document viewers. Previous / next only is a pair of worded buttons for blogs and step-by-step lists, shown with the Previous button disabled as it would be on the first page. Counter with progress pairs a Showing 21–30 of 240 readout with a thin progress rule so readers can see how far through a long list they are. The arrows are real links inside a labelled nav, the disabled button is removed from the tab order and marked aria-disabled, and the progress rule is a progressbar with its value, minimum and maximum exposed. The Bootstrap version uses .pagination and the native .progress component; the Tailwind version uses the aria-disabled variant to fade the inactive button.
What’s included
- Page X of Y readout between two arrow buttons
- Worded previous and next pair with a disabled state
- Result counter with a thin progress rule
- Progress rule exposed as role="progressbar" with its values
- Bootstrap version uses .pagination and .progress
Accessibility
The arrow and worded controls sit in a nav labelled Pagination, and the arrow links are named Previous page and Next page. The disabled Previous link has aria-disabled="true" and tabindex="-1" so keyboard users skip it. The progress rule is a progressbar labelled Results viewed with aria-valuenow, and every link shows a 2px focus outline; hover transitions stop under prefers-reduced-motion.
Customise it
Change the #2563eb progress colour and the 34px arrow size on .mini a in plain CSS. In Bootstrap adjust --bs-progress-bar-bg on .progress-uic and the pagination variables on .pagination-mini and .pagination-pn. In Tailwind change --color-brand and the h-[34px] min-w-[34px] classes.






