Designing In-Browser: A Manifesto

Designing In-Browser: A Manifesto

These are exciting times to be a web designer. CSS is finally starting to catch up to the visions of the beautiful websites we have in our heads. No longer do we have to rely on hacks and images to create wonderfully engaging interfaces! But we can’t just rely on browsers to usher in this new era. As creators we have to be flexible and adapt our workflow to encourage these new best practicees. It’s time to rethink how we make websites.

What I will be discussing today is not new or groundbreaking, but rather an extension of what you already may have suspected deep in the back of your mind for quite some time now. This article is going to serve as a counter-point to a lot of the other articles on this website that focus on Photoshop and Fireworks, but they are just the opinions of a single designer, so you can take them or leave them.


Meet Your New Design Tool

The new canvas
Our new blank canvas.

Rethinking Web Design Workflow


The new streamlined workflow.

If you’re anything like me, when you start a new website, you break out the sketchbook and start scribbling down ideas. You then open up Photoshop (or Fireworks) and hammer out the design. Code doesn’t even factor into it until the very last stage.

This is a fundamentally flawed idea, for many reasons. For one, a website is not an image. A finished website is a flexible, moving thing, built with HTML or CSS. Photoshop gives us (and our clients) unrealistic expectations for how a website will look and behave. You should be thinking about how the design will translate into code all the way through the design process.

Secondly, the whole concept of one “finished” design for a website is wrong. Building a Photoshop mockup and then saying “all right, now on to the code” gives a permanent feel to a web design, as if you were proofing a print before sending it off. One of the huge advantages of the internet is that it is ever-changing. Stamping a mockup as done says that this is the final version of the design that will exist. As designers, we should embrace the ever-changing nature of our medium and recognize that a design is never actually finished.

The advantage of designing with code is that you are forced to think about the content and the styles as two different things. The content will lead the design, rather than the other way around.

The Tools

Obviously, you’ll need a browser. In fact, you should really have a few of browsers for testing. (Aside: I recommend Wine for IE testing on the Mac). At the very least you should have a Webkit-based browser like Safari or Chrome, as well as a Gecko-powered one like Firefox. If you’ve done any sort of web design before, you’ll doubtlessly have this area covered.

The tools

The web designer’s pyramid.

You should also have a decent code editor as well. Preferably something with a live-update feature like Espresso or Coda. I personally am a huge fan of TextMate, although it does not have a live-update mode. Again, as a web guy/gal you probably already have a favorite, but I might as well mention it for any newcomers.

Sketching

Sketching is arguably the most important part of the design process. That shouldn’t change even if you design inside the browser.

You should still have a solid idea of what the design should look like before starting on the computer. At the end of the day, this is still design, and you should still use a sketchbook. I won’t go into detail about this part of the process, seeing as you, as a designer, should already be familiar with it. Just know that the same rules apply. You wouldn’t open Photoshop with no idea how your site will look, that would be crazy!

Actually, it doesn’t have to be sketching. Just do what works for you to create the concept. Whatever that may be, the important thing to consider is getting a solid idea in your mind before starting on the computer.

A designer's best friend

Image credit: Sean McGrath.

Layout

Layout is without a doubt the most important part of this process. You could have the most beautifully selected fonts, perfect colors, and delicious little details, but without a solid layout, the whole design will fall flat. Fortunately, building a solid, float-based layout with CSS is one of the easiest things you can do as a web designer. A List Apart has a Great Article on the subject that I highly recommend for the technical details of building a CSS-based layout.

If there’s one thing you should already know before going into your code editor, it’s the layout of your design. If you have a specific layout in mind, it’s a simple matter to code it up. However, if you go in without a layout in mind, I think you’ll be disappointed at the results. Layout isn’t a thing you can just experiment and switch out on the fly, it’s a matter that requires careful consideration on the designer’s part.

Even if you don’t know exactly where every element is going to live on the page, you should at least have a general idea of placement of main elements, as well as the proportions between those elements.

One of the great things about this new movement of “Responsive Web Design” is how it encourages designers to think in proportions, rather than pixels. For instance, you could say that this element needs to be 30% of the main container, as opposed to 200px or a similar measurement. This especially comes in handy for in-browser web design when one has to structure a page. You could start off with a main container element that is, say, 70% of the browser window, and then design the rest of the page inside that container in proportion to that element’s width. No more messing about with exact pixel measurements and that stupid Ruler Tool in Photoshop!

Type

Typography

Image credit: Jennifer Chong.

At this point, you should all have at least heard of @font-face, even if you haven’t used it in a project yet. For all, i don’t know, one of you that hasn’t heard of it, here’s the one sentence version. @font-face is a way of embedding and using any typeface for use on a website, even if it is not installed on your users’ computers.

This simple idea has brought a whole new era of web typography in a matter of a few years. Entire businesses like Typekit and Fontdeck have cropped up for the sole purpose of serving up beautiful typefaces for your website. In the past we’ve been forced to rely on hacky methods like Cufon or just regular images to display our type how we want it, but all that is changing. Type foundry’s have largely embraced the new format, modifying their licenses to allow embedding, or even allowing their fonts to be hosted by Typekit.

So this is great, but what does it have to do with designing in-browser? Well, my good sir, I’ll tell you.

It’s a lot easier to manage typefaces when they are managed by CSS rules, not Photoshop…

Mucking about in Photoshop to change every single bit of text to a selected typeface becomes a little ridiculous after a while. In code, you can preview changes and test out different typefaces, weights, and sizes just by changing a few lines of text. This allows you to iterate your designs more quickly, and let’s you adapt a design for client requests with a few simple keystrokes.

All that power gets a little bit ridiculous when you consider that we now have an infinite number of typefaces to work with. As long as the foundries keep doing their thing, and Typekit keeps doing theirs, designers will never lack an appropriate font.

I highly recommend using Typekit, as many more fonts are available there than with a standard @font-face license. You can always manage the code yourself, but dealing with licences and having to purchase each font individually gets pretty ridiculous pretty fast. This is the option I’ve chosen on a few projects, and while it’s still infinitely better than what we had before, the experience wasn’t the best.

When it comes to chosing fonts, have fun with it! Experiment, try something crazy. If you’ll excuse the blatant self-promotion, I’d like to point you towards another article of mine.

Color

In a “traditional” web design process, often the designer starts by constructing a grayscale mockup of their design in Photoshop, before adding the colors and details needed to make the design pop. This process is integral to the layout and overall feel of the design. Even if you don’t use black and white, constructing your design in sets of boxes and simple shapes really lets you see how your design will work from a higher perspective. The building of a design using simple boxes is really easily converted to our in-browser workflow. Just use <div>’s with basic CSS applied to them!

Once you have your layout and typography marked up and styled properly, introducing color becomes a trivial matter with a few lines of code. This isn’t to say that choosing the colors is an easy and simple technique (although there is a great article for that too), just that coloring the objects on a technical level is very simple. Even displaying beautiful gradients is easy with CSS3.

When I’m coding in color to a design, I often have Photoshop open (gasp!) to choose the colors. I’m sure there’s some great tools available online that provide a color picker for generating hex codes and rgb values, but for whatever reason I still use Photoshop’s. This is out of convenience, because usually I already have Photoshop open, but I’ll get to that later.

As with typography, the best color schemes come from experimentation, so have fun! Here you can see the power of an in-browser design process when you can change the backgrounds and text-colors of many elements on your page with a few keystrokes. With a Photoshop mockup, changing the colors of multiple elements was an arduous task, involving precisely selecting layers and clicking through far too many buttons a windows, but no more!


Details: Know When to Use Photoshop

Remember how I said that I usually have Photoshop open when coding a website? Well it’s time to break something to you, young padawan. Very few sites can be developed with no use of Photoshop. I mean think about it, even if you use an entirely browser-based workflow, there’ll still be at least one or two custom images on there somewhere, say, a background or an icon of some sort. Unless you know of a way of making images without an image editor like Photoshop, you, or someone else will have to bring up Photoshop or similar software to make those textures, icons, and what have you.

Photoshop isn’t all bad. My main argument in this post has beeen that it isn’t at all good for designing websites, but as an icon designing tool, it’s actually kind of great (if you ignore how maddeningly often it crashes, which I try to). In any case, at some point during the creation of a web design, you’ll no doubt have to generate some sort of custom graphics. I have no problems with PS being used for simple things like a repeating background, texture, or icon that will ultimately be part of a larger web design.

Likewise, Fireworks isn’t bad either. In fact, Fireworks has lots of great features (like batch processing and advanced “save for web” tools that actually make it the perfect companion for the in-browser workflow… you’ve just gotta know when to use it.


Caveats

We’ve come a long way in this article, but before I finish up, there are a few caveats about this process that I’d like to mention.

Client Pushback: Some clients may not like you using this technique. They might be dead set on seeing a Photoshop mockup before you do any code work. If this is the case, then you should accommodate them. You can still use a lot of the tips I’ve given here, such as trying different typefaces with Typekit or another @font-face service, or quickly iterating a design with colors. The important part of this post is recognizing that even if you mockup with an image editor, the design should still be open to change and improvement.

Old Browser Blindspots: There are still are a lot of things that you cannot do in browser, and a lot of things that aren’t supported by older browsers. If full IE7 compatibility is a client requirement, then you shouldn’t use CSS gradients, and instead use images. There are ways of providing fallbacks, but sometimes a client will demand full support. That said, you should always be looking for ways to delegate design responsibility to CSS and to cut down of excessive image use. It produces cleaner and more maintainable markup and resources.

Be Comfortable! My third and most important caveat: you may not be comfortable with this workflow, and that’s okay! As I said before, even if you’re not ready or not able to completely follow these ideas, the important thing is that you recognize and at least try to consider some of the concepts, such as rapid iteration or focusing on layout first.


Conclusion

It’s that time again. Time to wrap up and really assess what you’ve learned today, which hopefully isn’t nothing. I’ve covered a lot of stuff, and with any luck, at least some of it has stuck in your brain. I’m not expecting you to all go and completely change your workflows, I just want you all to consider that there is another way to do things. It’s sometimes hard to realize that there are other ways of designing aside from the way that you do things now, but as a designer, it’s important that you are exposed to different schools of thought.

I firmly believe that this process is the future of web design, and I, for one, welcome it!

Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • http://galengidman.com Galen Gidman

    I heard Dan Cederholm promoting the in-browser design concept and decided to try it on a blog of mine. It actually was a lot of fun — not sure I’ll always do it this way, but it was a cool experience.

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones

      Yep – the idea has been around for a while (36 Signals famously encourages it as well), but it’s not often discussed with as much clarity as Max has laid it out for us here (nice job Max!).

      I’ll also say that I’ve tried this out a few times myself with great results – it’s not the perfect workflow for every project out there (especially projects intended to be distributed to other designers for customizations where PSDs can be useful), but it certainly makes sense for a wide range of projects out there so long as you keep sketching a major part of the process to keep a “big picture” view.

      The major point that I loved in this part was that designing in Photoshop usually means that the coding process is relegated to merely “building the design exactly as the mockup shows it” – which isn’t always an effective workflow. The creativity should still be flowing in the coding phase of a project – it’s where some of the best ideas can come out of!

      • Jason

        That would be 37 Signals (after all 37 is better than 36)

        • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones

          :)

    • Doldo

      Lorem Ipsum

  • Manos

    Really nice post!!! Good piece of advice as always ;)

  • http://www.wizkidmedia.com Eric ‘WizKid’ Odom

    Very nice article. I’m trying to get into building more websites by hand and not using software like Dreamweaver. Very interesting!

  • http://www.cmnddsgn.com Luke

    I always design in browser, mainly because I’m just not skilled at PhotoShop (I can use it well, but when it comes to creating something I suck). I like the fact that nothing is static as well, so I can resize something and everything will just flow around it, rather than in PS where if I wanted to resize one element then I’d have to start re-arranging/moving a lot more things.

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones

      Agreed on the “nothing is static” point – it’s always liberating to make huge changes to a design during the coding phase because of how easy it is… where the same adjustments in Photoshop can require a lot of extra work.

    • edwinhollen

      Same here, Luke. There really is no excuse to ALWAYS start work on a design in Photoshop. Not strictly a designer myself, I find it’s easiest to work on layout and typography in the browser before actually jumping into the overall design.

  • Christophor S. Wilson

    This is a great article, thanks Max

  • Siggi

    Thank you Max , well spoken.
    To be true, I started exactly this way “designing” webpages a few years ago, and still sticking to it.
    Notepad++, Safari+Webinspector rules!!

    Ctrl-S – Alt-TAB – F5 is deeply burnt into my right hand’s memory :-)

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones

      Haha! Nice comment Siggi – thanks!

  • http://www.russellheimlich.com/blog/ Russell Heimlich

    And with a resource like http://dummyimage.com it’s even easier to start working on your layout in the browser with any size image you want right at your finger tips.

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones

      Excellent link Russell – Thanks!

  • http://www.brantsteen.com Brant

    I’m glad the “design in browser” movement is picking up steam.

    With all the new tools and standards rolling out on a regular basis, combined with better and better browser support, it seems perfectly reasonable to draft up designs on the canvas where it’s eventually going to land.

    For me, and I suspect it’s the same for others, it’s easier and faster to work in-browser… I can code and style up multiple page layouts and alterations much faster than creating mockups in photoshop and then cutting the design up to transfer into HTML/CSS.

    As for clients, they get the benefit of seeing exactly how the website will eventually look. It seems to me that it stands to cut down on unnecessary surprises along the way.

  • Elliott

    Finally somebody who doesn’t use photoshop/fireworks for webdesign ! Hard coding is always better I feel =)

  • Bruno Belotti

    Amazing article, I agree 100%.
    Thanks Max!

  • mark

    this is a really great approach which some designers already started talking about for a last year or two. also it’s very well described and advocated in Andy Clarke’s book “Hardboiled web design”.
    it’s good for designers because it lets us to avoid doing double work. it’s good for customers because it lets them to interact with a comp you show them – click on links, see some hover effects etc. also it lets you immediately see how your design looks on any screen and device ( especially if you are doing lyquid layouts).
    and here is the bonus: if you customer for whatever reason uses an outdated browser, he won’t come to you later and say “hey, you showed me rounded corners in your photoshop comp, why i can’t see them in my browser?”

  • datta3

    great article,

  • http://tommybrunn.com Tommy Brunn

    I’ve doing this for quite a while now. At least for smaller projects or stuff that I do just for fun. I have, however, found that Inkscape is a far more useful tool for doing website mockups than Photoshop. Unlike Photoshop, Inkscape makes it very easy to resize and move elements around. Even changing multiple text objects at once is easily doable.

  • http://www.dhaneshtk.com Dini

    I think this has been previously also been coined by Elliot Jay Stocks…

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones

      And quite a few other people… which is probably why the first line paraphrases to “this isn’t new information, it’s just good information”. ;)

  • http://abdusfauzi.com abdusfauzi

    you’re right. designing with photoshop / fireworks are not the same thing nowadays. sometimes, transparent issue might just shows up when you are facing ‘advance’ design from designer who can’t code. in the end, the site won’t look the same as the mock up as we need to change some codes to comply with fonts issue, blending, PNGs, and even the colour rendering within each browser can produce different results.

    anyway, nice and comprehensive article. thanks.

  • Eastern Block

    IE9 isn’t in the Tools picture.

  • http://ronquillo4hire.com Martin Ronquillo

    As a developer, I often find struggle to focus when I try to design in Photoshop. For me, it is much more natural to pull up my sleeves, open up my editor, and hack away with HTML and CSS. I totally agree that this is the future! :)

  • Connor Crosby

    I have been using designing in-browser for a while. I hate creating full sites in photoshop. Usually I just use PS if I need specific graphics.

    • Vaidehi

      ya…me to..i just do the same…. :-)

  • Thierry Lalinne

    Great article! I’ve recently tried this technique and I must say it rocks.

    What strikes me the most when designing in the browser is how quickly you can get from ideas to the real thing.

    By the time you have a decent mockup in PS, you already have a great functional site working in the browser. The gain in time is just incredible.

  • http://www.eurekastudioz.com Mutahhar Mustafa

    Hate to say…. I use notpad++ but is there anything better than it for PC Windows….

    • Lukigi

      You can try Topstyle Pro, its really nice for CSS and HTML

  • http://www.monofactor.com Onur Oztaskiran

    As of last month, in-browser design has been my way of designing sites and themes, mostly if they don’t require heavy graphic work.

    The result of that approach allowed me create a wordpress theme from scratch to production, almost all in browser/code editor in less than 19 days :) http://demo.monofactor.com/arpora

  • http://www.webdesignkc.co.uk/ Rory

    I definitely see designing in the browser first can have a lot of benefits, Andy Clarke brought this to my attentions a few months ago at the New Adventures conference. But on a speed factor a quick photoshop mock up for me still wins hands down, maybe its because i’m not fast coder. But definitely something to factor for the future, nice article.

  • Lukigi

    Not a big fan of this, any experienced web designer ‘thinks coding’ while designing in Photoshop and uses photoshop as its easier to quickly visualize concepts, match colours and fonts.

    Personally I usually skip the sketching faze and jump straight to Photoshop, no point of wasting paper when is actually easier to move things around in PS, just design a wire-frame first and start adding details to it. Statement that you should use a sketchbook and don’t even turn on computer is bold and obviously doesn’t work for everyone. (I don’t know any web designer using sketchbook).

    Obviously trying to aim for pixel perfection in Photoshop is wrong (and not possible to recreate in every browser), that should be just an idea how the website should look and then you move it to code and work out all the details.

    It looks like twice the work but somehow its faster (less jumping between PS and text editor and faster design process) and final effect is better as websites designed in browser are usually raw and generic (based on my experience)

    Nevertheless interesting concept and worth trying, especially for those designer less savvy with coding.

  • David

    Interesting article, though I’m sad to see the kinda trendy and off-putting advice of sketching away from the computer. I think it’s a terrible thing to say that designers SHOULD do this. It is of course an idea, but this essentially limits designers to being those who can express their ideas through a pencil which does not include alot of great designers.

    I my self and several of my friends taking a course in interaction design were thoroughly frustrated with our teacher who hopped on the penil sketiching design train recenely forcing us to work with analogue sketches.

    Sure there are alot of benefits to this in that things actually look like sketches, but if you are a person who prefers a digital workflow and likes to use digital mockup tools the only thing that this sketching will do is limit the ideas that you can express.

    I support not moving into the production of details phaze, but digital sketching is not a bad thing.

    • Travis

      I agree, digital sketching is not a bad thing and has its advantages. One its quick to share, and two makes up for poor sketching skills :D

      But I’m a teacher and I highly recommend sketching. It tends to be faster for most students, especially if they are not as familiar with a program or wireframing software. Also my school works with a few creative agencies and design companies and they all ask and require their designers to sketch out their design/concept first. Thus making it a good skill for students to have if employers will expect it.

      I don’t however require my students to use pencil and paper, they are allowed to use a digital workflow if they prefer. We talk about workplaces and the need for sketching by hand, especially since I have students interested in both web and print sometimes.

      If you are a designer that feels limited and can’t express an idea quickly through something as simple as using a pencil and paper, something you’ve been doing since you first picked up a crayon, then there is something wrong.

  • Joe Dirt

    Never Going to Happen.

  • http://terencedevine.com Terence

    I always think about code while designing in Photoshop…

    you should ALWAYS consider if its actually possible, and how you’ll go about creating it with valid HTML/CSS in the next step. When I look back at designs I created before I knew code, I’m shocked at the kind of things I thought would just ‘work’

  • John

    “If full IE7 compatibility is a client requirement”

    When is it not? I have to support IE7 and IE6. They’re reach is still massive in the global economy. Dropping support for both would cost some of my clients millions. While this will work on your local mom and pop website, chances are they still use IE7. If you used this with a major agency, or big client… sorry you’d be fired.

  • http://www.joomlaconvert.com frank

    Totally agree on this one. I mostly use photoshop for specific graphics and o have a bigger picture of the layout and feel of the website. I think this is important when designing dynamic websites.

  • John

    In my opinion, this is a bad work flow. Clients tend to change stuff and no one is going to convince me that it’s quicker doing this with code, specially if you’re in a group meeting brainstorming and you have to start changing HTML and CSS.

    As people mentioned, any experience Web designer will take into consideration the coding aspect of it and it should not be an issue. Also, it’s not always the person designing that will actually be slicing it up. This work flow might be good for a quick solution or a one man show programmer looking to get things done quicker, but any professional approach to designing an ideal Website in my opinion consists of:

    1. Wire framing the structure of the Website according to goals, target market and content, in order to maximize UX and UI ergonomics. Revise with clients and get it approved.
    2. Skinning the Website to reflect the image of the company or clients vision and style. Revise with clients and get it approved.
    3. Slice up the design and do quality assurance in all browsers. Revise with clients and get it approved.

    To me, this is the most safe and effective way to proceed building a Website that has depth and functionality. Before we didn’t get the designs 100% approved and proceeded to coding them, and when the client wanted to make changes it took twice the time. That being said, I don’t understand how skipping PhotoShop and going directly into code will actually be a better work flow if it tends to be more complex to change and is more time consuming.

  • arnold

    if your ‘designing in browser’ , check out this link , these are online tools that can help , well of course some of these use CSS3, so this prevents you from keep coming back to photoshop

    http://dummyimage.com/ (for a mockup image)
    http://css3generator.com/ (for handling gradients)
    http://www.colorzilla.com/gradient-editor/
    http://0to255.com/ (colors)

    But I think there’s still pro and cons when designing via browser to be discussed ,

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones

      Awesome links – thanks for sharing Arnold!

  • Paul

    I have experienced with this concept in the past and find it to be much more productive. I feel that I have much control over every bit of changes I make and a direct browser response.

  • http://www.modernooze.com sam – web design dorset

    I always design this way but i think i have grown into it. When i first started i found i would spend ages mucking about just to get elements in the right place. I wished that back then i started by ripping apart a psd.

  • http://brandonbuttars.com Buttars

    Yes. I hope every web designer in the world reads this article. I wish everyone started this way. There are a lot of so called web designers that can’t code a decent page of HTML. I think this way of doing web design is how all web site designs should be done. Goes back to the idea that if you build the HTML well enough, you can reuse it and just change the CSS for new design.

  • http://tom-rogers.com Tom Rogers

    For virtually all of my web project, I develop exclusively within the browser (Firefox being my preferred choice) because this helps me focus on semantics from the word go. While I am aware that cross-browser support is an important issue, being able to work with the rendering engine that I like to begin with. That makes me more creative.

  • Pingback: Tweet-Parade (no.12 Mar 2011) | gonzoblog.nl