Although patterns are most well known as a software development approach, they can be used for any design including user interface design. These links are to some of the central HCI/UI pattern references on the web, which can be used as a starting point by following their links to many other pages. A simplified definition is that “a pattern is a proven solution to a problem in a context.”
A Pattern Language: Towns, Buildings, Construction by Christopher Alexander et.al. is the seminal book on patterns, containing the architectural pattern language that Alexander and his colleagues developed. It’s a thick, expensive book but more interesting to read than you might expect. Alexander’s definition of a pattern is:
“Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution.
As an element in the world, each pattern is a relationship between a certain context, a certain system of forces which occurs repeatedly in that context, and a certain spatial configuration which allows these forces to resolve themselves. As an element of language, a pattern is an instruction, which shows how this spatial configuration can be used, over and over again, to resolve the given system of forces, wherever the context makes it relevant.”
Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson and Vlissides (Addison-Wesley) is the most common reference on software patterns. The introduction is an excellent summary of how pattern languages are used. The rest of the book contains the patterns themselves, and is fairly technical. There are several copies of this book in the TNT library.
A Pattern Approach to Interaction Design by Jan Borchers (Wiley, 2001)
The Design of Sites by Douglas Van Duyne, James A. Landay and Jason I. Hong (Addison-Wesley, 2002)
A comprehensive pattern language, focusing on ecommerce. The patterns are also available online at a companion site.
Common Ground: A Pattern Language for Human-Computer Interface Design – A paper arguing for the value of patterns in HCI along with a good introduction that makes “The Case for HCI Design Patterns” – by Jennifer Tidwell
Experiences: A Pattern Language for User Interface Design by Todd Coram and Jim Lee – A paper with a preliminary pattern language. Interesting focus on the relationships between the patterns.
Graham, Ian (2002). A Pattern Language for Web Usability Addison-Wesley Pub Co, ISBN 0201788888
Interaction Design Patterns in Games, Eelke Folmer, Futureplay 2006 Conference, London, Ontario, Canada.
Perzal & Kane (1999). Usability Patterns for Applications on the World Wide Web Pattern Languages of Programs (PLoP) Conference Proceedings, 1999
Collections
hcipatterns.org – Collaborative website with links to both internal and external patterns
Patterns Home Page – A good collection of links
The Patterns Gallery – More good, well-organized links, focusing on HCI from the University of Kent
The Amsterdam Collection of Patterns in User Interface Design – A good collection of basic patterns
The Interaction Patterns Page – Tom Erickson’s collection
UI Patterns and Techniques – Jennifer Tidwell’s pattern collectionWeb Design Patterns – Martijn van Welie’s collection has patterns in several categories. It also contains general GUI design patternsPatterns of Interaction – a Pattern Language for CSCW from Lancaster University, UK
The Brighton Usability Pattern Collection – a short collection, focusing on messages and communication
Common Ground (1999) – Jennifer Tidwell’s collection
UI Design Process patterns – Three patterns that drive the initial phases of design. They key off of Story, a pattern from the early development language.
Interaction patterns for games – Eelke Folmer (pattern library in process)