A rather innocent question about my design process has lead to the inevitable revelation of my shameful secret: I don’t know html & css. Luckily, I’m willing to learn.
Just a couple of weeks ago Adam Wilson, a talented fellow designer, sent me a flattering email, complimenting me on this very blog (oh boy, was I blushing). He also asked about my process, whether I “found it easy to design on the fly using CSS” or if I still used Illustrator. I gave him the benefit of the doubt regarding Illustrator (anyone making the switch to digital should embrace Photoshop as their main tool), but in terms of CSS I decided it was time to own up: I don’t know CSS, and up until recently I have not written a single line of html.
You see, I’ve got a reasonable amount of experience as a designer, but in terms of web I’m still an infant and my css/html skills are limited as a result. Obviously, I work closely with my css-savvy colleagues to make sure everything ends up looking good, and this year I’ve taken the first steps towards learning a few things myself.
the burden of making small, tedious and sometimes annoying incremental steps towards typographical and graphical perfection requires the eye of a designer
Not because I think I will ever be able to replace a genius front-end developer, but because I want the skills and insight to be able to control – down to the pixel – the final, polished version of any design I’m responsible for without having to bother my hard working colleagues. Just like any print design requires artworking, there’s often a need for digital artworking too; the process of making small, tedious and sometimes annoying incremental steps towards typographical and graphical perfection. And this burden requires the eye of a designer.
Do you need to know css to design a website?
I could easily argue that the process of designing a web experience doesn’t require css or html skills. An architect doesn’t need to be a master joiner or even an expert at AutoCad, and a print designer needn’t necessarily be an inDesign wizard (though I’ll admit it helps!). My point is, of course, that ideas come from experience, process and applied thought, from random things you see in the street or from drunken conversations on a Saturday night – not from software or tools (albeit knowledge of both is in order in order to gauge the build complexity – and technical potential – of one’s solution).
However, I have many times bore witness to beautiful designs being lost in in translation, so to speak, after being handed over from designers to a development team situated in a different room, building, or even country(!). Who, then, makes the choice to between the two slightly different shades of green (inadvertently created by sloppy use of the eye-dropper), and who solves the problem of fitting over-run copy into the feature area on the home page? The answer should always be the designer, but sadly this is seldom the case when the process is split between to camps.
The truth is, there are a myriad of micro-decisions to be made when building a website designed in Photoshop and unless the designer knows css (or the developer knows design), he relies on non-creative developers to make them. The alternative is, of course, to enforce a strict “no decisions policy” on the development team, demanding that they communicate with a designer every time a small issue occurs, but that’s just silly.
In order to achieve stylistic perfection, the designer should know css.
You can’t push what you don’t know exists
Another reason for designers to be dev-savvy is the amount of creative potential that lies hidden within exciting technologies, waiting to be unlocked and applied to the perfect idea. For example, this funky technique looks really cool, but in this case it adds little value to the content and thus it never really transcends being a visual easter-egg. In the original context, however, the technique has been applied with a designer’s intent and purpose, and the resulting experience truly reinforces the content of the article.
Now, I really don’t wish to knock Russ’s work here – I am aware he is a fellow designer, amongst other things – so let me add that I think the Lebowski quote looks friggin awesome and I totally wish I’d done it myself. I’ll also say that Dont Fear the Internet, which he did with Jessica Hische, is hilarious and delightfully patronising (in a good way!). What I’m arguing is this: It doesn’t really matter if all the developers in the world have an infinite amount of magic at their fingertips unless it’s being applied creatively, and how will the latter ever be the case if creatives are unaware of it’s existence?
In order to push boundaries, the designer should be aware of the current technologies.
Front-end for dummies
So, having established that I’ll benefit from learning more about front-end, where should I begin? In my previous job, the last stage of the design process involved sitting besides a front-end developer with a list of style tweaks derived from me playing around in firebug. This works – but it’s slow and wasteful (you really shouldn’t need two people to change a bit of syntax), so the natural first step in terms of my own process was getting to grips with css and doing post-build stylesheet amends independently.
The second step is supplying the front-end developer with a basic set of styles, including typography, colour variables and mixins, in order to reduce the amount of guesswork required to translate from photoshop to css. To my utmost delight we’re using Sass, one of the most revolutionary – and totally blinking obvious (I almost can’t believe that developers have struggled along without mixins and variables and nested styles for almost two decades) – contributions to a more beautifully designed, visually consistent web. Throw compass into the mix and the world’s an even better place.
Ultimately, this increase in efficiency means we can spend that little bit of extra time in all areas of our production – from content & design, to technical challenges and SEO strategy.
Thirdly I aim to start creating near-complete stylesheets, at least a solid set of variables and mixins, alongside working in photoshop. I already find it helps my design consistency as it forces me to consider the amount of styles and colours I’m applying, and needless to say it vastly speeds up the process of building the site for the developer. Ultimately, this increase in efficiency means we can spend that little bit of extra time in all areas of our production – from content & design, to technical challenges and SEO strategy.
A designer at heart
Many of the issues raised in this article relate to web teams where designers and front-end developers are separate roles, and some of you might scowl at my reluctance to embrace the designer-front-end-developer-hybrid (also know as a web designer?). Lots of professionals combine the front-end developer and designer roles, and I’m not suggesting that the two crafts can never be combined successfully. However, as much as overlapping skills are a core part of our staff policy, I guess I’m a little wary of spreading myself too thin – you know, Jack of all trades and all that – and perhaps there’s a bit of an old dog in me. At the end of the day I’m a designer, and every moment I spend learning a different craft means less time doing what I do best – designing.
Perhaps I will even embrace some html prototyping as part of the crafting stage when I reach the required proficiency.
As I learn more of the technical side of web production I’m not adverse to the thought of refining my process though, especially in it’s latter stages. Making final tweaks in css is already a vital part of my process, and for certain projects I have no doubt it would be smoother to design typography using css as opposed to using Photoshop’s appalling controls (and screen-grabbing headlines from typekit is certainly a pain in the arse). Perhaps I will even embrace some html prototyping as part of the crafting stage when I reach the required proficiency.
We’ll see. In the meantime I’d love to hear from you designers out there – do you do your own front-end build, or am I the only web designer in the world who doesn’t know
how to code markup?