Designing with AJAX: Yahoo! Pattern Library

1,361 views

Published on

With the recent rise in popularity of AJAX, we now have the opportunity to more closely model the real flow of the user. This presents a radical change to the designer paradigm-designers create in "chunks" while users think in "flows". Come explore interaction styles and design principles that can inform future design projects. Come see a set of common design patterns that are currently in vogue and examples that illustrate good design choices and bad design choices.

Published in: Technology, Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,361
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
60
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Designing with AJAX: Yahoo! Pattern Library

  1. 1. Designing for Web 2.0 Principles and patterns for rich interaction Bill Scott Yahoo! Ajax Evangelist bscott@yahoo-inc.com 1
  2. 2. background 2
  3. 3. developer.yahoo.com/ypatterns 3
  4. 4. surfacing vocabulary 4
  5. 5. current patterns Alphanumeric Filter Links. Calendar. Breadcrumbs. Module Tabs. Navigation Tabs. Auto Complete. Pagination. Item Pagination. Search Pagination. Ratings and Reviews. Architecture of a Review. Rating an Object. Writing a Review. Drag and Drop. Drag and Drop Modules. Transition. Dim. Brighten. Cross Fade. Contract. Expand. Fade In. Fade Out. Move. Self-Healing. Slide. Highlight. Invitation. Cursor Invitation. Drop Invitation. Tool Tip Invitation. Hover Invitation. 5
  6. 6. 6
  7. 7. rich patterns Drag and Drop. Drag and Drop Modules. In Page Editing. In Page Custom Editing. Direct State Editing. Grid Cell Editing. Inline Custom Editing. Inline Tag Editing. Popup Custom Editing. Slide-out Custom Editing. Inline Text Editing. Persistent Portals. Inline Reordering. Indication. Busy Indication. Cursor Busy. In Context Busy. In Context Progress. Inline Status. Auto Complete. Balloon Error Tip. Deferred Content Loading. Dynamic Goal. Narrowing Choices. Refining Search. Live Search. Dynamic Filter. Invitation. Cursor Invitation. Drop Invitation. Tool Tip Invitation. Hover Invitation. Detail Zoom. Opacity Focus. Configurable Module - Faceplate. Configurable Module - Flip It. Configurable Module - Inline Configure. Configurable Module - Slide Out Drawer. Slide Out. Flip. Opacity Fade. Endless Scrolling. Expandable Paging Boundary. Fresh Content. Hover Detail. In Place Drill Down. Inline Assistant. Inline Validation. Validate Then Suggest. On Demand Refresh. Periodic Refresh. Resizable Modules. Scrolling Modules. Auto Save. In Context Tools. Remembered Collection. Remembered Preferences. Auto Form Fill. Rating an Object. Transition. Brighten Transition. Cross Fade Transition. Dim Transition. Expand Transition. Fade In Transition. Fade Out Transition. Flip Transition. Move Transition. Self-Healing Transition. Collapse Transition. Slide Transition. Rich Internet Object. Available. Selected. 7
  8. 8. classic model. rich model. Http My Profile Response Server Photo Name Joe Smith Name Gender Male Gender Age 27 Age Http Submit Edit Request My Profile Server XHR Name Joe Smith Object Tim Jones Gender Male Age 27 Save 8
  9. 9. interaction. feedback. information. page Interaction Info Info Feedback refresh boundary 9
  10. 10. interaction + feedback + information = richness Interaction Info Feedback 10
  11. 11. Interaction Feedback Info design principles for richness 11
  12. 12. Interaction Feedback Info interaction principles 12
  13. 13. principle. make it direct. pattern. in-page action. pattern. inline editing. pattern. drag & drop. pattern. in-context tools. 13
  14. 14. make it direct Inline Editing Use inline forms where possible Use lightweight popups for ancillary information 14
  15. 15. make it direct In-context tools Same as context menus Only good for single objects Can actually slow you down 15
  16. 16. make it direct Use Drag & Drop where appropriate Not for simply setting an attribute Don’t construct artificial visual constructs 16
  17. 17. make it direct Use Drag & Drop where appropriate Not for simply setting an attribute Don’t construct artificial visual constructs Good for layout changes (Needs transitions) 17
  18. 18. make it direct Use Drag & Drop where appropriate Not for simply setting an attribute Don’t construct artificial visual constructs Good for layout changes (Needs transitions) Good for grabbing items 18
  19. 19. make it direct Drag and Drop Modules - Interesting Moments Grid ID: Bill Scott & Eric Miraglia Date: Currently on beta.my.yahoo.com Nov-0 Mouse Drag Over Drag Over Drag Over Drop Drop Hover Mouse Down Drag Initiated Valid Target Invalid Target Parent Container Accepted Rejected Cursor CSS Move cursor Move cursor CSS CSS Move cursor CSS Move cursor CSS Move cursor CSS Move cursor Normal Cursor Normal Cursor N Tool Tip Drag Object Modules animates into the area Modules animates back to M Full Opacity Reduced Opacity Reduced Opacity Reduced Opacity & Invalid Badge Reduced Opacity just below insertion bar the home area t Module comes to rest in new Module comes back to rest M area at full opacity r Modules slide up in a self-healing transition to close hole Drop Target I Insertion bar is removed as first Insertion bar is removed a No insertion bar, just a gap No insertion bar, just a gap Insertion bar showing where it will drop No insertion bar, just a gap No insertion bar, just a gap & original holeframe of animation as first frame of animation a Take care of the interesting moments 19
  20. 20. Drag and Drop Modules - Interesting Moments Grid ID: Bill Scott & Eric Miraglia Date: Drag Over Drag Over Drag Over Drop Initiated Valid Target Invalid Target Parent Container Accepted CSS Move cursor CSS Move cursor CSS Move cursor Normal Cursor N Modules animates into the area M Reduced Opacity Reduced Opacity & Invalid Badge Reduced Opacity just below insertion bar t Module comes to rest in new M area a Modules slide up in a self-healing transition to close hole Insertion bar is removed as first I t a gap Insertion bar showing where it will drop No insertion bar, just a gap No insertion bar, just a gap & original holeframe of animation a 20
  21. 21. 21
  22. 22. principle. keep a light footprint. pattern. rating an object. pattern. in page action. pattern. remembered collections. 22
  23. 23. keep a light footprint Remove the “pain points” Shorten the path Keep actions immediate and light Use hover, blur, focus; avoid heavy events 23
  24. 24. keep a light footprint Design for engagement Use invitations & feedback Treat it like an impusle aisle Do it in context 24
  25. 25. principle. cross borders reluctantly. pattern. on-demand scrolling. pattern. inline assistant. pattern. in-context expand. pattern. hover details. pattern. lightweight popup + lightbox. 25
  26. 26. cross borders reluctantly Rethink process flows It’s the user’s mental model, not the page model Every page jump is a mental speed bump 26
  27. 27. cross borders reluctantly Re-think paging Use scrolling for “owned” data Watch out for dual scroll bar issue Hybrid of paging & scrolling 27
  28. 28. cross borders relunctantly Use Overlays For more information Replace page transition When editing an individual, more complex item Be symmetrical Try not to disturb the page 28
  29. 29. 29
  30. 30. cross borders relunctantly Use in-context expands For editing part of a collection Need to see surrounding context For managing content modules 30
  31. 31. cross borders relunctantly Use real-estate creatively Use slideouts Use in-place zoom Remember the backstage 31
  32. 32. key principle Interaction prefer direct, lightweight, in-page interaction 32
  33. 33. Interaction Feedback Info feedback principles 33
  34. 34. principle. give live feedback. pattern. live suggest. pattern. periodic refresh. pattern. auto complete. pattern. busy indicator. pattern. live previews. 34
  35. 35. give live feedback Keep the goal in mind Design for relevancy Is it narrowing or distracting 35
  36. 36. give live feedback Keep the goal in mind Design for relevancy Is it narrowing or distracting? Use feedback to boost confidence Let the user iterate where possible 36
  37. 37. give live feedback Shape user perception Make time pass faster Make application feel more responsive 37
  38. 38. give live feedback Prevent errors before-hand Ounce of preventive design worth pound of error-handling Look before you leap Use live-previews 38
  39. 39. give live feedback Let the user iterate where possible Keep feedback focused Use laws of proximity in context feedback Respect feedback bandwidth Avoid side-noise (periphial distractions) 39
  40. 40. give live feedback Keep feedback focused Use laws of proximity in context feedback Respect feedback bandwidth Avoid side-noise (periphial distractions) Use nuance 40
  41. 41. principle. offer an invitation. pattern. hover invitation. pattern. drop invitation. pattern. tour invitation. pattern. tooltip invitation + hover invitation + cursor invitation. 41
  42. 42. offer an invitation Discoverability No easy answer Use the hover to reveal interaction Use the familar to teach the new Tours are generally a band-aid Can’t flag all interactions 42
  43. 43. offer an invitation Bridge the new with the old Hyperlinks as actions Reveal with hovers Drop down clues 43
  44. 44. offer an invitation Make it inviting Treat it as a welcome mat Use hover, cursor, tooltip, and page Keep the noise down 44
  45. 45. offer an invitation Keep actions out of it Let the user feel free to explore Don’t proselytize 45
  46. 46. principle. show transitions. pattern. fade transition + self-healing transition. pattern. zoom box. pattern. slide transition. pattern. active spotlight. 46
  47. 47. show transitions Speak to the brain Understanding attention processing 47
  48. 48. show transitions Speak to the brain Understanding attention processing Sending the wrong message 48
  49. 49. show transitions What you can communicate... Speed up time Slow down interaction Show state change Show relationships between objects Focus attention 49
  50. 50. show transitions Keep it sane “Cut it in-half ” rule of thumb Use “contrast knob” approach Don’t overuse 50
  51. 51. key principle Feedback Provide invitations beforehand, transitions during, and feedback after interaction 51
  52. 52. Interaction Feedback Info information principles 52
  53. 53. principle. think in objects. pattern. shareable object. 53
  54. 54. think in objects 54
  55. 55. principle. tie information to interactivity. pattern. multi-variate views. 55
  56. 56. tie information to interactivity Think “deeper interaction” Multi-variate data focus + context 56
  57. 57. tie information to interactivity Think “deeper interaction” Multi-variate data focus + context Interesting relationships 57
  58. 58. tie information to interactivity Think “deeper interaction” Multi-variate data focus + context Interesting relationships Just-in-time information 58
  59. 59. key principle Info Think in objects, tie information to interactivity 59
  60. 60. key principles for richness Prefer direct, lightweight, in-page interactions Interaction Provide invitations beforehand, Feedback transitions during and feedback after interaction Think in objects and Info tie information to interactivity 60
  61. 61. pattern library. developer.yahoo.com/ypatterns/ xian@yahoo-inc.com (Christian Crumlish) yahoo! blog. yuiblog.com my blog. looksgoodworkswell.com this prez. billwscott.com/share/presentations/2007/mix07/ 61

×