Hacker News new | ask | show | jobs
by gnaritas 5677 days ago
If you don't know CSS, you're not a web designer and have no business building websites to begin with. You can't design properly for a medium which has limitations you don't understand.
5 comments

I don't think I agree with you there. The basics of web design -- "you can have any shape as long as it is basically a rectangle", "fixed heights for content areas are kind of a bad idea", etc, are a heck of a lot easier than memorizing big books of the magic incantations you have to learn to get e.g. a lightbox with rounded corners over a semitransparent overlay centered in the middle of the screen. Don't worry about that, designer guy, I am very good at looking up magic incantations. You go be good at stuff that I don't know anything about and can never seem to learn, like what colors go well with pastel blue, what the emotion evoked by 42 point Helvetica is, and how to make stuff pretty.
This is absolutely false and points to exactly what's wrong with certain mentalities regarding web technologies.

I'm not sure at what point programmer's decided that everyone needs to conform to their technologies, or why so many designers have meekly gone along with it, but designers should not have to learn obscure things like HTML and CSS simply to design. It is possible to know the limitations of a medium without knowing the medium, and more importantly, they should not constrain their creativity by these systems.

At Apple, when designers made mockups for desktop apps or iphone apps or whatever, they don't do it by hand coding it in CoreGraphics or whatever drawing technologies are being used by the programmer, they do it in Macromedia Director or Photoshop or whatever it is they're comfortable with, because it would be ridiculous otherwise.

The idea that the proper way to design is by typing text still astounds me today.

If the argument however is that regardless of the way things should be, pragmatically in today's web world you need to know CSS, then it points to a failing of CSS/HTML/web tech/tools.

It’s better for the designer to know the strengths and weaknesses of the medium rather than the technical nitty-gritty.

As in, random variations in styling through jQuery is fine, but multiple, pinned backgrounds for IE6 is bad. (The designers I work with have it backwards.)

You shouldn't need to know CSS to be a great web-designer if you know the strengths and weaknesses of the platform and the process for putting stuff together. But thats just the problem - most web-designers who don't touch code don't know what works well and what's easy or hard to put together.
Again, this is at best (if true), a failing of the underlying technologies, not the designers. But I don't even believe this problem to be true quite frankly. As a programmer, I want a designer to give me his vision, and then to do my best to execute it (I am the implementor, that is my concern and my responsibility). If it turns out that the design is just fundamentally incompatible with the underlying technologies (and this should really be quite rare on the web), then you can go back to him or her and say "x, y, and z just won't work".

Whenever you start with the "limitations" and work your way "up to" the result, you end up with a fundamentally less creative product. You can see this very clearly with people who are primarily programmers: their vision is completely clouded by implementation.

This is not philosophical idealism. I've seen this first hand. Our designers at Apple on the iPhone had absolutely no idea about hard or easy on what is arguably an incredibly more constrained platform than the web, and we made it work. We'd get completely ridiculous designs and grumble about it, but sure enough if you put the work in you could get it there. On occasion did we have to compromise and go back to them? Of course: but that is part of the process. I can guarantee that the result was better because we were forced to try everything and only change it when it absolutely didn't work. And people are surprised at Apple's great design: It's really quite simple, at Apple the designers are above the programmers, the way it should be. Its this mentality that they should be making our lives easy that leads to second rate products.

This of course displays the crux of the problem: design is about the end product, not the difficulty of putting it together. What I'm hearing is less "he doesn't understand the limitations", and more "ugh, this is going to be hard to implement, can't you just give me a dumbed down easier version of this". For years (as CSS struggled to keep up), we've heard things like "do we really need rounded corners?" "is that gradient absolutely necessary". And that's fine. I get it, there are deadlines, but we're no longer talking about being a good designer in any traditional sense, we're talking about being a good deadline-meeter (which don't get me wrong, can arguably be just as important).

But let's not kid ourselves here: this is CS we're talking about, not materials science. We're not dealing with absolute physical limitations. It's putting pixels on a screen: most of the time that I hear programmers complaining that designers don't understand the limitations, what they actually mean is that they have to resort to "inelegant" code or hacks. This of course points back to the false notion that the product is the code: it's not! The product is the website. If you have to use an image because CSS won't cut, thats OK. If you have to add hacks, thats OK. Perhaps someone looking at your code will scoff, but this isn't for them, its for the person looking at the actual website.

Very interesting, but if you take a minute to step back and think about it for a bit, I think you would find that your experience at Apple doesn't represent the typical designer/developer/business interaction. You are in fact talking about an ideal situation for designers there. Regarding what I've read about Apple's design process, Apple affords the resources to allow for multiple mockups, design experimentation, and other practices that aren't as common in startups or most of the working world. Please share more about how things work there if you can.

However, when you're working with a startup for instance, as I have had the opportunity to do for my previous few gigs, you're dealing with finite financial resources as I'm sure you realize. Talking about limitations and how long something takes to build and everything is the difference between launching or not launching before the money runs out. When you're living in that world, focusing on the limitations of the platform and finding ways to solve problems with minimal resources and in a small amount of time is often what the businesses primary problem is.

I recognize that these are important qualities in certain environments (such as a startup). Similarly, with limited resources we may also find ourselves skimping on the engineering end as well. However, I was simply responding to the original comment which was:

  If you don't know CSS, you're not a web designer and have no business building websites to begin with. You can't design properly for a medium which has limitations you don't understand.
My response to this was simply that no, you can be a fantastic web designer without knowing CSS, and perhaps even better. Maybe your skills would not translate well in certain environments, but to go from that to criticizing said designer and saying he has no place on the web is frivolous.
The Apple design approach works if you're building a platform from the ground up. If you're trying to produce reliable results on someone else's platform, you need to understand any hard limitations it has, because you aren't going to be able to fix them. The closer an HTML+CSS document gets to rocket science, the more environments in which it fails to render even usably, much less the way you were hoping it might.

I don't think anyone would accept a print designer being completely ignorant of what is feasible with ink on paper, especially if you are going to be using mass-produced ink in one of various worn-in press someone else is operating.

Well, I agree with you. It is physically possible to be a fantastic web designer without knowing how to write any sort of code. But I have found that this combination of talents is extremely rare in practice. Generally a non-coding web-designer is a good graphic designer and good with Photoshop, but is actually a very mediocre web-designer.
> You can't design properly for a medium which has limitations you don't understand.

Spot on. But it's not just understanding the limitations of a given medium, but its capacities as well.

For instance, the web's capacity to scroll: http://www.designmadeingermany.de/magazin/5/

Good print designers will know the possibilities and limitations of the medium they're working in. I think the same can be said about the screen medium.
I think there is a pretty big difference between knowing a medium, and knowing a medium's limitations. A is inclusive of B, but B doesn't need to be inclusive of A.

You might not know how to drive a car, but you know that a car can't fly.