Archives For design patterns

My co-author Bill Scott is sharing his newly rewritten talk on Designing for Interesting Moments. Given at Microsoft in Redmond, Ruby Meetup Group at CMU/Moffett Field & The Ajax Experience 2009.

Overview: Did you know that there are at least 16 different moments of interaction during drag and drop? And that there are at least a half-dozen elements on the page that conspire with these points in time to form a drag and drop interaction? With almost all user interactions there are lots of interesting moments that you can use to enhance the user experience — or worse to create confusion in the user’s mind.

In this talk, Bill slows down time and puts dozens of interactions under the microscope to study what works and what doesn’t work when creating interactive applications. Nuances from 80+ examples illustrate both what should be emulated (design patterns and best practice tips) as well as what should be avoided (design anti-patterns).

These are conveniently summarized in six over-arching design principles.

* Input where you output.
* Require a light footprint.
* Maintain flow.
* Invite interaction.
* Show transitions
* Be reactive.

This talk goes hand-in-hand with our book, Designing Web Interfaces and will provide you with dozens of clear take-aways for designing rich interactions on the web.

Fluency and Rosenfeld Media sponsored the first DelveUI, A 2 Day Masterclass on Designing User (Web) Interfaces last week at the NYU Poly Campus in Brooklyn.

I had an opportunity to speak about my favorite topic: design patterns and principles for rich applications. The talk is titled Designing Rich Applications– and illustrates the need for richness at four levels:

  • application structure
  • screen layout
  • selecting rich UI controls
  • interactions


I’m working on a nifty little flip book that has all of the application patterns, screen patterns, rich UI controls and interaction patterns. All the patterns are on index cards and you can carry it into design sessions- and flip through it for inspiration- or to find a certain pattern. tangible-ria-patterns

ria-flip-book1

Let me know if you think this would be useful.

Since our new book focuses on rich interactions, I want to spend some time on Adobe Flex/AIR.

These tips are based on the best Flex resources I have found, and how you can use them to craft a great user experience. This is part 3 of 6:

Learn from the Rest: 10 Great RIAs

Take a look at some of the best RIAs on the web. How did I decide these are the best? I reviewed numerous applications, basing the evaluations on Jakob Nielsen’s 10 Principles for User Interface Design:

Feedback — Metaphor — Navigation — Consistency — Prevention — Recognition — Efficiency — Design — Recovery — Help

I realize these guidelines are a bit old (from 1990!)- but all applications should meet these guidelines at a minimum. The applications listed below also embody our 6 Principles for Rich Interaction:

Make it Direct — Keep it Lightweight — Stay on the Page — Provide an Invitation — Use Transitions — React Immediately

01. CrazyEgg

crazyeggcrazyegg_confetti

Fantastic application which adheres to every one of the principles. At first, I thought the confetti feature was going to ruin the evaluation, but it is a perfect balance of innovation and usability. Look at how they use common checkboxes for selection, and wiggle the confetti when a source is added- very rich, very nice.

Interactive demo is available

02. Mint

mintmint_saver

Mint’s user experience only gets better and better. You may want more features in the product (money market support…), but the features they offer are perfectly executed. Primarily developed with HTML, CSS, JS and Ajax, they chose to incorporate Flex in the Trends section.

The new Ways to Save section is completely dynamic, updating as you adjust amounts, scores and preferences.

Free registration is available

03. Wufoo

wufoowufoostatistics

Wufoo is an extremely well designed tool that has more than meets the eyes. Play with the templates and report creator for inspiration in keeping it simple, and look at they way they use Blank Slate and Help Tips to keep you moving towards your goal. It is almost even fun!

A nice product tour and free plan is available

04. 280 Slides

280slides280slides_toolbar

One word- slick. If only all of my projects could be this perfect. Yes, it seems like Keynote (or PowerPoint) on the web, but take a closer look at some of the features. Instead of the maddening Inspector and Format menu, the common formatting functions are in the toolbar. Everything is there when I need it, they even incorporated Adobe Kuler in the color palette!

Free trial available

05. Action Method

actionmethodactionmethod_dialog

Another very well implemented product. It is easy to get started with the Blank Slate screens providing tips and directions, and even easier to get comfortable using the product because it uses a standard screen patterns and common controls.

Every detail has been accounted for. Notice the visual design that makes it clear that the tasks can be dragged around and reordered.

Trial version available

06. Fidelity Labs

fidelitymyplanfidelitylabs_mortage

In 2006 Fidelity Labs started cranking out some very nice RIAs, one of them being Fidelity MyPlan. The Mortgage Search and Homes Sold were also very nice, but have been retired. Unfortunately, their newest 3D Portfolio Analyzer, is not up to par with their earlier beta products.

The direct interactions and what-if scenarios in MyPlan seem to have inspired Discovers Paydown Planner and other direct manipulation financial planning tools.

Fidelity MyPlan is publicly available

07. Pandora

pandorapandora_tip

Pandora has been around since 2005 and has finally gained popularity. It has a very simple, intuitive interface, which makes it easy to get started. The menu offers direct interaction for rating the song ‘up’ or ‘down’, while also providing advanced options such as “don’t play this song again for a month”. And the help tips, shown at just the right time in the workflow, provide a glimpse into advanced features.

Pandora is publicly available

08. Wave Maker

wavemakerwavemaker_model

Wavemaker is a great example of how a complicated product with many features can be clarified with good interface design. They use a logical page flow from left to right- matching the developer workflow of adding a control to the canvas (LEFT) , physically manipulating it (CENTER), then entering tweaking the details in the properties and style panel (RIGHT).

A Cloud Edition is available

09. SugarSync

sugarsync_grid

sugarsync

Another great product that relies upon standard screen patterns and common controls to create an intuitive efficient experience. Awarded Top 10 User Interfaces of 2008 by Jakob Nielsen. Report available for purchase.

A 45 day trial is available

10. clickshirt

clickshirtclick_hoverclick_click

clickshirt keeps it simple and fun with integrated demos and lively interactions. Event the checkout is rich, hover to see more details about the t-shirt type, click to specify the size and quantity. No gratuitous paging in this application.

clickshirt is publicly available

More Good RIAs

These products have good examples of rich usable components, although they may not have met the 10 basic principles for usability throughout the whole application.

NetVibes

netvibes1

Trulia Snapshot

truiasnapshot1

37signals products like Highrise

highrise

Wesabe

wesabe

Keep an Eye on These

iWork.com Publishing Tool

iworkcom-comments

Atlas

atlas

Bespin

bespin

OtherInbox

otherinbox

Comment with your favorite RIA

I realize I have only skimmed the surface here, please comment with a link to the best RIA you use.

Thanks to Rob Jones and Greg Leppert for helping me pull together this list.

Since our new book focuses on rich interactions, I wanted to spend some time on Adobe Flex/AIR.

After designing several large enterprise applications for diverse clients and industries, I’ve noticed some barriers to crafting a great experience in Flex. I think these barriers arise from the relative newness of the technology (and RIAs in general), the initial focus on development over design, and the confidence that Flex can provide a great UX out of the box. But it takes a bit more to make a Flex app really shine. Fortunately, the Flex community is chock full of talented and motivated developers who contribute amazing resources.

These tips are based on the best Flex resources I have found, and how you can use them to craft a great Flex UX. This is part 1 of 6:

  • Play With It: 10 Flex Explorers
  • Learn From the Best: 10 Great Flex Apps
  • Learn From the Rest: 10 Great RIAs
  • Stock Your Toolbox: The Essential Controls
  • Review Best Practices for Designing a RIA
  • Avoid Common Mistakes: 10 Anti-Patterns

Play With It: 10 Flex Explorers

I can’t think of a better way to get your feet wet than to play with these explorers.

01. Tour de Flex

tourdeflex

02. Component Explorer

flexcomponentexplorer

03. Style Explorer

flexstyleexplorer

04. Regular Expression Explorer

regularexpressionexplorer
By Ryan Swanson

05. Charts Explorer

chartexplorer
By Ely Greenfield

06. Efflex Effects Explorer

effectsexplorer
By Stephen Downs

07. Filter Explorer

filterexplorer

08. Primitive Objects Explorer

primitiveexplorer

09. Data Visualization Explorer

quvisexplorer

10. Button Skin Explorer

buttonskinexplorer

Comment with your favorite Flex explorer

I realize I have only skimmed the surface here, please comment with a link to your favorite explorer or gallery for Flex 3.

This is the third article in a three part series on patterns and principles for RIA design.

      Standard Screen Patterns: 12 patterns w/100 examples
      Essential Controls: 30 controls for RIA design and development
      Common Component Patterns: 15 patterns and examples

Odds are good if you are designing a enterprise software or a productivity web application, you’ll need a number of these components. Don’t spend time and effort on (re)designing these ancillary features- try these solutions instead.

15_common_components2

01. Add Another

component_add_another_wufoo1
Wufoo (button)

component_add_another_gmail1
Gmail (link)

Requirement: Need to offer multiple input fields for the same thing, but unsure how many the user may need
Example: Add attachments, enter phone numbers, upload photos…
Description: The “add another” link or button should be in proximity to the field, and the remove option is shown an attachment is added, and only one “add another” link is shown at a time. No need to show the remove button until at least one entry is shown.

02. Add/Manage Tags

component_add_tags_highrise
Highrise (inline edit)

component_add_tags_mint
Mint (dialog)

Requirement: Need a way to add non-structured meta data to an object that can later be searched
Example: While adding recruits to a CRM system, the recruiter wants to note applicants’ interests and hobbies
Description: Place the tags in close proximity to the object being taggged. Allow for direct adding of additional tags and editing. You can take the 37signals approach and let users type in any tags they want- running the risk of duplicate, misspelled or overlapping concept tags. Or use Mint’s approach and let users select from the existing list of tags, and/or add new ones.

03. Add/Edit or Select from Existing

componenet_add_edit_select
Highrise

Requirement: Need to pick from an existing option, add a new option, or edit an existing option
Example: Recording receipts for household expenses, and there is not a category for pet/vet bills. Add a new category for “pets”, which will now show up as an option in the list
Description: Place the option for “add new…” at the bottom of the options. Open a new dialog or light weight layer to add the new option. Place edit to the right of the list box, edit can be a new screen or dialog for editing all the options.

04. Advanced Filter

component_advanced_search1
Mission 360 for The Leukemia & Lymphoma Society

Requirement: Need to refine the data set based on specified criteria
Example: In a bug tracking system, a developer needs to see all bugs assigned to him, in the last 24 hours, related to the production system, containing the term “feedback”
Description: Provide a dynamic filter field and offer an advanced filter option, where the user can specify criteria for refining the data set. Allow the criteria to be saved (usually as a ‘view’), that can be accessed again. Note* Luke W. has a great article describing multiple techniques for refining data tables.

05. Build a List (aka Accumulator)

component_build_a_list_linkedin
LinkedIn

Requirement:Need to create a list from an existing set of options
Example: Invite some of your friends from your existing list of webmail contacts, or build a list of hot prospects for a sales campaign
Description: When a user needs to select items from separate sets of search results or other large, unwieldy data sets- let them manipulate the left (search, sort, navigate or filter), and add to the right.

06. Build an Expression (aka Predicate Editor)

component_build_expression
Wufoo

build_expression
Mac OS predicate editor inspired web versions of this component

Requirement: Need to define a set of conditions that build on each other.
Example: Complex search or building a report filter, or building a mathematical function
Description: Design it so the expression can be read, left to right, top to bottom. Each line can be edited, removed, or deleted, and possibly rearranged in order.

07. Contextual Toolbar

component_group_tools_picnik
Picnik

Requirement: Need to perform an action that has multiple input parameters
Example: Analyst needs to apply a discount to all the rows in a table, clicks the ‘discount’ tool. The discount options: discount percent [10%] or flat rate discount [$0.00], are then provided.
Description: Group the actions in a toolbar, and as one is selected, disclose the input parameters. Offer a live preview if applicable.

08. Customizable Data Grid

component_configure_datagri
Flexigrid demo

Requirement: Need robust data grid from viewing, editing and manipulating data
Example: A CRM system with contacts displayed in a table/data grid
Description: Offer simple and advanced filtering, ability to directly resize columns, ability to directly rearrange columns, hide/show columns, sorting. If also providing editing, provide a toolbar that includes undo and redo actions.

09. Drag & Drop Reorder

component_drag_drop_list
Basecamp

component_drag_drop_reorder_cogmap
Cogmap

Requirement: Need to reorder a text list, visual map, or tree because the order is indicative of priority or hierarchical relationship
Example: To-do list, org chart, tree
Description: Make sure to follow the interaction principles for all the states of drag and drop management, most importantly providing a visual cue the list can be rearranged, like the drag handles in the examples. Refer to Bill’s Interesting Moments Grid for implementing the interaction properly.

10. Full Screen

component_fullscreen_picnik
Picnik

component_fullscreen_radedi1
RadEditor Demo

Requirement: Need more real estate for core functionality
Example:Editing a photo, designing a work flow, navigating a map
Description: Place the toggle in the top left corner (make sure it remains in the same spot and visible even in the full screen mode). The branding and top level navigation can be hidden in this mode. Don’t add any more elements into the full screen mode- just enlarge the workspace.

11. Graph Drill Down

component_graph_hover_wesabe
Wesabe

component_graph_hover_dundas
Dundas Charts

Requirement: Need to show a summary view and allow a quick and efficient drill down to view more details, instead of navigating deeper into the graph
Example: A specific datapoint has multiple sets of information available. The main graph could show sales volume by sales person over time, and the hover detail breaks it down by new versus existing clients
Description: Provide a visual indicator (like a dot) that hover details are available. Use a non-modal layer to display the next level of data.

12. Live Preview

component_live_preview_fidelity
Fidelity MyPlan

component_live_preview_mint1
Mint Savings Finder

Requirement: Need provide live feedback on changing criteria
Example: Graphic designer altering the hue of a photo needs to see the effect as he adjust the value
Description: Provide easy to manipulate controls, and an “apply” and “cancel” options, or “revert” feature.

13. Slide Down

component_slide_down_retail
RetailMeNot.com (inline)

component_slide_down_weightwatchers
Weight Watchers (overlay)

Requirement: Need to show more details, or input details
Example: Reading an article in a list of articles, scan the first paragraph and want to read more, or read the comments.
Description: Expand inline or overlay without leaving the page or opening a new window/dialog. Use smooth transitions and a fixed height scroll window like RetailMeNot. Provide the close link in the same spot.

14. Split a Transaction

component_split_transaction
Mint

Requirement: Need to allocate a single item across multiple categroies
Example: Dividing a transaction (ex. allocating a 50% of a donation to one recipient, and 50% to another recipient, or $2.00 as a fee, and $200.00 as cash withdraw)
Description: Split button placed unobtrusively in the transaction detail pane, could also be a tool in the table toolbar, enabled when a row is selected. Opens a dialog allowing the user to re-allocate the data as needed.

15. Switch To

switch_to1
Basecamp

switch_to_zoho
Zoho

Requirement: Need to infrequently navigate out of one module into another without returning to a control panel, dashboard or dock
Example: Working in one project, finish and need to work on another one
Description: Make the switch less visually prominent than the main navigation, but still easily accessible (top right or left, above the main menu).

Updated in 2010: 15 Standard Screen Patterns with examples from 80+ current web applications.

To celebrate the release of our new O’Reilly book, “Designing Web Interfaces: Principles and Patterns for Rich Interactions”, I want to share an additional set of principles and patterns I have been using for RIA design. While the book takes a much more consumer web site orientation, these concepts are central to enterprise application and web productivity application design and more broad than those discussed in the book.

This is the first article in a three part series.

      Standard Screen Patterns: 12 patterns w/100 examples
      Essential Controls: 30 controls for RIA design and development
      Components for Commonly Requested Features: 15 patterns and examples

standard_screen_patterns

With more companies turning to RIA frameworks for enterprise software development, these screen patterns are indispensable for product managers, UX designers, information architects, interaction designers and developers. The patterns rely heavily upon desktop design principles, subtly blended with many of the better RIA components and principles. I’ve included 100 examples to illustrate these patterns, pulled from desktop, Flex/AIR, Ajax, Laszlo, and Silverlight applications.

01. Master/Detail

Master/Detail screen pattern can be vertical or horizontal. Ideal for creating an efficient user experience by allowing the user to stay in the same screen while navigating between items. Horizontal layout is a good choice when the user needs to see more information in the master list than just a few identifiers- or when the master view is comprised of a set of items that each have additional details. Click on thumbnail for larger image OR download the PDF.

02. Column Browse

The Browse screen pattern can be vertical or horizontal. Ideal for creating an custom user experience by allowing the user to start from various entry points for navigating to the item(s) they are interested in.

03. Search/ Results

The Search screen pattern can range from very simple to quite advanced. Ideal for creating an efficient user experience by allowing the user to navigate directly to an item or set of items meeting specific criteria.

04. Filter Dataset

The Filter Dataset screen pattern can be vertical or horizontal. Ideal for creating an efficient user experience by allowing the user to refine a set of known data, or further refine search results.

05. Forms

All Form screens should be approached with a solid understanding of usability and design best practices. Refer to “Web Form Design: Filling in the Blanks” by Luke Wroblewski for reference.

06. Palette/ Canvas

The Palette/ Canvas screen pattern is seldom the right pattern to apply, but it is the only pattern for documenting or creating: linear or non-liner processes; flow diagrams; screen layouts; design/diagram with physical size or layout constraints.

07. Dashboard

A well designed Dashboard will provide: key information at a glance, real time data, easy to read graphics, clear entry points for exploration This is typically not achieved by displaying a single screen of metrics (either in a big table, or just a bunch of graphs). Providing a high degree of customization is no substitute for user research and testing. Stephen Few has a nice book on this topic Information Dashboard Design: The Effective Visual Communication of Data .

08. Spreadsheet

The Spreadsheet screen pattern is ideal for creating an efficient user experience by allowing the user to easily scan, edit and enter information (in bulk). The Spreadsheet should provide the following functionality: standard table features like sort, hide/show columns, rearrange columns, group by (if applicable), global level undo/redo, add/insert/delete row, keyboard navigation, import and export.

09. Wizard

The Wizard/Quick Start screen pattern is ideal for creating an efficient user experience by guiding the user through a complex or infrequent workflow.

10. Question & Answer

The Q&A screen pattern is ideal for creating an efficient user experience by allowing the user to enter known information and receive a solution. Q & A differs from Search in that this pattern should be used to assist users in identifying possible options or a single recommendation in an arena they are lacking expertise (health insurance, mortgages, planning, purchases).

11. Parallel Panels

The Parallel Panels screen pattern can be stacked (showing one at a time) or unstacked (showing all at once). This pattern is ideal for organizing chunks of information that are similar or have interdependent tendencies. Efficiency is gained by keeping the user in one screen. Ideal candidates for the stacked variation of this pattern are simple work-flows with: a high level, visible goal that is fed by multiple inputs, multiple non-sequential steps. This combines a number of the web site patterns outlined in “Designing Interfaces” by Jennifer Tidwell for a single pattern for chunking and displaying data.

pp_ex4

12. Interactive Model

The Interactive Model screen pattern is characterized by many interactive elements associated with the key object (a calendar, map, graph, chart, canvas). It is ideal for creating a user experience that is closely aligned with the user’s mental model (a natural fit). Excellent candidates for this pattern are: calendars, maps, gantt charts, what-if scenarios (including calculators), WYSIWYG editors (including photo editing).

Bonus. Blank Slate

This is the natural state of the application, before any data has been entered or accessed. The book, “Getting Real” by 37signals”explains that a blank slate screen is an excellent place to set users expectations. By giving them a preview this can lower anxiety and reduce frustration and confusion. Items to include in a blank state screen include: videos, quick tutorials, help tips, a screenshot of what a fully loaded screen will look like.

Missing Patterns?

Noticeably absent are two patterns that are grossly overused and misused in enterprise software- portals and tabs.

  1. Portals- If your market research, business requirements and user feedback lead you to design a portal, follow the same design principles and best practices as the Dashboard pattern.
  2. Tabs- Tabs are a component, and ultimately not a screen pattern. They are to alternate between views of data in the same context. If the data structure is leading you to a tab heavy UI design, I have two suggestions. First, reconsider the IA. Use card sorting and/or hire a professional Information Architect to help you for a few days. Second, follow the same design principles and best practices as the Parallel Panels pattern.

You can download a PDF of this post which includes full descriptions of each pattern, as well as best practices.


References

If you are looking for web site design patterns, here are a number of excellent books:

After getting lots of great feedback on my Seek or Show Design Paradigms entry, I though I would elaborate a bit on each starting with Seek (Search).
Ajax, Flex and Laszlo have provided us with away to replace the effort intensive, page based search with a simple, more responsive user interface. Why should we move away from the traditional search design? Because it is inefficient, cumbersome, and designed around technical constraints that no longer apply.

Traditional Search
Requires lots of effort to find, refine, and explore the results. Searching starts with a keyword or multiple criteria and many pages of results are returned. The user must then refine the result set. Lots of back and forth ensues, while navigating from the ‘search results page’ to the ‘detail page’ and back again.
Rich Search
Requires minimal effort to seek, refine and explore results. Refine options are integrated in the results screen. The results are dynamically refined when selections are made- no page refreshes. Multiple levels of details are readily available.

The Principles of a Rich Search

The user experience should include:

  • Multiple view options
  • Scrollable results (versus paging of results)
  • Integrated refine feature
  • Progressive disclosure of details
  • Save functionality available (search, results or both)
  • Ability to change initial Search terms without leaving the screen

The Principles in Practice
I’ve taken the best interaction design from three RIAs: AlexSystems Kids Store, Roost, and eBay’s Playground, and redesigned a major car sales website to demonstrate an ultra rich search experience.

RIA 1: AlexSystems Kids Store
AlexSystems created this prototype for the Laszlo showcase. They collapsed the traditional page based search into a single interface. The number of results are clearly displayed across the top, refine options down the left, with an integrated shopping cart below. Three levels of detail are available for each item.

Hover Details
Hovering over an item displays the item’s name and price. This is ideal for displaying results that are judged initially by appearance (homes, cars, dates) because it keeps the screen from being crammed with text.
first.png
Birds Eye View
Clicking on an item opens a layer with name, description, price, and common actions:[detail] and [add].The Birds Eye View requires less commitment from a visitor than asking them to navigate to another page just to see a short product summary.
second.png
Full Description
Accessible from the Birds Eye View, expands to show a full description of the item, and the options to [add] and navigation [back to the search results]. A nice addition to this would be next and previous buttons to jump directly to the other items in the results.
third.png

RIA 2: Roost
Roost is great example of a rich search experience. They have a very tight design that meets most of the requirements for providing an easy way to seek out information, refine the results, and save searches to make it easier for future use.

Refine Your Search
Clear terminology and simple options make it easy to refine the search results. The most commonly used options are shown by default, while the less frequently used options are collapsed. Results are refined dynamically (no extra button to click)
roostrefinecrop.png
Reset Filters
This is one of the simplest ways I’ve seen for clearing filters. They used a custom component so it would visually stand out from other form components. The Reset option is available above and below the refine panel, making it hard to miss when it’s needed.
reset.png
Saved Searches
The Save option is in proximity to the Search box- so it is easy to find. Saved Searches are shown directly below- and have a quick remove feature, so it is simple to manage the list.
roostsave2.png

RIA 3: eBay’s Playground
eBay is looking to provide a better user experience by integrating some rich components. The Playground is still very page oriented, relaying heavily on breadcrumbs, and page reloads for refining results, but they have introduced some useful features.

Multiple Views
eBay’s Playground offers results as a List View, Picture Gallery or Snapshot. I think Picture and Snapshot will probably end up combined, but it is nice to have a more photo-focused option for scanning results.
eBay Snapshot
Hover Details
Hovering over a photo in the Snapshot view provides the next level of details about an item. This is an decent design, but basically provides the same information as the List, yet it requires more effort on the visitors part to mouse over each item for the information. They could significantly improve this experience by integrating the full photo gallery in this layer.
eBay Snapshot Hover
Narrow Your Search
Common categories and sub categories are shown on the left, with the number of items in each. eBay users are accustomed to this method for filtering the results- and navigating deeper into eBay’s vast category hierarchy. Unfortunately, the filters aren’t dynamic, making it additional work to scroll down and find the silly ‘Go’ button.
eBay Narrow Search

The Ultra Rich Search Example
I decided to rework the CarMax search experience as an example. I’ve incorporated the principles to present a generic solution. A real redesign would need to involve allot more information than I have on hand at this time. Also assume there is a free form search on the CarMax home page that precedes these screens.

CarMax Search Results

Results Screen
Shows all the results matching ‘mini cooper’. Left side allows for refining the results based on more criteria. The middle displays all the results, large photos making it easier to visually scan. There is a List View option as well as the default Photo Gallery view. Results are sorted by default. Right side acts as a workspace for Saved Searches and Saved Vehicles.

CarMax Click Details

Click Details
Clicking on the photo opens a layer with more details about the vehicle, including the full set of vehicle photos, seller info, and the options to ‘Save’ and ‘View more details’.

CarMax Refine and Save

Refine and Save Features
Adjusting controls on the left dynamically refines the results (no silly ‘Go’ or ‘Search within these results’ button needed). Saved Searches and Saved Vehicles are visually chronicled down the right side of the screen. Saved Vehicles can then be compared.
References

(1) Alex Systems LLC (2005) http://www.alexsystems.com/

Here are two design paradigms for handling large amounts of data, not to be confused (or combined) as web design meets desktop in rich Internet applications. This would seem self explanatory, except that the Seek (Search) paradigm is typically used in web sites, and the Show (View Based Lists) paradigm exists mainly in desktop applications. So the challenge arises when a RIA requires one of the Show patterns, but we only have Seek patterns documented for use on the web.

The Seek Paradigm: Have the user ask for what they want

This paradigm lets users go directly to the information they are seeking, rather than having to scan through all the data upfront. There are many variations on the search pattern used across the web. I have shown 7 common patterns below.

—You can click on any of the screenshots for a much larger  image—

01. Simple Search/ Results as List

Free form text field for entering search terms. Results displayed integrated or on a results page.
Songza Displays the search results integrated on the same page
Clipfire Displays search results on a separate page

02. Simple Search/ Results with Refine & Sort Options

Free form text field for entering search terms. Once displayed, the result list can be refined/narrowed.
Roost Search results can be dynamically refined by adjusting the filters on the left.
LLBean Search results can be narrowed by drilling into one of the offered categories.

03. Simple Search/ Grouped Results

Free form text field for entering search terms. Results are displayed, already grouped.
Flickr Displays the search results in groups, across tabs: Photos, Groups, People…
Spotlight on the Mac Displays search results in groups by Kind: Document, Image, Folder…

04. Pre-Filtered Search / Results

Free form text field for entering search terms, with category selector available for pre filtering the results.
Ask Provides categories as tabs above the search field. Options to search within: Web, Images, City News.
Amazon Provides categories as a select box next to the search field. Options to search within: Accessories, Books, Electronics…

05. Criteria Based Search/ Results

Multiple criteria must be entered to perform the search. Results usually displayed in a sort-able grid.
Travelocity Requires multiple criteria to perform search. Results are displayed in a matrix for easy comparison, and in a grid that can be sorted.
Realtor Requires at least one selection to perform search. Results can be sorted at a column level.

06. Simple Search w/ Advanced Search Alternative (Criteria Based Search)

A simple search is available by default, and the advanced search allows multiple criteria to be specified.
Google Simple free form search is the default. Criteria based search is available on the ‘Advanced’ search screen.
eBay Pre-filtered search is the default. Criteria based search, and a list of saved searches is available on the ‘Advanced’ search screen.

07. Saved Searches

Users can explicitly chose to ‘Save a search’ that they can run again later, or request notification of matching results when they are added. Note: the search criteria is saved, not the result set. ‘Recent Searches’ may also be cataloged and displayed.
Roost Offers an option to ‘Save this Search’. Saved searches are displayed on the right side, and can be selected (run) or removed.
Indeed Automatically saves and displays all recent searches on the left. Also offers an option to be updated by e-mail when something new matches the search constraints. A separate page provides management of for the ‘saved searches’.

The Show Paradigm: Display everything up front, and let the user explore and organize it

This paradigm has existed in desktop applications since the first GUI. It may also contain a search feature, but the primary focus of the interface is to allow for optimal viewing and organization of the full set of data. Here are 3 common patterns.

01. View Based Lists

Data containers (views) are displayed on the left, their contents listed on the right. Custom views can be created and are shown beneath the default views.
Outlook Default views (Inbox, Drafts, Sent, Trash) are available on the left. The highest level views contains all the data, and cannot be removed. Custom views can be added to mange the data views.

iPhoto Very similar. Actions (buttons in the toolbar) are available for individual or multiple records. Selecting a record discloses more available actions. A pre-filtered search feature is available to quickly find an item. Any refined data set or search result set can be saved as a new view and will show up on the left. ‘Searches’ themselves are not saved.

02. View Based Lists with Facetted Browse

Views are available on the left, the right pane offers a way to browse the data in a view, and refine the display. Custom views can be created, and will be accessible on the left.
Songbird Media Player Default views (Music, Movies, TV Shows…) are available on the left. Within a view, the 3 panel browser is available to explore data from multiple facets: Year, Genre, Artist, Album…

iTunes ery similar. Single or multiple items can be selected and acted upon via action buttons or right-click menu options. A pre-filtered search feature is available to quickly find an item. Any refined data set or search result set can be saved as a new view and will show up on the left. ‘Searches’ themselves are not saved.

03. View Based Lists with Master/Detail

Views are available on the left, the right pane provides a master/detail list of the view’s contents. Any item in the master list can also be opened in a new window.
Mac Mail Default views (Inbox, Drafts, Sent…) are available on the left. Items are listed in the top pane, the selected record’s details displayed below. Items can be acted on individually or en masse. Custom views can be added.
WebTop- Laszlo Mail Very similar. When a new view is created, the list of items is saved, but not the grid display preferences (sort order, showing columns are not persisted).

When To Use:

The Seek paradigm should be used when the user is looking through data they don’t ‘own’ and are looking:

  • to see what is available
  • for additional information about items (description, details, photos, ratings)
  • to compare multiple items (homes, cars, flights)
  • to consume items ( buy, play, read, vote on)

The user may want to save the search criteria they have entered so they don’t have to re-enter it again in the future. Saved searches can be presented in a variety of ways, typically displayed on the right side of the screen or on a separate page.

The Show paradigm should be used to present data the user (or user’s institution) ‘owns’. Data examples include:

  • Employee records
  • Songs/Audio/Video
  • Files/documents
  • Connections (friends, family, colleagues)
  • Photos
  • Sales Leads
  • Customers/Accounts
  • Bank/Credit transactions
  • E-mail messages

The user will typically want to categorize the items into views-which can be accessed later to show items that have certain similar attributes. Default views are presented at the top. Actions may be applied to one or more items in a view, often to provide a more efficient mechanism for bulk transactions (delete, rate, e-mail, label, add to playlist, upload, mark as flagged, update). Items may also be opened individually, typically in a new window.