Users need to browse through a large list of items looking for the item that interests them most


Present the results grouped in pages with a fixed number of items and allow the users to move easily from one page of items to another


Use when

Often users need to go through a large list of items. This pattern is applicable when the items are too numerous to fit on one page. The items are typically ordered and the users are likely to find their desired item somewhere near the start, for example in Search Results where this pattern is nearly t always used. Paging is also often used together with a List Builder, for example in an web-based e-mail application. The number of items is typically at 10 to 200 items. The 'Items' can be anything such as e-mail headers, names, photos, phone numbers and so on.


Show navigation of the pages below the list of items. Provide a direct link to a particular page and links to the next/previous page that allow Stepping through the pages. Show around 5 to 10 items at a time. Also show the total number of items and use a title to say what kind of items they are.

The basic structure for the navigation bar is: "Nr. of items", "previous", "1 2 3 4 5 ...", "next". The "previous" and "next" are only shown when there is a previous/next page. Additionally, links may be added to jump to the first or last page of items.

Depending on the font size for the page numbers, the size of the page number is quite small and therefore hard to click on. It may help to create an Enlarged Clickarea by summarizing the hits, e.g. "11-20 21-30 ..." instead of "1 2 ...". The downside of this is that you may run out of space when there are too many items. In that cause, show the current page and a couple more, then some '...' followed by the last pages.


The navigation bar tells the users the most important information about the list; how many items there are, how many they see now and how to get to the rest. By placing the navigation below the list it is there when users need it most: after scanning all items on the page.

Although paging is a very common and accepted way of interacting, the arrival of Ajax technology has introduced new possibilities where paging is no longer needed. All results are simply shown but only loaded as the user scrolls down. See for example the Apple store's software section or Dzone

More Examples

This example from makes use of multiple O's to indicate the number of results and the clickable area around the previous/next button has been enlarged:

At the page numbers are placed in a box in order to make the targets easier to be selected:, Squidfingers and many others also use this kind of large click targets.

At the page numbers have been enlarged in a different way:


Stuff on End-less scrolling:

Also known as

Search pagination

Code examples

plml logo


4 comments have been added to this pattern

Zephyr, 10th August 2008
I've always found the placement of the Previous and Next buttons odd... The usually apply to the current page being shown, but their placement around the SERIES of pages suggests it affects the series being displayed rather than the currently selected item... Previous would be what comes before page 1, Next what comes after the last page shown. That said, I haven't seen this solved well yet.
Iain Lowe, 27th February 2009
The Yahoo! design pattern library differentiates between search pagination and item pagination. What's your take? Is there a difference?
Herbert Spencer, 14th April 2009
I remember large diccionaries sitting on the bookshelf with their corresponding segmented content (i.e. "DEB - HUL") or something like that, maybe whole words.

If you paginate names in alfabetical order, there's no way you can anticipate what you'll find on page 11. I think numbers —in this case— should be replaced with the first item in the corresponding page. I think this is pretty obvious but I haven't seen examples of this practice. Maybe there's something wrong with this way of thinking?
Ishai Sagi, 18th May 2010
"the arrival of Ajax technology has introduced new possibilities where paging is no longer needed." - this means you are neglecting users that use browsers that do not support javascript. I think you should add to your text that the pattern should, if using ajax, first check browser and show standard paging controls to the user if no javascript support is found.

Add a comment
Do you have something to add or say about this pattern? Perhaps some more examples of how this pattern is used in the wild? Add a comment to this pattern and I'll update the pattern when necessary. Please abstain from misuse. I reserve the right to delete or modify inappropriate postings.

Your Name


Enter the verification code you see in the image below