Most of you probably know that one of the things we’d like to do for GNOME 3.x, alongside a refreshed HIG, is produce and maintain a GNOME UI Pattern Library. (An example of what we mean by a GNOME UI Pattern is this semi-fictional example.)
I’m thinking we’d probably want a homepage that both allows you to search by text/tag, and browse by category (something like this quick mockup.) Which would, of course, mean picking some categories.
From a quick survey of other pattern libraries (which are mostly geared to web design) and the type of stuff the current HIG covers, here’s a first stab at what that list might look like.
- Feedback: Showing messages, notifications and progress indicators.
Examples: Alert messages, notification messages, InfoBar usage, status bar usage, focus indication, audio feedback.
- Input: Enabling the entry of different types of information.
Examples: Sliders, audio input, video input.
- Layout: Arranging information and controls in a window.
Examples: Frames, grouping, spacing, anatomy of creation vs viewer vs browser vs utility apps.
- Navigation: Enabling users to move around and between documents and different parts of the application.
Examples: Tabbed windows, sidebars, location bar, zoom controls, media transport controls(?).
- Search: Enabling users to find items or information that may not be immediately visible.
Examples: Find dialogs, in-place searching, filtering, auto-completion, Boolean queries.
- Selection: Allowing the choice of one or more items from many.
Examples: Marquee selection, keyboard selection, pattern matching.
- Social: Maintaining contact information, and interacting with other users.
Examples: Adding information to address books and calendars, Showing online presence, Initiating chat.
- Workflow: Relating to the process/mechanics of using an application to achieve a particular goal.
Examples: Desktop integration, undo/redo, drag-and-drop, extending open/save/print dialogs.
Feedback welcome… any obvious ones I’ve missed, or ones that seem redundant?
FWIW, I’m not sure nailing the list now is either entirely necessary or entirely possible. There’s no reason we can’t adjust them as the library grows, and I hope we’ll have some sort of tagging capability to handle the patterns that don’t fit neatly in a single category anyway. But it’s always good to start from as solid a foundation as we can