SlideShare una empresa de Scribd logo
1 de 66
Drupal 7 User Interface Patterns Bojhan Somers & Roy Scholten
 
Reusable solutions to recurring design problems ,[object Object]
What is a design  pattern? About design patterns ,[object Object],[object Object],[object Object],[object Object]
Why? ,[object Object],[object Object],[object Object]
The basics ,[object Object]
Common problems Form elements Choosing the right one for the job
Radio buttons Form elements
Radio buttons Form elements Don ’ t use them for Yes/No options
Radio buttons Form elements Don ’ t use them for Yes/No options. Use a checkbox instead
Checkbox Form elements
Checkbox Form elements
Select list Form elements
Select list Form elements Beware overloading it Make it clear that a selection is needed
List box Form elements Avoid whenever possible
Fieldsetitus ,[object Object]
Common problems Grouping elements ,[object Object],[object Object]
Fieldsets Grouping elements
Fieldsets Grouping elements ,[object Object],[object Object],[object Object],[object Object]
Vertical tabs Grouping elements
Vertical tabs Grouping elements ,[object Object],[object Object],[object Object],[object Object]
Machine name Grouping elements
Machine name Grouping elements ,[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object],[object Object],Grouping elements Use fieldsets for chuncking functionality, vertical tabs to hide a lot of functionality.  Avoid overloading patterns, or adding unnecessary groupings.
Operations ,[object Object]
Common problems Listings ,[object Object],[object Object],[object Object],[object Object]
Table Listings
Table Listings ,[object Object],[object Object],[object Object]
Table empty Listings
Table empty Listings ,[object Object],[object Object]
Drag & Drop Listings
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Listings Listing are mostly about adhering to standards (positioning columns, operations), avoiding unnecessary columns and empty table messages.
Navigation ,[object Object]
Common problems Information architecture ,[object Object],[object Object]
Information Architecture Information architecture
Information Architecture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Information architecture
Configuration sections ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Information architecture
Configuration sections ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Information architecture
Local actions Information architecture
Local actions Information architecture ,[object Object],[object Object]
Tabs Information architecture
Tabs Information architecture ,[object Object],[object Object],[object Object],[object Object]
Contextual links Information architecture
Contextual links Information architecture ,[object Object],[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Information architecture With all the new patterns, it mostly comes down to choosing the right labeling.
The fastest way to improve your interface is to improve the copy writing ,[object Object]
Common problems User interface text Too much of it Jargon & difficult words Not instilling confidence in the user Documentation instead of  guidance Explaining a broken user interface
 
 
Omit needless words User interface text
Omit needless words User interface text
Omit needless words User interface text
Omit needless words User interface text
Jargon: developer docs in the UI User  interface  text
[object Object],Jargon and other difficult words User interface text
No confidence in the user User interface text
No confidence in the user User interface text Note that… Please… Don’t… If enabled… Shouldn’t… You may now… Allow…
Explaining a broken UI User interface text
Explaining a broken UI User interface text
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],User interface text Focus on the task at hand. Use the simplest word possible. Omit needless words: cut 50%, then cut 50% again. Be nice.
Index ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Index
Pattern library ,[object Object]
 
 
 
What did you think? http://chicago2011.drupal.org/sessions  (“Take the Survey” link) @bojhan ,@royscholten Thanks!

Más contenido relacionado

Similar a Drupal 7 UI Patterns Guide

Techniques for Reviewing a User Interface
Techniques for Reviewing a User InterfaceTechniques for Reviewing a User Interface
Techniques for Reviewing a User InterfaceRhonda Bracey
 
Authoring and Publishing with XMetaL and DITA
Authoring and Publishing with XMetaL and DITAAuthoring and Publishing with XMetaL and DITA
Authoring and Publishing with XMetaL and DITAScott Abel
 
Designing well known websites with ADF Rich Faces
Designing well known websites with ADF Rich FacesDesigning well known websites with ADF Rich Faces
Designing well known websites with ADF Rich Facesmaikorocha
 
Interface Usability - Adding Schweppervescence
Interface Usability - Adding SchweppervescenceInterface Usability - Adding Schweppervescence
Interface Usability - Adding SchweppervescenceSSW
 
Lesson 3 Introduction to Human Computer Interaction.pptx
Lesson 3 Introduction to Human Computer Interaction.pptxLesson 3 Introduction to Human Computer Interaction.pptx
Lesson 3 Introduction to Human Computer Interaction.pptxEllenGracePorras
 
UX Edmonton - Pattern Libraries
UX Edmonton - Pattern LibrariesUX Edmonton - Pattern Libraries
UX Edmonton - Pattern LibrariesRobert Evans
 
Salesforce fundementals short
Salesforce fundementals shortSalesforce fundementals short
Salesforce fundementals shortKati_Fluido
 
Interface usability-adding-schweppervescence-ver3-8
Interface usability-adding-schweppervescence-ver3-8Interface usability-adding-schweppervescence-ver3-8
Interface usability-adding-schweppervescence-ver3-8SSW
 
Sweeping out the cobwebs: Content auditing for large websites
Sweeping out the cobwebs: Content auditing for large websitesSweeping out the cobwebs: Content auditing for large websites
Sweeping out the cobwebs: Content auditing for large websitesNexer Digital
 
Share point 2010-uiimprovements
Share point 2010-uiimprovementsShare point 2010-uiimprovements
Share point 2010-uiimprovementsLiquidHub
 
5-2 Introduction to Microsoft Excel Presentation.pdf
5-2 Introduction to Microsoft Excel Presentation.pdf5-2 Introduction to Microsoft Excel Presentation.pdf
5-2 Introduction to Microsoft Excel Presentation.pdfBlueCharm1
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThomas Daly
 

Similar a Drupal 7 UI Patterns Guide (20)

Techniques for Reviewing a User Interface
Techniques for Reviewing a User InterfaceTechniques for Reviewing a User Interface
Techniques for Reviewing a User Interface
 
Authoring and Publishing with XMetaL and DITA
Authoring and Publishing with XMetaL and DITAAuthoring and Publishing with XMetaL and DITA
Authoring and Publishing with XMetaL and DITA
 
Designing well known websites with ADF Rich Faces
Designing well known websites with ADF Rich FacesDesigning well known websites with ADF Rich Faces
Designing well known websites with ADF Rich Faces
 
Chap07
Chap07Chap07
Chap07
 
Interface Usability - Adding Schweppervescence
Interface Usability - Adding SchweppervescenceInterface Usability - Adding Schweppervescence
Interface Usability - Adding Schweppervescence
 
Lesson 3 Introduction to Human Computer Interaction.pptx
Lesson 3 Introduction to Human Computer Interaction.pptxLesson 3 Introduction to Human Computer Interaction.pptx
Lesson 3 Introduction to Human Computer Interaction.pptx
 
UX Edmonton - Pattern Libraries
UX Edmonton - Pattern LibrariesUX Edmonton - Pattern Libraries
UX Edmonton - Pattern Libraries
 
Ch11
Ch11Ch11
Ch11
 
Salesforce fundementals short
Salesforce fundementals shortSalesforce fundementals short
Salesforce fundementals short
 
Interface usability-adding-schweppervescence-ver3-8
Interface usability-adding-schweppervescence-ver3-8Interface usability-adding-schweppervescence-ver3-8
Interface usability-adding-schweppervescence-ver3-8
 
Sweeping out the cobwebs: Content auditing for large websites
Sweeping out the cobwebs: Content auditing for large websitesSweeping out the cobwebs: Content auditing for large websites
Sweeping out the cobwebs: Content auditing for large websites
 
Web Accessbility
Web AccessbilityWeb Accessbility
Web Accessbility
 
XMetaL DITA Workshop
XMetaL DITA WorkshopXMetaL DITA Workshop
XMetaL DITA Workshop
 
Microsoft Word ICT 4.pptx
Microsoft Word ICT 4.pptxMicrosoft Word ICT 4.pptx
Microsoft Word ICT 4.pptx
 
Share point 2010-uiimprovements
Share point 2010-uiimprovementsShare point 2010-uiimprovements
Share point 2010-uiimprovements
 
Microsoft excel
Microsoft excelMicrosoft excel
Microsoft excel
 
5-2 Introduction to Microsoft Excel Presentation.pdf
5-2 Introduction to Microsoft Excel Presentation.pdf5-2 Introduction to Microsoft Excel Presentation.pdf
5-2 Introduction to Microsoft Excel Presentation.pdf
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with Bootstrap
 
Lit 20170306
Lit 20170306Lit 20170306
Lit 20170306
 
Tips and tricks for web form usability
Tips and tricks for web form usabilityTips and tricks for web form usability
Tips and tricks for web form usability
 

Más de Bojhan

Evolving research to being a strategic partner
Evolving research to being a strategic partnerEvolving research to being a strategic partner
Evolving research to being a strategic partnerBojhan
 
BADCAMP 2016 - Designing Drupal 8
BADCAMP 2016 - Designing Drupal 8BADCAMP 2016 - Designing Drupal 8
BADCAMP 2016 - Designing Drupal 8Bojhan
 
Design in opensource
Design in opensourceDesign in opensource
Design in opensourceBojhan
 
User experience in the Drupal Universe
User experience in the Drupal UniverseUser experience in the Drupal Universe
User experience in the Drupal UniverseBojhan
 
Fronteers - Drupal 7 ux
Fronteers   - Drupal 7 uxFronteers   - Drupal 7 ux
Fronteers - Drupal 7 uxBojhan
 
Sustainable Design Process
Sustainable Design ProcessSustainable Design Process
Sustainable Design ProcessBojhan
 
Complexinterfaces
ComplexinterfacesComplexinterfaces
ComplexinterfacesBojhan
 
Drupal 6 to Drupal 7
Drupal 6 to Drupal 7Drupal 6 to Drupal 7
Drupal 6 to Drupal 7Bojhan
 
Creating Considerate Web Applications
Creating Considerate Web ApplicationsCreating Considerate Web Applications
Creating Considerate Web ApplicationsBojhan
 

Más de Bojhan (9)

Evolving research to being a strategic partner
Evolving research to being a strategic partnerEvolving research to being a strategic partner
Evolving research to being a strategic partner
 
BADCAMP 2016 - Designing Drupal 8
BADCAMP 2016 - Designing Drupal 8BADCAMP 2016 - Designing Drupal 8
BADCAMP 2016 - Designing Drupal 8
 
Design in opensource
Design in opensourceDesign in opensource
Design in opensource
 
User experience in the Drupal Universe
User experience in the Drupal UniverseUser experience in the Drupal Universe
User experience in the Drupal Universe
 
Fronteers - Drupal 7 ux
Fronteers   - Drupal 7 uxFronteers   - Drupal 7 ux
Fronteers - Drupal 7 ux
 
Sustainable Design Process
Sustainable Design ProcessSustainable Design Process
Sustainable Design Process
 
Complexinterfaces
ComplexinterfacesComplexinterfaces
Complexinterfaces
 
Drupal 6 to Drupal 7
Drupal 6 to Drupal 7Drupal 6 to Drupal 7
Drupal 6 to Drupal 7
 
Creating Considerate Web Applications
Creating Considerate Web ApplicationsCreating Considerate Web Applications
Creating Considerate Web Applications
 

Drupal 7 UI Patterns Guide

Notas del editor

  1. UX – Team leads Netherlands Heavily involved in UX of Drupal, UX Maintainers of Drupal 7
  2. Surgical teams that follow a basic cockpit-style checklist in the operating room, from confirming the patient's name to discussing expected blood loss, reduce the rate of deaths and complications by more than a 33%
  3. So, there’s real value in having a checklist. For Drupal admin ui that checklist would consist of design patterns
  4. What is a pattren? A design pattren is a general reusable solution    For commonly accuring problem.   such as moving a block around or creating a menu. A design pattren provides a definition of the user problem,   the solution we designed and explanations of why the solution was chosen. 
  5. Why would we need pattrens? We have over 2500+ modules, who all creatively create thier own UI.   So... when you have about 30 to 40 modules enabled, learning every single module it's interface is hard and very time consuming.  We would like to create a consistent user experience- when you are using all these modules
  6. Radio buttons allow users to select one option from among a set of mutually exclusive options. Recommendations: - use 3 or more   (2 radios can be reworked as a single checkbox most of the times)   - provide a default, make that one the first in the list.
  7. Recommendations:   - Unchecked is the default (opt in, not opt out)   - Meaning: make it safe to ignore the option   - Use only the label, if you need a description, rethink the feature.
  8. Recommendations:   - Unchecked is the default (opt in, not opt out)   - Meaning: make it safe to ignore the option   - Use only the label, if you need a description, rethink the feature.
  9. Select lists provide the same functionality as radio buttons - mutually exclusive options - but in a more compact way.   Beware, this is already a semi-advanced pattern. There will be people who won't recognize it as something that hides more options than directly visible
  10.   Recommendations: - Sensible first selection - Provide a sensible default or be clear about the action that is needed: "Choose one here…" - Beware, this is already a semi-advanced pattern. A lot of users won't recognize it as something that hides more options than directly visible   (So here it's fine…)
  11. List boxes provide similar approach as check boxes, but again in a more compact way. Main difference with select list of course is that his lets you choose multiple items recommendations: - try to avoid it.  Use sparingly. multiple select is not obvious at all, see if you can do it with checkboxes.
  12. Fieldset is the first pattern we apply in the case of longer forms. As of Drupal 7, they have changed visually. Why? Because we felt that fieldsets were often part of of the workflow.  So we made them more important visually. Generally fieldsets should be used  to hide certain functionality, when a user only requires a small subset of the functionality on that page at any given moment.   The most important aspect of fieldsets is the top label, which should sum up its contents.  Useage:  When there are a lot of form elements, which need to be grouped logically There are very different form elements on a page There are very similar form elements but with a distinctive difference (blocks administrator)
  13. Avoid Fieldsetitus ( Don't put a fieldset around the main (first) interaction on the page if there is one.) Keep them within one scroll Avoid nested fieldsets , it disorientates the user Position default-collapsed fieldsets below expanded
  14. So the problem that Vertical Tab tries to solve is the space and attention that fieldsets tend to take. The solution that was found is all about grouping functionally and putting those into a tab.  Progressive disclosure ( short description) give an information scent. Look if the introduction of vertical tabs is actually solving a problem not just creating less vertical space.   Recommendations Not the main interaction skippable - node form
  15. Skippable No pane that is too long. The vertical tabs are meant to be in view with the content of the page - to allow orentation Long descriptions No more then 9 Not less then 3 Don't use nested vertical tabs, it disorientates the user Don't use multiple vertical
  16. Some input fields have to create a second, 'sanitized' version of the value given by the user called a 'machine name'. Like removing spaces or replacing them with underscores. These are needed to have safe values for a database column name  In the interface this means double the work for users for something they are very likely not interested in knowing about. Solution:  Automatically create the machine name version from the human readable input. Show this version in a smaller size to the right of the normal input field. Provide an edit link to change the generated version of the machine name. Useage:  Whenever you are asking the user to fill something in which will soley be used for system purposes and has previously already been entered in a similair way. Database name generation
  17. Use this only for machine names
  18. Overloading the grouping pattern by adding too many elements to a single grouping Unnecessary groupings: fieldsets with 1 checkbox
  19. Tables, the most common listing in modules. There are a lot of fairly obvious things that tend to go wrong. Table: what goes where: ordering columns and operations,
  20. Order of columns (convention is: name, status, operations Too many columns, with duplicate or unnecessary information (reconsider, when you are adding a column) If possible, put the available operations in one row. If that’s not possible, put them right underneath each other
  21. Which means that any table which has no data in it, like in this case Secondary links menu. (MANUAL CODING)  Will have an message which says nothing has been added yet - and an action to add it.   Recommendations Its important to show the table headers, as this gives the user a scent what he is entering here. There are no [things] available/ yet.  Add link .
  22. Drag & Drop which was introduced in Drupal 6. Basicly alows you to drag things within a table. Recommendations - Handle should always be on the left -  Provide enough feedback about the saving-state
  23. Drupal 7 its information architecture is designed after a age-old model, that of the book shelf. Where every book is in a category and other books in that category, give you clues for where to find the book you are looking for. Hubs Content and people for listings related to that object, (e.g. Signup module for People) Structure is where very important functionality lives, the kind of modules and functionality you use day-in-day out when you are building or maintaining a Drupal website. Appearance (theme page – why is it here? Promote design) Configuration ( Whenever a module exposes configuration of any sort, its most likely to fit in this place. Its where functionality that you touch primarily during site-building or occasional configuration goes. ) The Reports section is all about listing of report pages such as “Recent log entries” and “Available updates” – it is common for modules that are aimed specifically at website analytics to expose their reports here.
  24. Recap : 5 Actual sections where you can put stuf Structure is for frequently accessed site building functionality (front end. its usable to limited extend, designed to stay small, optimized for around 7 items): Views Panels NOT Backup & Migrate Configuration Configuration is for infrequently accessed site building or configuration functionality goes (initial setup!!) Most of the modules that you build Rules (infrequently accessed site building) (don’t decide on the label, LABELS do not reflect reality…)
  25. Instead of one bit bucket, we choose to split this page up on a lot of smaller buckets to make it easier to scan.
  26. The functionality (modules) already placed in this category. The label assigned to the category. If new section ------------------------------------------------------------------------------------------ Could it fit a category created by a parent module (Field category by CCK)? Would the category house other modules (e.g. be the parent modules)? Are you sure your module won ’t be the only one in this category?
  27. You should use this when you have an action that is a very common task to perform on that page. Distinguishable - position - color - + sign
  28. You need consistent navigation for related pages, in which the navigation context is always visible. There is always a default tab. In core admin, this is often a listing (content, users, terms, aliases etc.). Name this one 'List'.
  29. Avoid long tab labels p the label short, avoid more then one word ? Don't group similar tabs together (make sure tabs are related yet also *distinct*?) Avoid creating more then 4 tabs. If you find yourself making more, look for broader groupings and
  30. Problem:  When you want to change a setting of an object in your site and the way to that settings page gets so long that you forget what you came to do in the first place. You lose context because the setting is located so deep in the administration section, so far removed from the object. Solution:  Provide a small drop-down that displays on hovering an object. The options in the drop-down offer direct links to a few tasks for this object. The tasks are exposed *in context* of the object itself. Objects Objects like blocks, nodes, menu's that have a few frequently used tasks (edit, add, configure) Other objects in the front facing part of Drupal
  31. When those causes add up we see an overarching problem emerge: we have too much of it.
  32. When those causes add up we see an overarching problem emerge: we have too much of it.
  33. You can win back a lot of user interface real estate by having a critical look at your form labels and descriptions. Don’t have descriptions because you can
  34. If 2 or 3 extra words for the label make the desc. Unnecessary, then do that
  35. Maybe somebody can open a core issue for this one during this session… Found this beauty in the theme settings
  36. This is really all that is being offered here.
  37. Don’t document edge cases in the UI
  38. Obviously not fixable by rewriting the tekst…