Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Designing better user interfaces

Efccfc25e943724e0942da0a306a8ecf?s=47 wolfr
February 17, 2012

Designing better user interfaces

Designing better user interfaces sets out to teach interface design by talking through concrete examples: what works, what doesn’t work. A good interface consists of a thousand details done right. This presentation is all about those details.



February 17, 2012


  1. Designing better user interfaces Fronteers, Rotterdam, February 15th, 2012

  2. I would like to give some context to this presentation.

    These slides are from a 35 minute presentation called Designing better user interfaces.
  3. Designing better user interfaces sets out to teach interface design

    by talking through concrete examples: what works, what doesn’t work. A good interface consists of a thousand details done right. This presentation is all about those details.
  4. Some slides only contain a few words or images so

    the slides don’t distract from what is being said. This “web” version contains sticky notes (like this one) that summarize what I talked about when displaying the slide during the original talk.
  5. Introduction User interface design examples Q&A: throughout 10’ 25’ -

    1 2 3
  6. Introduction

  7. My name is Johan Wolf or @wolfr_ on the internet

  8. I read stuff all day

  9. I like to play video games

  10. I love to write

  11. I run a little freelance design studio Wolf’s Little Store

  12. None
  13. So this is my company’s website, ( http:// wolfslittlestore.be/ )

    Under work you can see what I do: interface design, web design, branding and identity, HTML & CSS, photography and design for mobile devices. Companies evolve and this is actually a little bit outdated - I specifically want to focus more on the interface design part. The next website will reflect this :)
  14. Most of all I love to design

  15. The kind of design I do is interface design...

  16. It’s not about the “WOW!”

  17. I don’t really care too much for interactive presentations or

    branded games. While they have their right to exist as promotional material, it’s not the kind of work I want to spend my life doing.
  18. It’s about creating a great product

  19. It’s about creating a great product Take something that blows

    and make it better. That’s probably what the people at Dyson were thinking when they applied their vacuum knowledge® to hand dryers. Product of the year for me.
  20. Avoiding this...

  21. You’ve got the power

  22. You’ve got the power I think everyone has the power

    to make a good product because it’s more about knowledge and applying that knowledge instead of having strong visual skills.
  23. A thousand details coming together A good user interface =

  24. A good interface is a thousand details coming together. The

    difference between a good interface and a great one is in all those details: the spelling of a word, the spacing between items, the colors used. There’s — literally — thousands of details that are important. Today I want to talk about a few of these details.
  25. Good defaults

  26. This is a form I get to deal with every

    few days, it's the form to transfer money to other people from my bank.
  27. When you get to the part where you have to

    select a country, you get a country list with hundreds of options.
  28. Why not put Belgium as a default? Almost all transfers

    happen within Belgium. Another idea would be to list the most popular countries (Belgium, France, Germany, Holland) in an <optgroup> at the top.
  29. It might seem like a small thing, but it's one

    of those thousand details. Who sends money to the South Pole?!
  30. Custom select boxes

  31. Talking about select boxes... anyone heard if this thing called

  32. Creating custom dropdowns is usually a tedious process that requires

    a ton of extra setup time. Oftentimes lacking conveniences that native dropdowns have such as keyboard navigation. DropKick removes the tedium and lets you focus on making s@#t look good.” “
  33. • Advance the web • Get rid of ugly dropdowns

    • Make something to fix a problem = a beautiful thing Good intentions: To me this is a project done out of love, and the intentions are great. Without people like the author of Dropkick we wouldn’t be where we are today with HTML and CSS.
  34. Unfortunately Only 80% done Unfortunately these kinds of projects are

    only 80% done to me.
  35. Custom Native For example, the script doesn’t trigger the native

    select behavior on iOS.
  36. • Close w/ escape key on desktop: does not work

    with Dropkick. • Type first letter to select option: does not work with Dropkick.
  37. A power user definitely wants to be able to type

    the first letter of a country: doesn’t work with Dropkick.
  38. In general you want your <option>s to have sensible names,

    and not try to hack a system together when there is <optgroup>
  39. By customizing your dropdowns you just: Provided a worse experience

    on mobile Provided a worse desktop experience for power users Worsened the site load time & rendering time Made your dropdown fit within the design I understand why this guy made it, you want your form elements to look consistent, but it’s better to have ugly <select>s that work as expected than custom selects.
  40. If you do nothing, the end result is better.

  41. People always forget things: Remember not being able to scroll

    in Flash sites? Yeah. Remember not being able to use keyboard nav because somebody decided to implement custom radio buttons and checkboxes. Yeah. Accessibility and screenreaders: I’m not even going to go there. It gets BAD. Remember not being able to save an image from a Flash site? Yeah. Custom is hard.
  42. I often hit this iceberg when I stray from native

    controls. For example, Ajax interactions require more polish than basic web pages. Custom mobile menus require more polish than the built-in version. If the team doesn’t have the time to polish custom UI, it’s often better to stick to the boring native controls that work. Braden Kowitz, Designer at Google
  43. Custom is hard, and to me custom is really saying

    that you have more time to think about the behavior of a select box than Apple’s interaction design team. And that you have the dev power to fix it. On every platform out there. So sometimes you just have to be pragmatic if you’re building a product.
  44. But if nobody took any UI risk there would not

    be any innovation out there, so it depends on what you’re doing. This screenshot is from Al Gore’s Our Choice, in my opinion the best e-book there is on iPad, interaction design-wise that is.
  45. This was done by Mike Matas, Bret Victor and their

    team. Two names you should definitely remember if you’re into interface design.
  46. None
  47. The Tapbots guys are famous for their custom interfaces. Their

    business is practically based on the fact that their apps are 100% custom.
  48. • Don’t use custom select boxes • Don’t try to

    style them using CSS either • If you must go custom, realize the consequences and be humble • Use a default value that makes sense • Make sure people can use the keyboard to get to the first letter Recommendations
  49. Map embedding

  50. My friend asks me to get a coffee... I don’t

    know the place he suggests so I look it up. This site provides a Google maps embed, which is helpful. Now to get directions, I want to get the full Google maps website. Let’s walk through the steps on how to do this.
  51. I select the text... and copy it.

  52. I go to Google Maps Belgium...

  53. Search for the address there...

  54. Made a mistake there...

  55. Let’s fix the input.

  56. Getting somewhere...

  57. Found!

  58. All of this could be much easier.

  59. If the web developer had just left the code in

    there that supplies a link to the bigger version, I could have skipped at least 5 steps of the process.
  60. <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.be/maps? f=d&amp;source=s_d&amp;saddr=Lange+Leemstraat +388,+Antwerpen&amp;daddr=Oever

    +18+2000+Antwerpen&amp;hl=nl&amp;geocode=FUpMDQMdy5BDACnPp 9V3F_fDRzGKem7xhtvLfQ %3BFRuFDQMd3RRDACn3LZoO9PbDRzH6wBiCH7Hl1A&amp;aq=0&amp;sll =51.217691,4.396253&amp;sspn=0.008817,0.016222&amp;vpsrc=0 &amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;z=14&amp;output=embed" ></iframe><br /><small><a href="http://maps.google.be/ maps?f=d&amp;source=embed&amp;saddr=Lange+Leemstraat +388,+Antwerpen&amp;daddr=Oever +18+2000+Antwerpen&amp;hl=nl&amp;geocode=FUpMDQMdy5BDACnPp 9V3F_fDRzGKem7xhtvLfQ %3BFRuFDQMd3RRDACn3LZoO9PbDRzH6wBiCH7Hl1A&amp;aq=0&amp;sll =51.217691,4.396253&amp;sspn=0.008817,0.016222&amp;vpsrc=0 &amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;z=14" style="color:#0000FF;text-align:left">Grotere kaart weergeven</a></small> In a sense Google made a bad choice here.
  61. scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.be/maps? f=d&amp;source=s_d&amp;saddr=Lange+Leemstraat +388,+Antwerpen&amp;daddr=Oever +18+2000+Antwerpen&amp;hl=nl&amp;geocode=FUpMDQMdy5BDACnPp 9V3F_fDRzGKem7xhtvLfQ %3BFRuFDQMd3RRDACn3LZoO9PbDRzH6wBiCH7Hl1A&amp;aq=0&amp;sll =51.217691,4.396253&amp;sspn=0.008817,0.016222&amp;vpsrc=0

    &amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;z=14&amp;output=embed" ></iframe><br /><small><a href="http://maps.google.be/ maps?f=d&amp;source=embed&amp;saddr=Lange+Leemstraat +388,+Antwerpen&amp;daddr=Oever +18+2000+Antwerpen&amp;hl=nl&amp;geocode=FUpMDQMdy5BDACnPp 9V3F_fDRzGKem7xhtvLfQ %3BFRuFDQMd3RRDACn3LZoO9PbDRzH6wBiCH7Hl1A&amp;aq=0&amp;sll =51.217691,4.396253&amp;sspn=0.008817,0.016222&amp;vpsrc=0 &amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;z=14" style="color:#0000FF;text-align:left">Grotere kaart weergeven</a></small> We don’t like inline styles. We don’t like the <small> element, it’s not semantic. Most web developers will just delete this part.
  62. Worth noting is that this problem is extra frustrating on

    a mobile device where you don’t really have a keyboard to quickly open a new tab and copy/paste text, every action is slower.
  63. Map embeds: A simple solution

  64. Text The map above is just an image that links

    to google maps. There’s a link to the full map below so people don’t have to copy/paste address info into Google Maps. Alternatively I could serve up the image with the Google Maps static maps API.
  65. If I hit the link on mobile I’m taken directly

    to the Maps application.
  66. • Better mobile performance: you only have to load an

    image, not a full map • Can’t get into the Maps scrollbar of death™ • Direct link to Google maps application on iOS & Android Advantages
  67. So what is the Maps scrollbar of death™ exactly? When

    scrolling on your mobile phone or tablet it all works fine, but as soon as your finger hits a google maps you start repositioning the map inside its container. http://joggink.com/2012/01/responsive- google-maps/
  68. • Don’t use Google maps embeds for displaying single address

    locations • Of course, using maps to display map data is warranted (!) • If you must, always add a link to Google maps underneath a Google embed • Better, use the Google Static maps API instead of an embed if the image is for illustrative purposes, and link that image to Google maps Recommendations
  69. Outlines

  70. The next example is very much a detail but something

    that tells me the UI designer really knew what he was doing. Look at the white arrow [to the left of the word Sponsored]
  71. Notice how when the shown image has a white background,

    the arrow still shows? That’s good design.
  72. Some guy did a study on readability of labels in

    Google Maps.
  73. If you zoom in you see that every label has

    a white outline/stroke.
  74. The white outlines of Google's city labels are thicker, and

    you can't see maps' background details (roads, rivers, etc.) behind them. (...)” http://googlesystem.blogspot.com/2010/12/why-google-maps-labels-look-better.html “ He compared Yahoo!, Bing and Google maps and found Google maps to the most legible. This had to with the aforementioned outlines but also with better clustering of information. Unfortunately the article is offline.
  75. Here’s an example of my own, this is a little

    part of a site I’m building about World War 1, unfortunately I can’t show the full design since it’s still in progress. Take a look at the “video” icon and you’ll see it uses the same outlining technique to make the icon visible on any background.
  76. If I had used a standard white icon it wouldn’t

    have been very visible on white.
  77. Image galleries

  78. Lightboxes. I hate ‘em.

  79. This is a site of a friend of mine, he

    runs a cool coworking space in Antwerp. I take all my examples out of the real world so I’ll have to buy him a beer next time and apologize that I used his site as a “bad” example.
  80. If you click an image you get this “lightbox”. This

    one by Lokesh Dakar is used on many websites. It’s not a good implementation: to start with, it doesn’t really take any advantage of your screen size: if you have a giant screen the photo will still be small.
  81. Sucks on mobile... I have to swipe and drag to

    find the controls.
  82. The problem is not really about the lightbox “interaction” but

    about the quality of the implementation.
  83. I don’t want to diss the authors of these plugins,

    the web runs on open source and it’s a wonderful thing. Lightbox2 was written in a time before responsive webdesign and back in the day it was an adequate solution. These days, if you want to build something great, you’re going to have to do better than throw in a lightbox script from 5 years ago and call it done.
  84. • Animations between items: slow, adds 1-1.5 seconds to viewing

    each photo • Not very usable on mobile devices • No appropriate use of space: image doesn’t fill the screen Lightbox2:
  85. A good image gallery implementation:

  86. Niko Caignie is an Antwerp based photographer. This is his

    portfolio album on Google+. I love how the photos take up the available space compared to the tiny thumbnails in most galleries.
  87. Here’s the same shot with a mazimized browser, notice we

    see more images, and they become bigger.
  88. This is a detail view, once again, super nice use

    of space.
  89. This has nothing to do with the presentation but because

    Niko was kind enough to let me use his photography as an example here’s a link to his google+ portfolio: https:// plus.google.com/photos/ 105216293260831528847/ albums/5625394812057179681 (this way you can also see for yourself why it’s a good implementation!)
  90. • No animations between images • Clever progressive loading •

    Keyboard navigation • Make photos as big as possible (appropriate use of space) Recommendations
  91. Video

  92. So let’s do something fun and let’s go watch a

    trailer at the Apple trailer site.
  93. We have a 27” screen so that is cool, we

    have megahighspeed internet, so let’s watch this baby in 720p.
  94. Say what? The video opens... in a box? Look at

    all this screen space NOT used for video.
  95. Mysteriously enough if I open up the video in Apple’s

    Safari there is a full screen button.
  96. • Chrome doesn’t show the fullscreen button, Safari does so

    it’s perfectly possible in Webkit • It’s perfectly possible in all desktop browsing using Flash, this is probably a political issue Apple should know better
  97. • Chrome doesn’t show the fullscreen button, Safari does so

    it’s perfectly possible in Webkit • It’s perfectly possible in all desktop browsing using Flash, this is probably a political issue Apple should know better The user experience suffers
  98. YouTube. Always has the option to go fullscreen. Good responsive

    design: bigger screen, bigger video. The good
  99. Clear iconography

  100. What does this icon mean? A paper plane? Apparently it

    means “send”. There is not a lot of space on these screens so it’s natural to try and display functionality using only an icon but it surely can get confusing.
  101. Apple is guilty of the same design mistake... you could

    argue it’s a thing you have to learn, that the flyer means send.
  102. The iPhone uses a send label, this is pretty straightforward

    and for me the way to go. Language is one of the clearest interfaces.
  103. Same icons Anyone used the new Facebook app for iPhone?

    There’s two icons, they look the same...
  104. ...lead to 2 different screens ...but they lead to 2

    entirely different screens. Not much to say except: be consistent. Mistakes happen to the best of us — the Facebook app is hands down one of the best examples of great interface design.
  105. Relationship heading/paragraph

  106. A standard way to go about spacing would be even:

    h1, h2, h3, h4, p { padding-bottom: 12px; }
  107. Consider that headings should be closer to the paragraphs they’re

    related to: h1, h2, h3, h4 { padding-top: 12px; padding-bottom: 6px; } p { padding-bottom: 12px; }
  108. Difference between left and right...very subtle but leads to better

    rhythm and a clearer relationship between a heading and the content following that heading.
  109. A thousand details coming together A good user interface =

  110. Care.

  111. To reach an epic quality level, you NEED to care

    about all of these details and more. A good interface designer is a pragmatic perfectionist. It’s not enough to just focus on the visual part, you need to focus on EVERYTHING.
  112. Craftsmanship.

  113. In the old days, when someone started to learn a

    craft, they would start off as an apprentice and go to different masters to educate themselves in their craft. Ideally every master was a bit different so the apprentice could learn from varied points of view and form his own. Eventually the apprentice would become a master of their domain. Applying this to modern UI design I believe a good UI designer should dip their toes in other jobs and fields like copywriting, backend development, photography, print design, business, marketing, front-end development and so much more.
  114. Thank you! Follow me: @wolfr_ on Twitter E-mail me: mail@wolfslittlestore.be

    Read the blog: wolfslittlestore.be/journal
  115. Follow me on Twitter Here’s the link: http://twitter.com/wolfr_

  116. Check out my previous presentation Design for Developers. You can

    view it here: http:// www.slideshare.net/Wolfr/design-for- developersonlineversionlong If you liked this presentation
  117. I’m always looking for people to work with. One of

    my goals is to become the go-to company when talking about UI design. Obviously I can’t do this alone. If you live in or around Antwerp, Get in touch: mail@wolfslittlestore.be Are you a talented UI designer?
  118. Subscribe to the blog: Here’s the link: http://wolfslittlestore.be/journal/ Through RSS:

  119. Resources Books you should read Defensive Design for the Web:

    How to improve error messages, help, forms, and other crisis points by Jason Fried & Matthew Linderman Designing Web Usability by Jakob Nielsen Don’t make me think! by Steve Krug Designing the obvious by Robert Hoekman Jr. Designing for interaction by Dan Saffer Getting Real by 37signals http:// gettingreal.37signals.com/ Web content mentioned in this talk http://marketingland.com/review-galaxy-nexus-android-4-phone-1409 http://joggink.com/2012/01/responsive-google-maps/ Web content around the subject http://www.designstaff.org/articles/design-details-2011-11-29.html http://www.andybudd.com/archives/2011/12/why_designers_are_holding_themselves_bac/ http://tapbots.com/blog/design/designing-convertbot http://littlebigdetails.com/
  120. Hire me. If you like what you’re seeing, I can

    apply my knowledge to your application too, or give this presentation for your company. Get in touch: mail@wolfslittlestore.be