User Interface Patterns

These five UserInterfacePatterns are often described by WardAndKent though they never (yet) wrote them down. They were first applied by the SemiconductorTestSystemsGroup.

I have seen a lot of patterns about the low level aspects of user interface programming, and I have seen patterns on how to approach designing for the user. Last year, I co-authored a pattern language that tried to address what I felt fell through the cracks: Patterns that address the whole user's experience with a piece of software. I wanted to bridge the gap between SoftwareDesign (where some user interface experts call their home) and SoftwareEngineering (where most programmers live).

It didn't make the cut for the PLoP96 book, but some people have found it useful and I got positive feedback at the conference. If you get a chance, check out and let me know what you think.


It is interesting that so few user interface patterns have been written. I guess that just validates the stereotypes about programmers.

An interesting subarea of UserInterfacePatterns is UserInterfacePatternsForDatabaseApps.

In 1995, I was consulting for a client who was a psychologist. The team I was on tried every graphical user interface structure for database applications that was popular at that point in the industry--single document interface, multiple document interface, VB 1.x style interface. However the client didn't like any of these designs. Finally, we decided to try an interface style based on the look and feel of the Web (we were programming in Delphi), where TheDataIsTheUserInterface. The toolbar became a list of StartingPoints into data browsing and editing screens, and from there on, the data was presented in the natural hyperlinked graph that represented its underlying structure. The client was finally pleased with the results.

In 1998, I had a second consulting assignment where I decided to try the same technique again. This time we were rewriting a Clipper application for Windows. To my astonishment, the client--who was also the original Clipper programmer--had written a similar interface based on TheDataIsTheUserInterface for his Clipper application. So we easily rewrote the application for Windows, and gave it some Web functionality in the process.

I have since written a completely web-based presentation program using TheDataIsTheUserInterface, and this has been extremely successful.

I'm not sure if TheDataIsTheUserInterface is specific enough to be a pattern, but thought that bringing it up here might spur some discussion about what might be.


WebsitePatterns covers some of these issues

There are a number of excellent UI Patterns, with clear and detailed explanations at Each pattern is described with the problem that it solves, the rationale behind its solution, as well as examples and places where you'd be likely to use it.
A pattern language for (the user interface of) business intelligence applications is available from

See also GuiGuidelines (DynamicUserInterfacePattern) SonificationDesignPatterns

View edit of April 22, 2008 or FindPage with title or text search