UI Pattern Libraries for the Enterprise- What, Why, How and the Difference From a Style Guide

What is a UI pattern?

If you break a website or application down from a user interface perspective, you will end up with a bunch of user interface components that are used again and again throughout it. A user interface pattern is called so because that pattern can be used repeatedly to solve a particular design problem.

Examples of UI patterns

  1. Accordion- An accordion can be used to display information when there are too many items to fit in a limited space without overwhelming the user.
  2. Step indicator- A step indicator is used in screen flows to inform users of the number of steps in multi-screen process.
  3. Progress indicator- A progress indicator is used to shows actual progress of a task being done by something or someone.

What is a UI pattern library?

A UI pattern library is a collection of user interface design patterns. The UI pattern library documents these UI patterns and defines how they should look, behave and often how they should be coded too. It can also provide specifications on templates, flows, and general heuristics.

How can a UI pattern library help an organisation?

UI patterns help an organization ensure a consistent user experience across a suite of websites and applications- in terms of how they look and how they behave, application flow and pages layouts. The greater the number of applications, the greater its use.

The difference between a style guide and a UI pattern library

We will restrict the scope of a style guide to the online channel for this explanation and refer to it as the Web Style Guide. The real difference between a web style guide and a UI pattern library can be explained through what each of them specifically address, and thus their audience which governs the way they are structured.

Both strive for consistency in visual design and interaction covering interactive forms to typography. A style guide’s primary purpose is to ensure that branding is correctly applied to maintain the organizations identity across different websites and applications. On the other hand, A UI pattern library’s primary purpose is to present a set of solutions that address unique design problems. For example, how do you address session timeout frustration for users? How do you address application errors so users are not left disoriented and confused? How do you prevent users from accidentally exiting long forms if they’ve filled them half way through? Since these solutions address design problems, they can increase the efficiency of website and application development with increased usability.

Think of it as extending the value of a style guide rather than a replacement. The style guide’s primary audience is the designer who will refer to it to ensure that the visual design is correctly implemented. The UI pattern library’s audience is the Business analyst, developer and QA (Quality Assurance). Business Analysts and developers, with little or no help of the Usability team (depending upon the importance of the project, availability of usability resources and timelines) can use the style guide to work on the flow and user interface for an application. Even better, developers can pick code samples (HTML, CSS, Java script) to implement the UI pattern. Last but not the least, QA (Quality assurance/ testing team) can use it to verify the correctness of user interface implementation.

The structure of a UI pattern

A UI pattern can include the following sections:

  1. Name of pattern
  2. Example image
  3. When to use it (description of the specific problem it addresses)
  4. When not to use it
  5. Similar UI patterns
  6. Pattern success notes in different applications
  7. Specifications (platform specific CSS, HTML, Java script)
  8. Accessibility
  9. Attachments (e.g.- icons accordion states)

Extending a style guide to a UI pattern library

A style guide can be extended by adding the categories from the structure above that are not a part of the style guide.

The UI pattern library as a web app rather than a document

The advantage of having a UI pattern library as a web app rather than a document is:

  1. 1. You have a single source of truth rather than different versions of PDFs or other document formats. This means everyone from UX to Product to Development to Testing views the same version always, without any confusion of teams or individuals referring to different versions.
  2. Lets you look at the UI patterns from different views. For example- organize by looking for a design problem. Organize alphabetically. Organize by layout section.
  3. UI patterns should be updated, added and retired. A web app makes it easier to do so than a document.

Good examples of UI pattern libraries

  1. https://ux.mailchimp.com/patterns – A great example for a company specific UI pattern library
  2. https://developer.yahoo.com/ypatterns/ – A generic UI pattern library but with examples from only Yahoo properties.

A partial list of UI components for a UI pattern library for web apps and websites

Here’s a partial list of UI components to help you get started with your UI pattern library.

  1. Accordion
  2. Vertical tabs
  3. Horizontal tabs
  4. Step indicator
  5. Horizontal navigation
  6. Horizontal navigation (Two level)
  7. Horizontal Mega dropdown menu
  8. Vertical navigation
  9. Vertical navigation (Two level)
  10. Links (with default, hover, on-click and visited states)
  11. Form components (with default, hover, focus, on-click states for controls)
    1. Name lookup
    2. Combo box
    3. Multi-select combo box
    4. Text box
    5. Form text value
    6. Label
    7. Checkbox
    8. Radio button
    9. Primary button big
    10. Primary button medium
    11. Primary button small
    12. Secondary button big
    13. Secondary button medium
    14. Secondary button small
    15. Inline edit
    16. Form layout
    17. Form sub-headings
    18. Form groups
    19. Hint text
    20. Instructional text
    21. Help text
  12. A modular grid based layout addressing several possibilities of standard web applications and websites layouts
  13. Messaging
    1. Success message page level
    2. Success message inline
    3. Error message page level
    4. Error message inline
  14. Tables
    1. Data table with
      1. Pagination
      2. Filter
      3. Sorting
      4. Search
      5. Resizable columns
      6. Option to freeze header
      7. Option to freeze first column
      8. Inline editing
  15. Processing indicator
  16. Progress indicator
  17. Login box
  18. Modal layer small
  19. Modal layer medium
  20. Modal layer large
  21. Tooltip
  22.  Typography
  23. Notification badge
  24. Breadcrumbs
  25. Facetted search
  26. Header compact
  27. Header regular
  28. Footer compact
  29. Thumbnails small
  30. Thumbnails medium
  31. Thumbnails big
  32. Video player small
  33. Video player medium
  34. Video player big
  35. Fat footer
  36. Auto complete
  37. Carousel
  38. User card