paginationBeginner
Pagination Controls
Page-number buttons with prev/next chevrons and active state.
Claude prompt
Drop this into Claude Code, claude.ai, or your AI tool of choice to regenerate or remix this component from scratch.
Build pagination controls with Tailwind: prev chevron button, then a row of page-number buttons (1 2 3 ... 10), then a next chevron button. The current page is solid filled; others are outlined. Disabled state for first/last when at the edges.
Code
html
<!--
Source: Mark Mead (HyperUI)
https://github.com/markmead/hyperui/blob/d09f638255d00e91e95f3cabea4f1d385356dd70/public/examples/application/pagination/1.html
License: MIT
Surfaced via https://vibedex-ryan-staxs-projects-fb4e0931.vercel.app/components/hyperui-app-pagination
-->
<div class="bg-white text-gray-900 min-h-screen flex items-center justify-center">
<div class="flex justify-center p-6 w-full">
<ul class="flex justify-center gap-1 text-gray-900">
<li>
<a
href="#"
class="grid size-8 place-content-center rounded border border-gray-200 transition-colors hover:bg-gray-50 rtl:rotate-180"
aria-label="Previous page"
>
<svg
xmlns="http://www.w3.org/2000/svg"
class="size-4"
viewBox="0 0 20 20"
fill="currentColor"
>
<path
fill-rule="evenodd"
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"
/>
</svg>
</a>
</li>
<li>
<a
href="#"
class="block size-8 rounded border border-gray-200 text-center text-sm/8 font-medium transition-colors hover:bg-gray-50"
>
1
</a>
</li>
<li
class="block size-8 rounded border border-indigo-600 bg-indigo-600 text-center text-sm/8 font-medium text-white"
>
2
</li>
<li>
<a
href="#"
class="block size-8 rounded border border-gray-200 text-center text-sm/8 font-medium transition-colors hover:bg-gray-50"
>
3
</a>
</li>
<li>
<a
href="#"
class="block size-8 rounded border border-gray-200 text-center text-sm/8 font-medium transition-colors hover:bg-gray-50"
>
4
</a>
</li>
<li>
<a
href="#"
class="grid size-8 place-content-center rounded border border-gray-200 transition-colors hover:bg-gray-50 rtl:rotate-180"
aria-label="Next page"
>
<svg
xmlns="http://www.w3.org/2000/svg"
class="size-4"
viewBox="0 0 20 20"
fill="currentColor"
>
<path
fill-rule="evenodd"
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"
/>
</svg>
</a>
</li>
</ul>
</div>
</div>