Upload
johan-ronsse
View
228.183
Download
3
Embed Size (px)
Citation preview
Design for developers
1
2
I would like to give some context to this presentation. These slides are from a 2 hour presentation called Design for Developers.
3
The goal of Design for Developers is to teach interface design as a set of rules: there are some good default values for a lot of design decisions that you should remember, there is a “scientific” way of approaching things like alignment, even though many designers will tell you it’s something you should “feel”.
4
Some slides only contain a few words or images so the slides don’t distract from what is being said. Since you are probably viewing this online, I reworked the entire presentation and added these sticky notes to add what I talked about when displaying the slide. They look like this.
Introduction & design theoryPractical tips and tricksPractical tips and tricks, cont.Q&A: throughout
----
1234
5
Introduction
6
My name is JohanWolf or @wolfr_ on the internet
7
I run a little freelance design studio
Wolf’s Little Store8
I read stuff all day
9
I like to play video games
10
I love to write
11
12
13
So this is my company’s website, ( http://wolfslittlestore.be/ ) as you can see it’s mostly about interface design. Under work you can see I do a lot of stuff; webdesign, logos, HTML & CSS, design for iOS. But all of it comes down to designing interfaces.
14
The kind of design I do is interface design...
It’s not about the “WOW!”
15
16
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.
It’s about creating a great product
17
It’s about creating a great product
18
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.
Avoiding this...
19
You’ve got the power
20
You’ve got the power
21
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. I believe we can extract a lot of rules from common design knowledge. That’s what I’m gong to do in this talk.
Theory
22
Let’s start with some theory on what makes a good interface.
What is a good interface?
23
It depends.
24
Examples of desirable qualities
Fast Easy to use
AccessibleFun
25
When thinking about interfaces, and what you’re going to make, you make a list of desirable qualities we want our interface to have.
Fast (app performance)
Fast (time to task completion)
Fast
26
Maybe we want our interface to be fast — in terms of performance — or we want it to be fast in terms of task completion.
Easy to use Productivity
27
If we make our application easy to use, that might just hurt productivity (e.g. no advanced mode, lack of shortcuts, wizards for everything). Even though I like to design interfaces for the
“general public” I have a special love for advanced modes and ways to get your task done ASAP even if it requires some training/learning.
Accessible
ConsiderationsBuild accessible apps because it’s the right thing to do (morally)
Does anyone in the intended audience have a disability?e.g. cockpit software
for F16 pilotsDo we have the dev
resources to focus on accessibility?
28
29
Let’s take this interface for example. I haven’t ever used it to be honest, but this us Lotus 123, the competitor to Excel back in the days of MS DOS.
Not easy to use/learn
Fast (performance)
Inaccessible
Fast task completion 30
Not easy to use/learn
Fast (performance)
Inaccessible
Fast task completion 31
If we list our desirable qualities and compare them with the program we have here, we might come to the conclusion that it’s not easy to learn, not accessible (to persons with sight or hearing disability for example; there is no VoiceOver like on Mac, there is no multitasking to run something like JAWS in the background.
On the positive side, it’s probably blazing fast on current computers, and since it’s all keyboard based I can only guess the time to task completion is also pretty good.
Example: POS system
32
Let’s expand on this example with another example, a Point of Sale system. A POS system is used at a register, when you go to a shop and buy something basically.
Would you want this...
Fast?Fun Easy to use33
...this...
34
Or this?
35
36
The opposition between making an application easy to use vs. making it so you can complete your task quickly becomes clear here... since the employees in our imaginary shop all get trained do we really want to use the slick “Easy to use” system when maybe we want the system that enables us to do our task as fast as possible?
37
There’s a Belgian supermarket, Colruyt, that tests everything, optimizes everything, and I think they thought long and hard about their register/cashier system too. It’s not very modern, but employees know how to work the system in an efficient manner because they are trained to do so and the software enables them to be fast.
38
Would you rather bit F5 + F8 to serve a customer or go through a wizard with next/previous options?
Business...
39
The appropriate interface helps with the business side of things of course. Wikipedia says Colruyt has a cool €475 million profit in book year 2009-2010.
(I hate shopping there)
40
Unfortunately the experience of shopping there is not really what I want, I’d rather pay a bit more and don’t feel like I’m shopping around in a prison. But that might just be me.
41
Why did I put this theory part in the presentation? I want everyone to think about what they’re building and for who they’re building it.
Even though kids are growing up with computers these days, the current generation of software is becoming flat and less usable to expert users. While I <3 Apple software a lot of what they do feels dumbed down. I’m very frustrated making this 150+ slides presentation in Keynote because there is no automation whatsoever. I can’t align things automatically, I have to copy paste this note thing from slide to slide manually.
Some assumptions
42
Goals• You want your designs to look passable
without the intervention of a dedicated (expensive) designer
• You want to be able to create web applications on your own, or with a team of developers only
• With a little time and some tricks this is not hard to do, especially for web applications
43
• You use your IDE and never ever open Photoshop or Illustrator unless you have to
• You write scripts to solve problems• You love your terminal and database schemes,
not so much your ruler and color palettes (if you have them)
You’re a developer so:
44
Web developer,Windows software developer,Java, Ruby or iOS fanatic:
Good interface =same principles
45
Web developers have a bit of an edge:
CSS46
Web developers have a bit of an edge:
CSSShareable design
47
48
Who in the audience has ever tried to learn Photoshop?It’s big and vast... there’s many tools and palettes and it’s easy to get lost.
I took me years to become productive in Photoshop and I understand why people are advocating designing in the browser.
49
Text
I feel at home here, I know what to do, I have the shortcuts in my fingers, I know what all the tools and palettes do.
50
You don’t have to learn Photoshop (or any graphics program for that matter) to deliver a proper software design. As I said before it’s a matter of knowledge and applying this knowledge. As a web developer you have an extra edge in a sense that you can apply design frameworks easily thanks to the power of HTML (structure) and CSS (presentation) whereas sharing the design of one Java app with another is not convenient, if even possible.
Practical tips & tricks
51
Now... on to the real meat of the presentation. The practical tips and tricks. What you’ve been waiting for I guess!
TypographyAlignmentLight & shadow
---
ABC
Practical tips & tricks (1)
52
I divided this up in sections, first up are typography, alignment and light and shadow. These are the most important parts.
Typography
53
Readability
• Generally you want a readable typeface, in interface design you want a very readable typeface that works in small sizes
• This leaves you with very little choice on the web:
Verdana
Lucida Grande(Fallback: Lucida Sans Unicode)
The quick brown fox jumps over the lazy dog
55
The quick brown fox jumps over the lazy dog
Droid Sans
Segoe UI
56
The quick brown fox jumps over the lazy dog
Droid Sans comes with Android and is also optimized for small size display; Segoe UI is the font used in Windows Phone 7 and parts of the new Windows I think. Solid choice if you’re doing Microsoft software.
Why these fonts?Specifically designed for UI: compare Verdana to Times: which will be more legible at small sizes?
Verdana at 36px Times at 36px
If you’re interested in typography at all, and you want to know more why this is like it is, try http://typophile.com/node/12028
Why these fonts?Hinted at low sizes
The two fonts at the bottom will not be named... hint: one is universally hated by designers and the other caused a stir when it was used as the subtitle for James Cameron’s Avatar
Gill Sans
Palatino Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Impact
59
Some fonts have their roots in print, they are wonderful if used for the right purposes. Gill Sans is a great typeface with British roots, Palatino could be perfect for a book, and Impact, wel...
Impact60
... probably good if you want to make an IMPACT.
Verdana
Gill Sans
1 i I L1 i I L
Why some fonts are better for interfaces than others
61
Here’s the same character string in Verdana and Gill Sans.
As you can Excel set in Gill Sans might give some problems: what if you need cell I1, you would read it as II
zero versus “o”: difference can be critical
62
A crossed zero can make the difference between a font that works for financial applications and one that doesn’t. Maybe you want to display a serial number that has both O and 0 (zero) in it. This i from a blog post about Axel by my favorite typographer, Erik Spiekermann. http://www.fontshop.be/details.php?entry=386 . It’s a very economical typeface perfect for spreadsheets.
Font sizes
63
Relative readability
64
This is a pretty well known picture among designers, it displays the relative readability between a book and a blog post on a screen set in 16px. Basically we all use type sizes that are way too low. 16px works for reading. Why not use this browser default instead of making the text tiny?
Font sizes
• When in doubt, make it larger, especially if it’s for reading (any long form content in paragraph form)
• All texts on the web that are meant to be read should be at least 14px big!
65
Font sizes
• You can go smaller in interface depending on your font, e.g. if you use Lucida Grande or Verdana you could go for 11, 12 or 13px.
66
What is wrong with this picture?
67
Reading length• There's a reason newspapers are set in
columns, that books are not wider than they are... practical printing reasons, but also a scientific reason: it's harder to read a text when lines are too long
• Rule of thumb: paragraphs should never be longer than 60 characters, so limit them in width
68
Why is my type so boring?
69
Font services• Use Typekit ($50/yr for low traffic sites)
• Use Webtype if you have money ($40/yr/typeface)
• There are very little fonts in Google web fonts currently that are worth using
• Use with caution (performance, quality of fonts)
• Good design is not free in general
70
71
All efforts to optimize for performance on my own Wolf’s Little Store website were kind of cancelled out by using 2 fonts from an external web provider. If you care about performance at all, don’t use @font-face.
Line height makes all the difference:
1.5 line height 1.0 line height72
Line height
• I keep returning to these same values:
• Use a line-height of 1.1 for headings
• Use a line-height of 1.5 for paragraphs
73
Alignment
74
How to align things?!
75
How to align things?!
76
Much has been written about the dark art of aligning things: there’s whole books about aligning and grid systems, mostly dealing with paper sizes and proportions. I want to show you 3 things that might make you better at aligning without having to overthink it.
Alignment
• Law of proximity (gestalt)
• Screen interface design: work with the number 6. 6, 12, 18, 36... (example)
• Grid design example
• Use space appropriately
77
Law of proximity
78
The law of proximity – Spatial or temporal proximity of elements may induce the mind to perceive a collective or totality.
Wikipedia
The law of proximity
79
The law of proximity
80
The law of proximity
81
As you can see, the left circles form a group, on the right side there’s 3 groups, all of this is done by spacing between elements only. Why is this so important and what does it have to do with UI design?
The law of proximity
82
The law of proximity says that elements that are closer together will be perceived as a group. Since the spacing is even between every comment here it’s hard to find out who wrote which comment.
The law of proximity
83
Compare this to a design where there is clear spacing between the comments. The author is on top (as per convention) and the avatar reinforces who is talking.
I keep returning to the number
684
85
Base font size:
12Base line height (x1.5)
= 18pxReading font size:
16Base line height (x1.5)
= 24px
3x6
4x6
2x6
86
Major elements spacing
6px as our “unit”
6 unitsRegular spacing 4 unitsMinor spacing 2 units
87
Example
This part of the presentation is about how I keep returning to the number 6 for aligning and spacing UI elements. It makes sense: all the numbers we use for our defaults (1.5 line height, 16px font size for reading, etc.) form multiples of 6 when used in simple calculations: 12, 18, 24, 36, ...
88
Start off with a grid, I used an online grid calculator (here: http://www.29digital.net/grid/ ) and defined my column and gutter widths so are multiples of 6.
89
Here’s that same grid visualized. I used Photoshop but you might as well do it in HTML/CSS if you’re used to that.
90
As you can see, if we think of 6 as our unit, there are 4 units between columns, and each column is 16 units wide.
91
I add some elements to the interface...
92
...a header area, a content area...
93
The height of content area if flexible, for the header I used a multiple of 6 again.
94
For the spacing between the areas I used a multiple of 6 again. It’s easy, just keep returning to the number 6.
95
I add some text, this is from Moby Dick (book in the public domain). Now, it still looks like **** so let’s do something about that.
96
I set the font to 16px since this is my default for reading, then add spacing between the paragraphs.
97
I add a heading which has a font size of 24px, once again tying into the number 6
98
Look, the spacing between elements is not arbitrary, it’s all a multiple of 6, and the reason I made my paragraph 4 columns wide ties into the line length reasoning as discussed earlier. It’s a ruleset that makes sense.
99
I move the text to the middle since I want to add a navigation etc. to the website.
100
I know how my grid works so I don’t need to display it all the time now. I go to my standard colors (more on that later).
101
I keep on designing... again keeping 6 in the back of my head. For example, the padding in the comments is 12px, and the line height of the navigation items is 24px.
102
We have a design that looks passable without much designing really: we applied some guidelines, that’s it.
I’m not saying it looks like the bomb, but we have a solid base to work upon here.
103
I use this strategy all the time, look at my site, all the spacing is based on 6...
104
This might be a bit more clear.
105
Keep returning to the number
6
106
Use space appropriately
Use space appropriately
107
This is the Netflix iPad app, I’m all for proper whitespace, but this is just not an appropriate design for the iPad. You have all this space, why not use it e.g. to display the film posters too?
It looks like they just stretched out the existing iPhone app. This is a common problem with most Android tablet software these days.
108
Use space appropriately
Compare with something like the iPhoto design for iPad that makes appropriate use of the space. Big fan of the designer www.mikematas.com
Light & shadow
109
Use shadows and gradients as a tool, not
as decoration
Shadows and gradients rule #1:
110
Think of real life
111
112
Take a second to look at this photo and look at the reflections, the knobs, the shadows being cast.
In real life...• Shadows are never pure black (radiosity)
• Objects higher than other objects cast a shadow on the lower object
• Some surfaces are reflective and some are not
• When we press a button it lowers
• Light is cast from a direction
113
Shadows are never pure black
114
The first box looks kinda like what you would see in a common “developer design”. Try to soften it a bit more by using a greyish tint (middle), I like to make my shadows a bit blueish grey (third box). It’s kinda hard to see but all the little details together often make a design great instead of just good.
Drop Shadows will ruin your design if you don't do it right. Things should be right up against their surface which means using a 1-3px Drop Shadow size. And 0-3px distance. This isn't WordArt.
Mike Rundle, flyosity.com
115
Window shadow
116
The window shadow on Mac OSX is a bit overdone but it does make a good example that you should think of objects on top (windows, modals) to be physically on top and thus cast a shadow. This helps with the metaphor and helps people understand what they’re seeing.
Recipe for a good button!
Light to dark gradient
Clear verb Clear lines
117
Try to think of light as coming from a certain direction. The most natural direction is from the top (e.g. the sun). Thus, a light coming in from the top would make the top part of a button lighter, and the bottom part darker. This is why your gradient runs from light to dark, not just because you thought it looks nice.
Recipe for a good button!
Distinctive active state
Inner shadows work for “pressed” look
118
It’s not realistic to change the color of a button when you press it but it does help to reinforce which button was clicked.
In real life the button would probably lower a bit thus creating an inner shadow.
Don’t just flip the gradient direction!
Light direction
Light direction
119
Just flipping the gradient direction is the equivalent of the environment light changing direction when you hover over/click a button, this makes zero sense.
It’s also way too subtle.
Most interfaces: think of light coming in from a 120° angle
Text inputs have shadows on the top and left
Modal boxes cast a 120° drop shadow (more shadow on bottom
and right), be subtle
120
Practical tips & tricks (2)
121
ColorIconsReusable design
---
ABC
Practical tips & tricks (2)
122
Next up are three parts, the first about color, then icons, and to end reusable design.
Color
123
Ways to pick colors
124
125
126
Hues app for Mac is pretty cool, and it’s only €2
127
Hues is a good replacement for the standard digital color meter.
Easy coloring: 3 values
128
129
I only ever use 3 colors to start with, to establish some hierarchy.
Blending
130
If you do work with more color it’s a good idea to think about blending them a bit for a more natural and considered design.
131
132
133
134
135
136
137
138
Try to use a darker version of the background color as your text color, this will look better than just pure grey or black.
139
Campaign Monitor does a good job at blending colors.
140
There’s a green background, dark green for the heading, some softer green for the text, and then a clear button. All work very well together, of course, they’re all variations on the same color.
141
For example, here’s the page title, instead of just using white they used a tint of blue, blending properly with the background color. This looks better.
142
I don’t use too much color to make a point about simplicity.
(I also don’t have this 6th sense for colors that some designers seem to have)
143
I’m not the only designer just resorting to B&W, here’s http://www.subtraction.com/ by internet famous Khoi Vinh.
144
Kuler might be a good tool for color but I don’t really work with too many palettes in interface design, I mostly stick to what I know that works already (white/grey/black + accent colors + standard message colors, e.g. red for error and green for success)
145
I don’t have a sixth sense for color, I can apply the color theory I know, but mostly UI design doesn’t need a lot of color, so I wouldn’t worry too much about it either.
146
Fake harmony
A way to fake color harmony in a kind of engineered way. See the video at http://methodandcraft.com/videos/creating-harmonious-color-schemes
147
This is Campaign Monitor again, here they use a shade of dark grey with a blueish tint instead of just dark grey on a white background. I often do this too, it looks prettier and adds some life to a page. (you can apply the same logic to buttons, backgrounds, etc.;
148
149
150
Contrast#EEE (very light grey) is evil, use at least #D5D5D5 (grey)
What they see What you think they see
151
Not everyone has an Apple Cinema display: most people have a cheap computer with a crappy screen. If you use a light grey like #EEE then there’s a huge chance only part of your audience is going to see it. Pro tip: Test your designs on your mother’s computer.
You can even see the difference in screen quality between a Macbook and an iMac. The Macbook has much worse contrast, especially if the screen angle is not optimal.
Icons
152
Icons
• Invest in a good icon set
• Pixel icons are ideal for web applications
• FamFamFam will only get you so far
153
Not so much to say about icons, they’re an essential part in the interface to easily recognize actions and parts without having to think too much.
154
FamFamFam (www.famfamfam.com) is a free set, often used, I’m kind of tired of seeing it all over the place.
155
Even multi million dollar companies get away with still using FamFamFam.
(I think they should hire an icon designer and redo their visual design a bit... the product is great though and that’s what matters in the end.)
156
Collect good things in your personal library
I went freelance in January. Must have spent over €800 on icons this year. I consider it an investment, since drawing custom icons for every project would be a disservice to my clients with so many good sets out there.
158
I like Pictos too, http://pictos.drewwilson.com/
159
Something relatively new: @font-face icon fonts. Try Fico, by Belgian designer Lennar Schoors. http://fico.lensco.be/
Only use an icon when it's well known, otherwise use text, or
text + icon
Icon rule #1:
160
Example 1
161
What does this mean? It’s pretty clear... we know this from traffic, we know the exclamation mark, it means “warning”.
Ambiguity
162
This one is a little tricky. The right button below means add, and I can see that the toggle switches between a grid and a last view, but what about the loop icon? Does it mean zoom? Does it mean view details?
Multiple meanings are a common icon problem, this can be resolved by using labels.
Text + icon when in doubt
163
When in doubt, use text + icon, like here.
The top two icons (refresh and add) are pretty clear and don’t need a label
Reusable design
164
Just like you create functions to reuse in code, you should have a design
library with elements you can reuse
(Web devs have it easy thanks to CSS)
165
166
Bootstrap from Twitter is possibly the best looking design framework I’ve seen: http://twitter.github.com/bootstrap/
167
A lot of the knowledge mentioned in this presentation is applied perfectly in Bootstrap.
Hooray for http://www.markdotto.com/ !
168
This site for example was coded up with Bootstrap in one evening by a developer with few visual skills. Looks passable, even good to me!
169
jQuery Mobile recently released 1.0, if you’re doing something that’s mobile only, this might be a good framework candidate.
I played around with the beta and they do a lot of things right by default.
170
There’s frameworks out there for responsive design too, http://goldengridsystem.com/
171
Avoid frameworks that look dated. Not every framework is good.
Extras
172
Don’t remove outlines!
http://webexpedition18.com/articles/useful-css-snippets/
173
Be consistent
174
Don’t put everything on the same screen
175
176
Text is interface/Tone can make all the difference
177
So, this presentation is coming to an end.
As we walked through typography, alignment, light & shadow, color, icon usage and reusable design I hope you learned something new that you can apply to your work to make it better.
There’s certain parts of designing that we can make into guidelines and rules of thumb. Applying these rules will make your design better and in many cases good enough.
Nothing beats a dedicated designer though!
178
If you want to become a smarter person read every single book and article mentioned on the following slide.
http://flyosity.com/tutorial/crafting-subtle-realistic-user-interfaces.php
Web resources
http://www.wilsonminer.com/posts/2008/oct/20/relative-readability/
BooksDefensive 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/
Designing the obvious by Robert Hoekman Jr.
http://www.uie.com/articles/three_hund_million_button
The Elements of Typographic Style by Robert Bringhurst
Detail in Typography by Jost Hochuli
http://blogs.msdn.com/b/jensenh/archive/2008/03/12/the-story-of-the-ribbon.aspx
179
http://subtlepatterns.com/
http://goldengridsystem.com/
http://jquerymobile.com/
http://twitter.github.com/bootstrap/
http://www.mikematas.com/
http://pictos.drewwilson.com/
http://picons.me/
http://fico.lensco.be/
http://www.asktog.com/columns/076AppleFlatlandPart2.html
http://www.asktog.com/columns/075AppleFlatlandPart1.html
Hire me.
180
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:[email protected]
Follow me on Twitter
181
Here’s the link:http://twitter.com/wolfr_
Subscribe to the blog:
182
Here’s the link:http://wolfslittlestore.be/journal/
RSS:http://feeds.feedburner.com/Wolfslittlestore
Thank you for your attention!
183