Screen Layouts for Rich Internet Applications

Last year we posted an article on 12 Standard Screen Patterns. It has been incredibly popular so we updated it for 2010. The full article will be published at UX Magazine. In the meantime, take a look at the 15 standard layouts and examples from more than 80 current RIAs:

Comments (13)

Designing for Interesting Moments Talk

I posted this on my personal blog and according to slideshare it is the top tweeted presentation from their site today (9/20/09). Been meaning to post it here for those who don’t follow my blog. The material contains some new examples but tracks with the book’s six principles.

I recently gave this talk at Microsoft for their UX team, at the Ruby Meetup Group at the CMU campus in the bay area and most recently at the Ajax Experience in Boston. Next time I will be giving this talk is in December at the Rich Web Experience (first week of December) in Orlando, Florida.

Comments (1)

Gmail uses The Drag & Drop Object Pattern to “Make It Direct”

Principle #1: Make it Direct

In the earlier version of Gmail, the only way to label or organize messages was to select the row or rows, then navigate to the “Move To” combo box or “Label” combo box.

But last week (at least in my Gmail account) Google decided to Make It Direct. Why select a row and look for an action button somewhere- just grab that message and drag it!

The Drag and Drop Object Pattern, in Chapter 2 of our book explains the nuances involved in this pattern such as affordance- ie. letting the user know they can drag something to reorganize the relationship, and clearly indicating the available drop zone.

Affordance

Gmail introduces the feature with a well designed help tip:
google-tip1

And by visually indicating the messages can be moved by displaying a drag handle on each row:
gmail_drag-handle

We did something similar in the new design of Zenoss, an open source systems management application. On Step 3 of Set-Up, the systems administrator can efficiently organize their infrastructure by dragging devices (right) into the proper category (shown on left).

drag_drop_reorg_zenoss

Since this is a set-up screen folks will only use once, we decided to embed the instructions in the screens instead of using a dialog with the tip.

Drop Zone

Although Gmail did a nice job introducing the feature, they didn’t implement the standard cursors for drop zones:
drag_drop_gmail1

Typically, the cursor should provide feedback when hovering over different zones, showing the user where the object can or can’t be dropped:
drag_drop_revise

The Ajax framework Ext JS handles this perfectly right out of the box- click to watch the screencast.

Expandable Drop Zone

So does this mean I have to go click to expand to see ‘12 More’ before I can drag any messages into those folders? Nope- Gmail borrowed an slick interaction from the Mac – the Expandable Drop Zone.

Now in Gmail, you can select one or more messages, drag them to an expandable drop zone, and a layer opens dispalying all of the other labels. Bill mentioned to me that a slightly longer delay ‘on drop’ would help provide feedback that the messages actually ended up in the right label.

Comments (3)

Excellent Roundup of Pattern Resources (Smashing Magazine)

Smashing Magazine Article

Smashing Magazine did an excellent roundup of pattern & screenshot gallery resources.

Check out their article 40+ Helpful Resources On User Interface Design Patterns.

One missing as of this writing is The Design of Sites book site. If you don’t have the book The Design of Sites I recommend it.

Leave a Comment

Two Anti-Patterns: Geek Speak & Needless Fanfare

Over on my other blog (looksgoodworkswell) I posted two examples of Anti-Patterns that relate to our book.

The first is Geek Speak. Presenting the user with jargon they will not understand (usually when something goes wrong deep in the bowels of the software). This example is from Facebook.

facebook-database-error (by Designing Web Interfaces)

The second is an example of Needless Fanfare (which we write about in the book). Unnecessary animation/transitions that instead of reinforcing communication needlessly distract from the job at hand. Turbo Tax weighs in with their version of the Biggest Loser scale when they recalculate your taxes on the fly.

Needless Fanfare - Turbo Tax Suspenseful Recalculation (SloMo) Read the full discussion on Geek Speak and Needless Fanfare over on my blog.

Comments (16)

6 Tips for a Great Flex UX: Part 3

By Theresa Neil

Since the 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 :o )

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.

Comments (9)

6 Tips for a Great Flex UX: Part 2

By Theresa Neil

Since the 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 2 of 6:

  • Play With It: 10 Explorers & Galleries
  • 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

Learn from the Best: 10 Great Flex Apps

Take a look at some of the best Flex applications on the market. 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. Picnik

picnik
Free version available

02. Balsamiq

balsamiq
Trial version available

03. Sprout Builder

sproutbuilder
Demo version available.

04. Campaign Monitor by eyeblaster

campaignmonitor
Commercial application- no demo available. Awarded Top 10 User Interfaces of 2008 by Jakob Nielsen. Report available for purchase.

05. ConceptShare

conceptshare
Free account available.

06. Weight Watchers eTools

weight_watchers
Commercial application- no demo available.

07. Small Worlds

smallworlds
Free account available

08. Buzzword

adobebuzzword
Free account available

09. Whitestone Cheese

whitestone
Publicly available at www.whitestonecheese.co.nz

10. Kuler

kuler
Publicly available at kuler.adobe.com

11. SumoPaint

sumopaint-screen
Free account available

Close Contenders

These apps were really close, but missed a couple of key principles, or are still maturing.

Klok

klok_fullscreenklok_time_entries
Free personal download available

Nice time tracking product in AIR- nailed the metaphor, but haven’t Made it Direct enough (yet). I instinctively want to click in my calendar to start logging my time against a certain project. Instead I have to navigate to Project View, then into Time Entries. And spinners for entering start and stop times are inefficient.

I must say I love the Weekly Time Sheet though, and the fact I can drag it to my desktop! I think this product will mature very nicely.

Tour Tracker

tour_tracker_fullscreen
tourtracker_allcaps
Up for a limited time at Amgen Tour of California.

Looks amazing. The metaphor is perfect- big map showing the course and stages- but lost points on some basic principles. Specifically Feedback- I click and click to “watch a rider” on the home page, nothing happens, so I keep clicking. And Design- a black background might demo well, but white and blue tex, all caps, sure is hard on the eyes.

Google Finance Dashboard

googlefinance
Publicly available at BrightPoint Consulting

This is a really nice dashboard showing what can be done with Flex & Degrafa. I can’t wait to see how they finish it out. Also check out Tom Gonzale’s blog for more amazing data visualizations with Flex and Degrafa.

htmlText Editor 2008

htmltexteditor1
Publicly available at www.theflexguy.com

This is a neat little one screen application that absolutely Stays in the Page and Makes it Direct. However, the Filter Tags feature is non-standard in more than one way: “If you remove tags and see that they really were needed, you can just uncheck the box and press Filter tags again.” I know the space is limited but Undo and Redo buttons would make more sense.

Agile Agenda

agileagendaagile_agenda_clicks
Free trial download available

Project management tool in AIR. Missed the Keep it Direct, and Stay in the Page principles. Too many dialogs where simple inline editing would have sufficed. Need better icons, or text with the icons. Usability aside, the product’s functionality seems to be quite robust and well worth the price.

Comment with your favorite Flex applications

I realize I have only skimmed the surface here, please comment with a link to the best Flex UIs you know of.

Comments (14)

15 Common Component Patterns

By Theresa Neil

As Bill mentioned in an earlier post, we don’t want to limit this blog to just the principles and patterns found in the book. For that you can check out our Explore the Book section.

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).

Comments (22)

Screencasts Added to Flickr

I just uploaded around 390 screencasts to the Flickr Designing Web Interfaces photostream. These are movie captures of various sites illustrating patterns from each chapter. This makes a nice supplement to the hundreds of figures that are already on the site.

The screencasts are in the DWI: Screencasts collection and organized into Sets that represent each chapter of the book. For example if you are looking for examples for Chapter 13, Lookup Patterns then the Set Chapter 13 (SC) – Lookup Patterns contains 70 screencasts illustrating various lookup patterns.

Comments (8)

O’Reilly Webcast Presentation Available

I presented Designing Web Interfaces on the O’Reilly Webcast today. Almost 1400 people signed up and the actual attendance hit 862. We set the record for an O’Reilly webcast :-) And we had overwhelmingly positive responses to the talk. If you liked the talk & the material then I think you will enjoy the book.

If you did not hear the webcast, check out the slideshare presentation below. It will give you the best flavor for what our book is about (keep in mind much more is in the book with lots more details and guidelines).

The audio will be available in a week or so. Look for a post here when I get the audio to share.

**UPDATE. The actual video & audio of the screencast can be seen on YouTube. Watch it in high resolution.

Comments (12)