How to use Photoshop to design interfaces
nathanbarry.com
nathanbarry.com
The reason it's important to make that distinction is that otherwise you imply that to design an interface, one starts in Photoshop. Too many people design like this, and skip important steps that challenge the fundamentals of what they're implementing because they get caught up in making their layer styles look pretty.
I've written two books (http://nathanbarry.com/webapps and http://nathanbarry.com/app-design-handbook) on end to end process, so now I'm working on teaching the practical skills to create the end result all new designers are looking for.
I think we agree about the process though. I always start on paper before moving to Photoshop and code.
You'll really start to appreciate the difference between knowing design principles and knowing how to use design tools. Tutorials that teach skills or techniques in software will get you about as far as applying a specific technique. Without knowing basic design principles your work is going to look cluttered, samey, not-quite-where-you-want-it-but-you-don't-know-why. I'd also say that jumping straight into UI design is premature for someone beginning a design education. Learning the fundamentals of graphic design is essential, even if at first it seems irrelevant and too print-oriented.
A good design background will help you solve design problems. Right now there's a lot of 'designy' stuff--especially on the web--that's nothing more than the mindless application of a solution to someone else's design problem. There are a lot of missed opportunities to actually communicate, or to make a better tool; all because of groupthink and notions of good taste. Learning about design will help you get out of that rut.
You need to sit down and put real-world pixels to the screen to see if the thing you're making works and fits. Rendering is not fashion. It's every bit as much function as the code on which an app/site sits.
No wireframe tool I've ever seen will let you know how much text you can or should fit on a particular sized canvas.
You can use a vector drawing app for wireframes, for mapping out screen flows and interaction behaviour, and finally for creating the finished visuals for the app. Photoshop is only really suitable for the last of these tasks. There are some visual effects that only Photoshop can achieve, so you may find you have to use both. But I would always recommend starting with a vector drawing app.
If you don't want to use Illustrator (which has a clunky UI in my view) there are plenty of cheaper vector alternatives . Here are a few
Inkscape (open source and capable of professional results) http://www.inkscape.org/en/
Sketch (Mac only, praised for its ease-of-use) http://www.bohemiancoding.com/sketch/
Serif DrawPlus (Windows only, low-cost but very capable) http://www.serif.com/drawplus/ (no trial version, but they are selling the previous version for £10 (approx $16 usd): http://www.serif.com/promo/
Xara Photo and Graphic Designer (Windows only, again low-cost but very fast, capable and an excellent interface) http://www.xara.com/uk/photo-graphic-designer/
Edit: just to add, the apps above do not have anywhere near the amount of tutorials for learning as Illustrator (or the industry recognition), so factor that in when choosing a vector app if that's important to you.
Is the process easier in Illustrator-- Design to HTML/CSS? Or does it to build the UI elements easier?
Illustrator is better for the drawing stage of your UI than Photoshop but both are equal when it comes to checking spacing, color values, corner radiuses and so on when it's time to actually build that UI.
It's also a bit more straightforward to export an object drawn with Photoshop than it is to do the same with Illustrator.
Also, decent-to-good "Photoshoppers" are a dime a dozen because both businesses and schools have a weird love affair with Photoshop but decent-to-good "Illustrators" are harder to find. You'll have a hard time convincing your client to make its team of ADs and designers switch to Illustrator.
The initial files will be rasterised - so you won't be able to get the vector benefits of svg unless you export paths to illustrator - which is a bit shit and tedious.
PSD to * is such a bad, bad approach
Interfaces are not two dimensional and static, they are three dimensional (time) in the sense that hey have to be interactive. Flat graphics are not interactive.
If you are going to just use photoshop, use a pencil, it's cheaper and easier.
People waste a lot of time iterating over pretty pictures and then pass all the hard work to front end engineers to sort out the cruft.
Worse still is when you then get a PM that wants the whole pixel perfect thing to jump through HTML5 hoops. With very little consideration to the time element of design, you are left with a lot of pretty images that you may as well start again with.
In browser designing is not an optional path to take. If it is going to end up in the browser it will have to be designed at some point in the browser, so designers should dump pixel perfect tools like photoshop as their main iterating tool.
Photoshop is still a pixel tool and getting old, Illustrator is now better for interface improvement IMO as it has pixel preview and can output svg too :).
CSS and HTML? A Designer does not need to know that to produce a design.
30 mb PSD vs someone who can code their design. Your pick.
I've did both: having a design than translation to HTML and people that could do both
There's an advantage to someone that will focus only on the design and another that will focus on only translating that to HTML/CSS/JS namely, that someone that can do both very well is rare
But of course, if they can do the design and a basic html/css of it usually can move the project faster. You will not have the greatest design or greatest html/css but it will usually arrive at a good solution
See the NoPSD movement: http://thoughtworks.github.io/p2/issue02/continuous-design/
I know Chris Coyier is a fan of using photoshop to explore a little bit, before you get into the mode of writing code, which he thinks can interfere with your creative process.
It is very common to screenshot your rendered HTML/CSS, take that into Photoshop, design one portion of the interface, then take that back to code.
Tell me what is fundamentally wrong with screenshotting an interface, playing with it a bit, coming up with something you like then turning it into code?
Every approach is unique to its designer, and it's situation. But I have yet to (personally) find Photoshop (or a hybrid approach) more effective and time-saving when you deal with a large project. Artboards are MUCH easier to keep track of and group, and with something like Mirror [1] you will save hours in exporting/slicing/sharing over the course of a project.
Photoshop was not made for UI design. It can do it, but it will rarely be the best tool because Adobe is not catering features for that niche.
Adobe actually has a tool for this. http://html.adobe.com/edge/inspect/
I'll go against the grain here and say that 80% of the UI design that I do is based in the browser.
Certainly getting a style and architecture down is helpful before hand but the design really doesn't come to life until I get into code. Some might say that this isn't sustainable on a large project but I'd argue that using HTML/CSS and github as a tool is just as, if not more, useful than photoshop/sketch/whatever.
Do you have any good resources to learn more about how to develop with Sketch?
[1] http://bohemiancoding.com/sketch/help/ [2] http://bohemiancoding.com/sketch/community/
Stay tuned. More are coming!
If you're addicted to photoshop but also want to display your designs somewhat interactively and minimize layer clutter, open photoshop and go to Window > Layer Comps. It lets you create multiple states within the same document, including layer positioning and layer styles. Great for button states or for preserving an entire flow through an interface in the same document. Have fun!
What are the replacements on the horizon? Anybody found anything good?
I'm hoping for a Win+Mac solution because I switch from one to the other regularly.
I'll have to try Sketch sometime even though it's Mac only. http://www.bohemiancoding.com/sketch/
So you can use it, but they won't be developing it further.
I've been looking for a true alternative to Photoshop. Sketch looks neat but requires Mac OS 10.7 at least (my iMac is stuck at 10.6, my MBA isn't suited for graphic design) and seems to suffer from numerous bugs. Macaw looks promising but is too much focused on code. And Fireworks is discontinued.
I use Illustrator from time to time, but only for assets: icon fonts, logos, or print-quality jobs. It's not suited for layouts: there's no grid, it's difficult to export background images, you need to calculate a lot even for simple adjustments... Photoshop actually carries interesting vector capbilities, which I use for example to design icons that are both infinitely scalable and pixel-perfect (start small, expand appropriately).
Why is Photoshop still considered the n°1 web design tool?
- Web designers are mostly graphic designers first: they focus on the UI, and don't know or care about the UX. They want to create Dribbble shots, not experiences.
- The community and online resources are huge, from simple forum signature tutorials to advanced realistic drawing techniques.
- Air-brushed billboard model? Funny image manipulation? Fake celebrity picture? Done with Photoshop. Everyone knows about it. It's even a verb.
- Eye-candy sells. Clients don't care about how their website will perform. They care about the "Wow!" effect. It's something they can have an opinion on. And it's not in the web designer's interest to point out this fallacy.
I guess the article's purpose can be summarized by its last paragraph, where it displays the drawing of an eye, made with only one Photoshop layer. What's the purpose of this self-imposed constraint? The answer lies in the appended link's destination: a Dribbble shot.
You can design interfaces in Photoshop, but most people (including me probably) only draw interfaces.
I'm not really convinced design should atart or end in Photoshop either - design needs to start without preconceptions or limits imposed by the tools (often pencil and paper is beat) and also to consider the medium (in this case the API and GUI toolkits. Something is definitely lost when you split it into separate domains of how things look versus how things work.
Yes, there are alternatives approaching maturity, but if you are hired to design a website by a client or third party, they will most likely expect the design to be delivered as a PSD.
I've been freelancing at studios across London for the past year and was never once asked if I could use Photoshop — it is assumed.
PS. I'm also working on my own guide to designing websites in Photoshop, which concentrates more on ways to improve and speed up your workflow:
As always however, the best tool for UI deign will always be pencil and paper. Sketch is simply a good tool to flesh out those concepts.
Paper, pencil, and Scheme are high level tools I use to plan and lay out the interface.
Objective-C/C, HTML/CSS/JavaScript, Illustrator/Photoshop/After Effects are low level tools I use just to get the details that support the interface in place.
At least that is how I like to imagine my workflow to ideally be laid out - it is not always so clearly defined in practice sadly.
Text should superimposed by the system you are using in the end. Akin to using css backgrounds.
This way you will support the wave of hi-dpi displays, be able to easily support other languages and will make correcting text or labels so much easier in the future.
I am tired of managers asking me to design mockups or create process flows in Powerpoint because they dont want to take money out of their budget. Adobe CS6 and Visio do it much better and the level of detail you can obtain is much greater.
Independent developers without the money to fork out for several hundred dollars of software just to rough out some flows for their small site can get more mileage out of something they probably already own.