Jeff Croft

I’m a product designer in Seattle, WA. I recently worked at Simply Measured, and previously co-founded Lendle.

Some of my past clients include Facebook, Microsoft, Yahoo, and the University of Washington.

I’ve authored two books on web and interactive design and spoken at dozens of conferences around the world.

I’m currently accepting contract work and considering full-time opportunities.

Blog entry // 11.17.2007 // 4:46 PM // 190 Comments

What’s not to love about CSS frameworks?

Over the past several weeks, I’ve been bombarded (in e-mail, in person, and over IM) with questions about CSS frameworks. I guess I wrote the book on this topic (and contributed, if inadvertently, to one of the most notable CSS frameworks out there), so it’s completely understandable people would come to me with these questions. The question almost always sounds something like this:

I’ve read what you’ve written about CSS frameworks, and it sounds great…but [insert name of a usually-British CSS guru here] said they were bad. What do you think about what they have to say?”

Most of the folks that seem to be very anti-CSS frameworks have the following traits in common:

  1. They are friends of mine. I think we’re all grown up enough to debate this without it getting personal, but I’m not going to name names here, because I just don’t think it’s necessary to make my point.
  2. They make their living off writing CSS. That is to say, anything that makes CSS easier for the average joe makes them somewhat less valuable — their agenda is pretty clear.
  3. They’re British. This is totally irrelevant and doesn’t mean anything — I just think it’s interesting. They’re not all form the UK, but it does seem like most of them are, which is just a little weird. :)

So it’s been made clear to me that these folks don’t like CSS frameworks and don’t think they should be used (except, in some cases, for rapid prototyping). What’s not clear to me is why they feel this way. So, I’m asking publicly, and hoping these folks will show up here to give me their answers: What is it about CSS frameworks that bothers you?

A few preemptive notes about what I suspect may be some of the answers:

  1. Some people say CSS frameworks are “un-semantic”. I’ve yet to see one that is “un-semantic”. None of them (that I’ve seen) encourage using presentational elements (like b, i, or u), or using elements for purposes they weren’t intended for (like table for layout). The ones I know of encourage semantic, valid (X)HTML, so I’m not sure where this argument against them comes from.
  2. Some people say that CSS frameworks are “bloated.” I’m not sure at what point something becomes “bloated,” but the two most popular CSS frameworks, YUI and Blueprint, both weigh in at under 13k. Unless you’re building a mobile site or some other site where bandwidth is an extreme concern, I can’t see how 13k could possibly be a problem.
  3. Some people say that CSS frameworks encourage the use of lots of presentational class names. To this, I have three responses: First, CSS frameworks in general don’t encourage this. Some CSS frameworks use presentational class names for some of their components (YUI and Blueprint both use presentational names for their grids components). Many CSS frameworks don’t use any presentational class names. Second, CSS 3’s multi-column and advanced layout modules aren’t practical yet, so if you want to do complex, grid-based designs, how else are going to do them? And third, how do these presentational class names hurt the site? Do they negatively impact the user or business goals? I don’t think so. They only thing they hurt is the feelings of semantic markup nerds who go poking around the source of other people’s pages (apparently, they’re down with OPP).

Also, I’ll say this: CSS frameworks are not for everyone, or every situation. They’re especially great for those working on tight deadlines and those working in teams (teams wherein multiple people work on the same CSS — they benefit from having a consistent set of coding patterns), and also for those working on several sites of a similar nature (for example, a team working at a news company which runs 20+ newspaper sites). I’m definitely not trying to say everyone should be using CSS frameworks — but I think it’s inaccurate for these folks to be publicly saying that no one should be using CSS frameworks, too.

So, with all that having been said, I have a few questions for the peanut gallery, especially those of you who have been publicly railing against the use of CSS frameworks:

  1. What is it about CSS frameworks that bothers you so?
  2. Do you want CSS and (X)HTML to be easier for everyone, or would you rather it be a highly-skilled craft that requires the assistance of experts?
  3. Why is this just coming up now? Why did no one mind when Yahoo released their CSS framework, but people are bothered by Blueprint? What’s the difference?
  4. Do you simply oppose the idea of frameworks as a whole? Do you also dislike the JavaScript frameworks that have been so popular recently? Do you also dislike backend frameworks like Django, Rails, and CakePHP? Or is there something specific to CSS that renders it somehow inappropriate for these frameworks?

I hope to get some great answers, as this is a topic that interests me a lot. My gut feeling is that many folks who make their living off writing semantic (X)HTML and CSS are getting scared. They’re realizing that CSS and HTML are actually pretty darn easy, especially with the aide of tools like frameworks. They’re realizing that the only hard thing about writing CSS is troubleshooting lousy browsers — and they’re realizing that lousy browsers are fewer and farther between than ever, and getting fewer every year. They’re realizing, quite frankly, that their skill set may be less valuable in the future than it has been for the past couple of years.

I’d love to be proven wrong, but until someone speaks up with some good reason why CSS frameworks shouldn’t be used, instead of simply asserting that they shouldn’t, I’m convinced these folks are just trying to drum up some false job security.

Update: I’ve posted a follow-up to this entry.

Comments

  1. 001 // Mike D. // 11.17.2007 // 7:18 PM

    Ouch… shot across the bow to the limeys! Maybe it’s the food.

  2. 002 // Jeff Croft // 11.17.2007 // 7:20 PM

    Mike D., always the instigator!

  3. 003 // Stephen Caver // 11.17.2007 // 7:33 PM

    I found the CSS framework I used to be limiting and had to go back and do some strange things to work with it. In the right design context it’s pretty powerful stuff, definitely and I’m totally open to using it in those circumstances. But with some advanced things its sometimes easier (at least for me, not saying this is universal) to start from scratch. At least with regards to the grid frameworks.

    Now, the typography styles in frameworks I’ve found to be the exact opposite. I find that to be much more useful and easier to expand upon. At least, that’s my experience so far with them.

  4. 004 // Travis Isaacs // 11.17.2007 // 7:56 PM

    I just finished (literally) a reboot of my personal site today. I went from comp to live site over the course of two days. A big part of that due to blueprint.

    I’ve coded a lot of websites in the last 5 or so years. I quickly realized that no matter how different the sites are, I have to set the grid, baseline the browser styles, typography, browser testing, etc. Why start from scratch each time?

  5. 005 // Jonathan Christopher // 11.17.2007 // 7:59 PM

    My initial reaction to the idea of a CSS framework was a lack of interest. With the release of Blueprint, more and more people began talking about it as a legit option. I looked into Blueprint in more detail, and also checked out some others (such as Tripoli) and I was pleasantly surprised at the organization. I thought about whether or not a CSS framework would be useful for me personally, and came to the conclusion that it wouldn’t be. I wrote a couple pieces on my reasoning, and also asked for the thoughts of others. There were some great replies, both in support and opposition to the idea.

    At the end of the day, the pros and cons behind a CSS framework are very similar (if not identical) to any other framework whether it be based based in JavaScript, PHP, or otherwise. There will always be the problem of “learning the framework” as opposed to really learning the underlying technology. The major benefits come from organization and (production) speed enhancement. When it comes to CSS, however, for me I really don’t think a framework is going to help speed things up. As Stephen Caver mentioned above, I have found it both easier and quicker to put a stylesheet together from scratch as opposed to building the foundation with a framework.

    As a direct effect of my opinion, if I were to be asked by someone very new to CSS whether or not he or she should work with a CSS framework, I would leave my personal opinion and suggest not.

    When it comes to job security as one who works primarily with (X)HTML/CSS, I think there’s enough of a line between professionals and ‘that kid down the street who makes Web pages’ where mass CSS framework adoption wouldn’t bring an influx of self-proclaimed CSS gurus. As I see it, the developers working with and writing about CSS frameworks aren’t using them in an WYSIWYG editor.

    I’m glad to see that other people are still wondering about CSS frameworks and their place — I really look forward to keeping an eye on this comment thread to read some more opinions.

  6. 006 // Jeff Croft // 11.17.2007 // 8:05 PM

    @Stephen: Good feedback. Like I said, frameworks aren’t for everyone. If they don’t work for you, that’s totally cool. At least you’ve given them a go and know for sure.

    @Travis: Well-said. And, lovely looking site you’ve got there!

    @Jonathan: Also good feedback. Again, it’s good that you’ve actually looked into Blueprint and others before making judgement. It’s totally cool that they didn’t work out for you personally.

    Just to be clear, I also don’t think CSS frameworks alone will create a situation where CSS experts are meaningless. But, I do think the days are numbered for people who have been making a good deal of money off simply writing semantic (X)HTML and browser-proof CSS. CSS isn’t only hard because of browser bugs. As browser bugs become fewer and fewer, CSS development is going to be get a lot easier for a lot of people. This is why I’ve sid in the past that web professionals really need to have some other skills (be it design, programming, copywriting, etc.) to complement HTML and CSS — I just don’t see HTML and CSS expertise being that valuable of a skill in the future.

  7. 007 // Jeremy Rickketts // 11.17.2007 // 8:06 PM

    Quote of the month…”how do these presentational class names hurt the site? Do they negatively impact the user or business goals? I don’t think so. They only thing they hurt is the feelings of semantic markup nerds who go poking around the source of other people’s pages (apparently, they’re down with OPP).”

    haha

    I’ve slowly been warming up to the idea of using a framework, especially when marking up more complex grid layouts. The advantages of having a workable, intuitive framework making sense of what could otherwise quickly become a massive, complex stylesheet seem pretty clear. Sure, there are “un-semantic” class names, but really… show me the best designers in the business, and I’ll find you some presentational classes in their markup. Having a class named “column” or “sidebar” is no different than than “column-span-3” in my view.

  8. 008 // Jeff Croft // 11.17.2007 // 8:09 PM

    @Jeremy: I agree completely. And, beyond the advantages you note, don’t forget that using Blueprint or another similar framework takes a ton of the cross-browser testing and tweaking burden off of you — the frameworks have already solved most of these problems.

  9. 009 // Josh Nichols // 11.17.2007 // 8:35 PM

    I have to agree with Travis. These frameworks are great for getting some base typography styles down, but with Blueprint I couldn’t figure out how to customize the styles for my site in a timely way. It was just easier to start from scratch.

    I can usually take a photoshopped site mock-up and create a XHTML/CSS template for our content management system in about an afternoon. By the time I get to coding the hard stuff is done. We’ve finished the content inventory and info. architecture, created wireframes, and decided on a visual style. The XHTML and CSS are the easy part. I don’t see how frameworks could make it any easier.

    The one trick I use to speed up the process is start with a default style sheet that I created. I can do that because all the sites I create all belong to the same university and need to have a cohesive feel.

    You’re right when you say that CSS is easy. I think it’s so easy that you don’t even need a framework.

  10. 010 // Jeff Croft // 11.17.2007 // 8:40 PM

    The one trick I use to speed up the process is start with a default style sheet that I created. I can do that because all the sites I create all belong to the same university and need to have a cohesive feel.

    In other words, you’ve written your own CSS framework! Well-done!

    I think it’s so easy that you don’t even need a framework.

    Are you sure? If so, why did you write your own? :)

  11. 011 // Colly // 11.17.2007 // 8:56 PM

    I think it is interesting that it is us “limeys” casting the negatives over the rise of the frameworks. This is probably because as a rule we are a miserable bastards.

    I must admit that I have not really explored all these new-fangled frameworks yet, so I shouldn’t comment, but I will. Certainly, I don’t perceive any threat to what we all do, or a danger to what you see as our lofty positions as CSS oracles, authors, teachers or whatever. I mean, its just another tool, and probably a very welcome one. I can’t say until I get some time to truly investigate, but in general nobody I know is openly dismissing them, not even on our usually angsty mail list.

    However, arch limey Mr. Malarkey and I were discussing frameworks during the witching hour the other day, and I think he has a lot to say on the subject. Something along the lines of “good for establishing a basic starting point and for resetting values, but be sure to rip out all the bloated crap first” - I paraphrase him there, but what he said made sense at the time.

    Three years ago I was tasked with building a framework, based around a 12-column layout, which I called “Twelve-Bar Blues”. I was very excited about it and it was robust, until I realised that each time I used it, I’d basically rip it all out and end up with none of it. It removed the fun for me. By building from scratch, I can make sensible decisions about naming conventions as I go along, and this does lend itself to a more semantic approach - perhaps.

    Until I have a play with frameworks, I’m unsure of how useful they are, but from my point of view, each site I build is entirely different, has an entirely unique approach and starting point, and the best bit is opening a blank text file and creating that wonderful CSS from scratch. That way of working won’t suit everyone, especially newcomers or those who like to build up a library of CSS snippets, but its the way I prefer to do things.

    Ultimately, I have sensed worries from some quarters that frameworks don’t aid learning. Not sure if this is true, but certainly for years we’ve all been advocating that folks use text editors to create code and step away from things like Dreamweaver - so are frameworks a step backwards in this regard?

    One thing I will be keen to assess is how, when these frameworks are created to handle key things such as cross-browser evils, they cope with the infinite complexities of inheritance and those all too familiar knock-on effects as new rules are spooned in.

  12. 012 // Doug // 11.17.2007 // 8:57 PM

    I have been using blueprint since it came out. I find it really hard to criticize something that makes marking up content in ie6 easier. Blueprint allows me to be more agile and quickly adapt to my clients needs. I find myself concentrating more time on flow/design of the site, and less time on ie6 bugs. So far the only negative (well for my competitors in my field) is it makes the end product better.

  13. 013 // Jonathan Snook // 11.17.2007 // 9:04 PM

    Using a CSS framework will do nothing to harm the job security of those who do purely HTML and CSS work. Certainly no more than JavaScript frameworks have hurt JavaScript developers and no more than Django, Rails or CakePHP have hurt the Python, Ruby, or PHP developers out there.

    If anything, it just creates a greater delineation between the pro and the amateur when things break.

  14. 014 // Josh Nichols // 11.17.2007 // 9:06 PM

    I didn’t think of it that way. I guess I did! :-)

    I can’t brag too much. My framework only includes the body tag and about 5 other classes. I guess I’m all for very basic frameworks.

    My point was that of all the coding I do — PHP, XHTML, XML, JavaScript, Actionscript, CSS, XSLTCSS is the easiest one. I also find it to be the one that is the most fun.

  15. 015 // Ricky Irvine // 11.17.2007 // 9:10 PM

    Over the past few years I’ve developed my own habits of going from mockup to code, which, in a way, is a sort of framework itself. I’ve looked enthusiastically at Blueprint. I love the idea of working with a standard framework for all projects. The only trouble is the time it takes to learn it’s ins and outs. I’ll be working with frameworks whether they are habitual or published. So, as I see it, I might as well conform to a standard published framework.

  16. 016 // Jeff Croft // 11.17.2007 // 9:14 PM

    good for establishing a basic starting point and for resetting values, but be sure to rip out all the bloated crap first”

    Spoken like someone who hasn’t actually used any CSS framework. :)

    By building from scratch, I can make sensible decisions about naming conventions as I go along, and this does lend itself to a more semantic approach - perhaps.

    Certainly. And of course, custom-built from the ground up will always be better than using off-the-shelf components. I could say the same for you and your CMS choice, Colly. I could assert that you’re limited by using ExpressionEngine — for the perfect solution, you should write PHP from scratch for each and every site you build, rather than adapting to decisions made for you by the ExpressionEngine team. But that sounds fairly ridiculous, doesn’t it? What’s the difference?

    I’d say the only difference is that we don’t have a CSS framework that is as robust and good as ExpressionEngine is — yet.

  17. 017 // Jeff Croft // 11.17.2007 // 9:14 PM

    Ultimately, I have sensed worries from some quarters that frameworks don’t aid learning.

    Not to be too blunt, but if a fucking inane argument. I could say:

    • Don’t use ExpressionEngine, it doesn’t encourage you to learn PHP.
    • Don’t use PHP, it doesn’t encourage you to learn the internals of the way Apache works.
    • Don’t use Apache, you really should write your own web server so you fully understand how it works.
    • Don’t write a web server using your favorite scripting language, instead use C, so you can learn how to interface with the operating system directly.
    • Don’t use an operating system at all … and so on.

    This is absurd, right? Yes, frameworks and pre-packaged tools (in any language) probably make some people not learn the language itself. But why is this a problem? You use ExpressionEngine instead of using PHP directly. Why? I’d say it’s probably because you don’t need to fully understand PHP itself. ExpressionEngine does everything you need. You’ve made a sound business choice.

    Some people may not need to fully understand the ins and outs of CSS. And, for those who do, none of the CSS frameworks out there today get in the way.

    each site I build is entirely different, has an entirely unique approach…

    So then you don’t use the same CMS over and over, but rather write a unique one for each site — right? :)

    That way of working won’t suit everyone, especially newcomers or those who like to build up a library of CSS snippets, but its the way I prefer to do things.

    Build up a library of CSS snippets? You mean — a framework?

    when these frameworks are created to handle key things such as cross-browser evils, they cope with the infinite complexities of inheritance and those all too familiar knock-on effects as new rules are spooned in…

    They’ll cope with them the exact same way you do with your own code when the same thing happens: they’ll cross that bridge when it presents itself.

    I know I’m being a bit harsh here, and you know it’s not personal, Colly! I really appreciate your feedback. And, for the record, the whole British/Limey angle was just a joke intended to lighten the mood of the post. Thanks for coming ‘round! :)

  18. 018 // Jeff Croft // 11.17.2007 // 9:16 PM

    Using a CSS framework will do nothing to harm the job security of those who do purely HTML and CSS work.

    I agree. That’s why I called it false job security. I don’t think frameworks actually harm the job security of these folks — but they’re acting like they think it will.

  19. 019 // Dan Shields // 11.17.2007 // 9:40 PM

    I agree with you on most of your argument. I think really the only problem have with a framework like Blueprint or YUI are the grid CSS files. No one can deny that they don’t end up creating a reset, typography, print or other CSS files when creating their own projects. Maybe not everyone separates the styles into these exact categories but we all do it to some degree. I think if your not going to use a framework, the base styles in these file are great to have as a reference when creating your own.

    It’s totally understandable that you guys had to create the grid file as you did because there isn’t a way to abstract it to fit in a non presentational way that works for everyone’s project. I am going to be presenting at our local Refresh meeting on the different frameworks and have been really impressed with both of what you guys and the YUI team has done.

    I am a front-end developer and standards/semantic geek but I don’t see a huge issue with a framework if it helps speed up development. Like you say, what are you really loosing by saying a div is spanning 8 collumns or whatever. A person can still slap an id on it and style it from their site specific stylesheet. The only draw back essentially is the fact there are a lot of classes that might of been avoided if you didn’t use the framework. With the id’s attached to the divs along with the classes a person could still redesign their entire site with a new skin if they made sure not to change the structure of their grid. That really is the only way anyone could get away with not touching their HTML in a redesign in the first place.

    The one thing that I don’t agree with you on is your statements on how CSS and HTML are so easy and that people who code it aren’t really as important to the development process as a designer, engineer, or IA. I’m sure you are going to say that is not what you said but I did interpret it that way. I think there is always going to be a place for us front-end developers. I mean it is true that its pretty easy to get a shell of a website up, like a three column layout with header and footer is pretty simple its the rest of the design brought to life in that layout that is the tricky part, and you throw in working with Javascript, and the backend platform.

    Really all that the frameworks do are get you that initial structure and thats the easy part of HTML and CSS. More power to you guys for giving us a great example of how to create our own frameworks for our internal systems. I doubt I will ever use blueprint as it is but I will definitely take snippets of it all and use it in my own.

  20. 020 // Colly // 11.17.2007 // 9:45 PM

    Oh blimey. Right. It is 3.30am here, so I’ll do this quickly.

    I’m not worried by anything you said in your two comments, as I made it clear I hadn’t used frameworks, and was referencing statements I have heard others say. I just thought I’d share what I have picked up from my fellow limeys, and also pose a couple of questions about frameworks before I dig in and give them a go. The limeys thing is funny - don’t think for one second that offends any of us (not me anyway).

    However, you make a lot of assumptions about the CMS we use (always, apparently), why we use it, and how we use it - and in some of what you said you are way off the mark. Still, you found a good method of ramming your point home with it. I think though that the argument/discussion needs to be wider than focusing on what one individual or company does, as everybody works in their own idiosyncratic ways across this multi-disciplinary industry.

    The “library of CSS snippets” was indeed meant in reference to frameworks, my point being that many folks do use existing snippets or libraries but often they wouldn’t be so bold as to call them “frameworks”. You obviously missed my point on that one.

    Interesting that you say the frameworks will cope with any inheritance issues when they present themselves, just like we humans do. How so? Are you suggesting that these frameworks can “think”? That is clever - maybe we will all be out of jobs if CSS can rewrite itself out of inheritance problems.

    Back to my cave I think…

  21. 021 // Josh Nichols // 11.17.2007 // 9:51 PM

    I doubt I will ever use blueprint as it is but I will definitely take snippets of it all and use it in my own.

    I have to agree with Dan on this. I can’t imagine using all of a CSS framework to save time, I’m too picky, but I could totally see myself using bits and pieces of it as I need it. Much the way you use a JavaScript framework. You grab the bits you need and cut out the rest.

  22. 022 // Doug March // 11.17.2007 // 9:53 PM

    @Dan Shields - Don’t want to speak for Jeff, but I do not believe he was part of the team that created Blueprint. He is deff inspiration for it though. Blueprint was initially created by Olav Bjorkoy from Norway.

  23. 023 // Dan Shields // 11.17.2007 // 9:54 PM

    I didn’t see the whole learning thing and just saw your responses. I totally agree with you 100%. Someone is going to have to know the principles of CSS to create a site with Blueprint. Otherwise your just going to have a bunch of crappy websites that look like the examples provided on Google :).

    Just like in Rails the programmer still needs to know Ruby. Same for Django the programmer will still have to know Python. I really agree with this in terms of Javascript frameworks and how everyone says you don’t need to know any real Javascript to code with it. Sure this is true if your just slapping on some plugins and changing parameters but this isn’t the intention of the frameworks.

    To use any of these frameworks on any real world web application the developer is going to have to know their stuff inside and out otherwise most likely the application will fail and no one will know how to fix it and then the owner of the site will end up starting all over with a new development team that knows what they are doing.

  24. 024 // Dan Shields // 11.17.2007 // 10:03 PM

    @Doug March - I know that Olav is the one who created it but essentially it does come from Jeff and his former Colleagues, just with some adjustments and modifications. I guess really I meant thanks for getting the ball rolling with hyping up the frameworks, since Yahoo apparently couldn’t get this type of buzz for them.

  25. 025 // Joshua Bryant // 11.17.2007 // 10:31 PM

    I was typing up a really long response to all this nonsense and then decided to delete it. It still bewilders me sometimes that it’s 2007 and so much energy is being spent on being negative about web coding tools/strategies. Seriously?

    If a project ends up having the exact emotional response on the intended audience that the client wanted it to, and it functions exactly the way the client wants it to, what the fuck does it matter how it was coded or if a framework was used or not? I thought people arguing over web standards was a bit silly, and now people are arguing over what style of web standards to use? Whether or not to use a CSS framework strikes me as a personal preference, and one that should have no bearing on anyone else that’s not involved in that particular project.

    And if people are so worried about their skills being irrelevant and loosing their jobs, then I might suggest they get off their ass and learn something new, valuable and marketable. Although I for one still believe there is plenty of room for quality front-end coding in a professional environment, whether its based on a framework or Mrs. Butterworth.

  26. 026 // Rob Goodlatte // 11.17.2007 // 11:05 PM

    I’ve looked at Blueprint, and it didn’t really suit me. I didn’t really know why until I thought about it recently.

    The problem I have is that Blueprint makes design decisions for you. You might say that’s a good thing, but every design calls for slightly different solutions.

    Since Blueprint is a piecemeal framework, i’ll break it down by section:

    Grids:

    A 24 unit grid with 10px gutters and a 950px width doesn’t fit every project. And in order to come to that grid, you should be making justified decisions based on the design goals you have in mind. Going for a minimalist, type-centric design? Maybe a larger gutter width is called for. Maybe you want a 4:3 ratio between columns and sidebar — an 11 or 22 unit grid would make more sense in that case.

    Forms:

    All of the widths should tie into whatever grid I’m using. Color choices for things like error handling, link colors, and even border colors are heavily dependent upon the color scheme I use for the site. And aside from colors and widths, the rest is somewhat standard, but amounts to about 4-5 lines of CSS.

    Typography:

    This seems the most compelling to me, only because I don’t like defining styles for tags like dfn and pre. Typography is the only part I’d consider using, but I would likely spend as much time editing this as it would take me to write my own type styles from scratch. Give me some sexy stuff in here like fancy ampersands and nice acronym styling and maybe I’ll be more interested. But again, the typography for a project should be an informed decision, and not an automatic slap-on.

    Reset:

    Everyone already uses it, its great.

    I don’t think anyone is concerned about putting CSS jockeys out of work. My concern is entirely over justifying design decisions — if you just apply Blueprint’s pre-packaged design solutions, you’re not really being a designer.

  27. 027 // Matt Robin // 11.17.2007 // 11:18 PM

    I’m a friend (last time I checked), and CSS is one of the main things I use in Web Design, and I’m British…

    As I haven’t bitched about CSS Frameworks…(not even once) - it must be one of those other British Geezers! ;)

    What I know so far about Frameworks: it seems very useful. Note: I haven’t used it rigorously yet though.

  28. 028 // Rob Goodlatte // 11.17.2007 // 11:29 PM

    Update: Just found http://kematzy.com/blueprint-gen…

    Okay, the grid part is pretty useful.

    </foot-in-mouth>

    Death to CSS frameworks!

  29. 029 // Nathan Borror // 11.18.2007 // 12:33 AM

    What do you really gain from a framework? A convenient way to float things and nice typography. The type part is great because it’s a pain to remember how things should line up and it’s easy on the markup. The layout part of frameworks pollute the markup with generic un-semantic class names. If you don’t care, use Blueprint. If you care about semantic class names, borrow a few things from frameworks and cook up the rest on your own.

    We should be careful about propping up CSS frameworks next to OOP language frameworks. Not the same league nor the same sport. Bottom line is CSS is just a markup language and isn’t that hard to master which is probably why most CSS frameworks never catch on.

    To each his own.

  30. 030 // Jeff Croft // 11.18.2007 // 2:17 AM

    The one thing that I don’t agree with you on is your statements on how CSS and HTML are so easy and that people who code it aren’t really as important to the development process as a designer, engineer, or IA.

    It’s not that I think HTML and CSS authors are any less important — it’s that I don’t think their jobs are as hard as those who do programming, design, or some other aspects of the web development process. Likewise, I don’t think a janitor’s job is as hard as a top executive’s might be — but it’s still and important job that needs to be done, and done well.

    However, you make a lot of assumptions about the CMS we use (always, apparently), why we use it, and how we use it - and in some of what you said you are way off the mark. Still, you found a good method of ramming your point home with it. I think though that the argument/discussion needs to be wider than focusing on what one individual or company does, as everybody works in their own idiosyncratic ways across this multi-disciplinary industry.

    I agree completely, and I definitely didn’t mean to make assumptions about what you guys do or how you do it. I just made an example of you to make my point, and I shouldn’t have. Sorry about that, my friend.

    The “library of CSS snippets” was indeed meant in reference to frameworks, my point being that many folks do use existing snippets or libraries but often they wouldn’t be so bold as to call them “frameworks”. You obviously missed my point on that one.

    I did miss your point, apparently. My bad. I’m still confused, though, as to why people that use libraries or snippets or reusable CSS are at the same time opposed to “frameworks,” when that’s exactly what a framework is. It’s seems hypocritical to me to say, “I don’t use a framework, I just use a library of snippets I’ve built up.”

    Interesting that you say the frameworks will cope with any inheritance issues when they present themselves, just like we humans do. How so?

    Maybe I’m misunderstanding what you’re getting at, but what I mean is that they’ll deal with them just as humans do, because there are humans behind these frameworks. If there are bugs or issues with certain browsers, implementations of the cascade, etc., people will fix the bugs. That’s the beauty of open source.

    I can’t imagine using all of a CSS framework to save time, I’m too picky, but I could totally see myself using bits and pieces of it as I need it.

    Of course. Isn’t that the way anyone uses any framework for any language?

    If a project ends up having the exact emotional response on the intended audience that the client wanted it to, and it functions exactly the way the client wants it to, what the fuck does it matter how it was coded or if a framework was used or not?

    Hear, hear. Folks, this is probably the best comment ever posted on jeffcroft.com. Take notice!

  31. 031 // Jeff Croft // 11.18.2007 // 2:27 AM

    @Rob Goodlatte:

    You’ve retracted your grids comments now that you found the grids generator, so I won’t harp on those. But I will say that your initial reaction (“this grid is no good to me, it’s not flexible!”) is exactly the typo of FUD that is being thrown around about CSS frameworks in general. People that haven’t fully checked things out are spouting off about “it does this, and it doesn’t do this, blah blah” and they generally don’t know what they’re talking about. :)

    I won’t argue with much of your Blueprint criticism.I actually agree with a lot of it. But you’re arguing against a particular CSS framework, not the concept of CSS frameworks. I was very conscientious to make this post about CSS frameworks, and not about Blueprint. I want to talk about the concept, not about individual frameworks. Saying you don’t like CSS frameworks because Blueprint didn’t work out for you is a bit like saying you don’t like automobiles because Hummers are total gas-guzzlers.

    …if you just apply Blueprint’s pre-packaged design solutions, you’re not really being a designer.

    Yeah, but that’s not the point of Blueprint (or any CSS framework). The point isn’t to “just apply it’s pre-packaged design decisions.” The point, rather, is to give you a set of building blocks for you to design with. It’s like legos, man. You can build anything you want, we’re just giving you some plastic blocks to start with, so you don’t have to melt and mold the plastic yourself. YOu can use them, or not use, or use some of them, and also use some pieces you made yourself. It’s all up to you. YOu can build anything you want — we’re just giving you some blocks to work with.

    The layout part of frameworks pollute the markup with generic un-semantic class names. If you don’t care, use Blueprint. If you care about semantic class names, borrow a few things from frameworks and cook up the rest on your own.

    This is great advice. Except, I think “un-semantic” is the wrong term, as I’ve stated in the post. Blueprint encourages semantic HTML. It doesn’t make you use b or use table for layout. It does, however, include presentational class names (which in no way degrades the semantic-ness of your markup). If that bothers you, do as Nathan suggests. If it doesn’t, try out Blueprint.

    We should be careful about propping up CSS frameworks next to OOP language frameworks. Not the same league nor the same sport.

    I do agree with that!

    Bottom line is CSS is just a markup language and isn’t that hard to master which is probably why most CSS frameworks never catch on.

    And that! CSS is a simple little language that anyone can learn. Even still, when you learn it, you’ll find yourself reusing bits of code. These bits of code are your framework. A framework is not necessarily something that is packaged and released (as I state in my A List Apart article). It’s simply a library of reusable code. Anyone who says they don’t use a framework probably hasn’t written much CSS. If you have, you surely have code you reuse from project to project. If you don’t, you’re wasting time, man!

    To each his own.

    A-freaking-men. This is why the authorities saying, “you shouldn’t use CSS frameworks” at public workshops bothers me. This should be a decision each CSS author makes on his/her own.

  32. 032 // Jeff Croft // 11.18.2007 // 2:30 AM

    For those keeping track: we’re now 30 comments in, and we still haven’t heard any reason why CSS frameworks are bad. We’ve heard a few reason why some people don’t like the grids implementation in Blueprint and YUI, but no reasons why we shouldn’t be interested in the concept of CSS frameworks.

    Anyone?

  33. 033 // Dusan Smolnikar // 11.18.2007 // 3 AM

    To me, css frameworks are just like any other frameworks (be it php, javascript, …) - useful to the novice kind of developers, but too limiting for an expert. Of course, you can always add your own styles or edit the existing ones, but not being the author of the code you have no idea what other segments are gonna break. Also, when something does go wrong (I realize it’s been tested thoroughly, but we’re all just human after all) it’s much harder to find the problem.

    And then there’s the so-called “semantic” aspect of it. Surely, your visitors don’t care about it, but we as developers should. I just went trough a site redesign, where most of the work was done css-wise. By having a nice, simple code I could just tweak the css file to move the elements about and change their appearance.

    But I guess the biggest problem I see, are the aforementioned novice developers. Does using a framework affect their learning curve? By using blueprint, does a developer ever learn the full power of css? I guess it depends on the person using it and how he’s using it.

    But of course, these are all just my views as to why I wouldn’t use such frameworks. But other people have other needs, and if it helps them do some work faster, so much the better.

    Why is this just coming up now? Why did no one mind when Yahoo released their CSS framework, but people are bothered by Blueprint? What’s the difference? Personally, I haven’t heard of a css framework before blueprint. But you can be sure that the more people are talking about it, the better it is. :)

  34. 034 // Jon Hicks // 11.18.2007 // 3:01 AM

    I’ve been deliberating whether to comment, as I don’t really have much to say on the matter (not very worthy of a comment!). However being a Brit I feel obliged!

    I mentioned CSS frameworks on The Rissington Podcast, and my words were ‘make your own frameworks’. I think its a great idea to use and pick apart existing frameworks, but better when you make up you own.

    The job security thing didn’t even enter my head! Ultimately, I really couldn’t give a shit either way - if they work for you great, if not, err…. great!

  35. 035 // Jeff Croft // 11.18.2007 // 3:06 AM

    Of course, you can always add your own styles or edit the existing ones, but not being the author of the code you have no idea what other segments are gonna break. Also, when something does go wrong (I realize it’s been tested thoroughly, but we’re all just human after all) it’s much harder to find the problem.

    These are very good and valid points for the use of any framework. I think the authors of any framework (certainly the ones I use regularly) will tell you that you should know the ins and outs of what a framework does and how it works before you implement it. You should know what other segments are going to break if you go adding things, and you should know how to find the problem when something breaks. If you don’t, then you don’t really know the framework.

    Don’t want to learn someone else’s framework? Fine — write your own and use it. By presuming that a framework has to be someone else’s code, you’re shortchanging the whole concept. You can know it intimately, or you can write it yourself. You don’t have to simply accept what other people have done on blind faith.

    Surely, your visitors don’t care about it, but we as developers should.

    Why? Why should we as developers care if our code has a few presentational class names (I’ve been over this in previous posts — you should read those before you respond). They hurt nothing.

    But I guess the biggest problem I see, are the aforementioned novice developers. Does using a framework affect their learning curve? By using blueprint, does a developer ever learn the full power of css? I guess it depends on the person using it and how he’s using it.

    Exactly. It depends on the developer. And should frameworks be blamed for lazy developers?

    Good comments, Dusan! Thanks for taking the time. :)

  36. 036 // Jeff Croft // 11.18.2007 // 3:09 AM

    I mentioned CSS frameworks on The Rissington Podcast, and my words were ‘make your own frameworks’. I think its a great idea to use and pick apart existing frameworks, but better when you make up you own.

    Beautiful, Jon! I couldn’t agree more. After all, I made my own (with the help of co-workers), and it became Blueprint (without my intending it to).

    I’m not sure why some people associate the word “framework” with something that someone else writes, packages up, releases, and you use. It can definitely be something you’ve created for yourself and only yourself. A framework, as I defined it in my A List Apart article, is:

    …a set of tools, libraries, conventions, and best practices that attempt to abstract routine tasks into generic modules that can be reused. The goal here is to allow the designer or developer to focus on tasks that are unique to a given project, rather than reinventing the wheel each time around. To be clear, we’re not necessarily talking about something that is built, packaged, and released to the public. Rather, a framework may be solely for you or your team.

  37. 037 // Rob Goodlatte // 11.18.2007 // 3:22 AM

    You’re right, I got bogged down in the specifics of Blueprint, but my complaint is the same for CSS frameworks in general: I want to make sure every design decision I make for a site is intentional. There’s just no reason to inherit a lot of style information from a framework that, as a responsible designer, I should over-write or exhaustively verify that they align with my design goals.

    You can build anything you want — we’re just giving you some blocks to work with.

    Again, tools are great — as long as they’re enabling you to make design decisions rather than making decisions for you. Thats why I changed my tune on grids the second I saw that generator — it’s not just a 24 column 950px-wide design solution in a box.

    Typography and color styles don’t belong — those decisions need to be intentional, not copied-and-pasted.

    I think the name is a bit misleading — I think of it more as a ‘style library’. I personally re-use a lot of my own styles from site-to-site. I’ll come up with an elegant solution for one site, and re-use it for others. But I’ve at least considered the problem once, and found a good solution. But with a style library, I never have to consider the design problem at all.

    I’m not militantly against CSS frameworks. I just think too often they help you cut corners that aren’t worth cutting.

  38. 038 // Jina Bolton // 11.18.2007 // 3:43 AM

    For those keeping track: we’re now 30 comments in, and we still haven’t heard any reason why CSS frameworks are bad. We’ve heard a few reason why some people don’t like the grids implementation in Blueprint and YUI, but no reasons why we shouldn’t be interested in the concept of CSS frameworks.

    Anyone?

    I think this is because nobody (that I know of) is even against CSS frameworks. Most people I have talked to (as well as myself) are actually for frameworks — though, as you stated, are not too crazy about the grids implementation in Blueprint and YUI.

    If anyone thinks they’re not using a framework (whether it’s their own, or one created from someone else, and whether it’s multiple files or one long single file), they probably just don’t realize they are doing it.

  39. 039 // Patrick Gage Kelley // 11.18.2007 // 4:08 AM

    Jeff, I am not sure you are going to find what you are looking for out of this discussion. By trying to find what is wrong with concept of a CSS framework (which, likely is nothing at all) I think the point of what your British friends may (or may not) be saying is missed. While the concept of a CSS framework can be beneficial, unless the actual framework being used is well suited to the way a designer thinks and designs it will become more hassle than it is worth. So for many designers who have been around the block they may have snippets they re-use, or even something like a footprint, that you can find repeated in many of their designs. However, as this differs for each of them, they speak out against ALL of the frameworks that exist, because unless they created it personally, it won’t work for them.

    I have used Blueprint twice, and both times immediately removed all the grid bits, because I know that that is not the way I conceive of grids when I design, and so I do that myself and use it for its easy typography. And while I know that methods works for me, it won’t work for everyone.

    Also, one last thing, that I won’t say is bad yet, but might be bad in the future. CSS frameworks will likely lead people to thinking about design in similar ways, guiding them to think about elements, typography, grids in certain ways-and this could lead people to start designing in similar ways. This may be good for people who don’t know much about design and just want to start up a website, but any sort of framework bounds creative expression, and I personally think that may be the largest problem with CSS frameworks.

  40. 040 // David Emery // 11.18.2007 // 4:32 AM

    I would hazard a guess that the problem these ‘CSS Experts’ have with Blueprint, YUI and CSS Frameworks in general is that - almost by definition - they don’t need them! Why would they be interested in something that does what they think they already do in the best way possible?

    Personally I haven’t investigated them in too much detail but I’m sure there are a whole load of use cases where they’d be really handy.

  41. 041 // Dusan Smolnikar // 11.18.2007 // 4:35 AM

    Why should we as developers care if our code has a few presentational class names

    It’s much easier to read your code after a few months, if it doesn’t. Say I make a website and I want a left menu. I create a class=”leftMenu” element. But later on, I decide to move it to the right side. leftMenu is now on the right. Who cares about it’s class name anyway.. But later on, when adding elements, redesigning, etc. this might confuse me. By just reading my html I’ll assume that I can put something inside of leftMenu to move it to the left side of my page. But it won’t. And what if I want to put a new menu on the left. class=”leftMenu2”? On the other hand, by calling this element “mainNavigationMenu” it gives me a bit more clue to what this is, regardless of where it is.

    But of course, this might not be equally important on every project. Make a one-time presentational website and you wouldn’t care. But if you’re making a website that will evolve throughout years, maybe other developers will work on it as well, … then you would want a clean, semantical code that’s easy to understand.

  42. 042 // Kev Mears // 11.18.2007 // 4:45 AM

    Is a presentational class name semantic in the context of a developer rooting around site templates, trying to figure out what bit of code needs to be changed, and how it’s gonna be presented on the page?

    As I understand it semantics are about reflecting meaning. A presentational class name has meaning to the person tasked with using it.

    I’m optimistic about frameworks, and their utility to me and my colleagues, mainly because I think there are plenty of clever, committed people who won’t be afraid to debate the merits and drawbacks out in the open where anyone can make up their own mind, and go away more informed than when they started.

    Seems like

  43. 043 // Tor Lovskogen // 11.18.2007 // 5:45 AM

    You say CSS frameworks are like lego blocks, how do you build a comfortable bed with static hard lego blocks? I think each site has different needs when it comes down to the CSS, thats why I like to handcrafting each sheet myself. But it feels like a design has to be adjusted for it to work, should all websites use a strict grid?

    I do use the reset.css, which is good for giving a clean slate, but that’s it.

  44. 044 // Tor Lovskogen // 11.18.2007 // 5:46 AM

    By the way, looks like your commenting form does not like the norwegian character “oe” ;-)

  45. 045 // Andrew Ingram // 11.18.2007 // 6:54 AM

    Let’s see…

    1. inflexibility and bloated markup, having more presentational rules does make it more difficult to visually scan the markup and quickly ascertain what each section is for. I am also against templating languages that use XML rather than a unique and easily recognisable syntax for this same reason. As for inflexibility, it’s true that there’s now a site that can generate the grid of our choosing for blueprint but since we’re having fun with drawing parallels with server-side frameworks I’ll do the same:

    Having something generate your CSS framework for you is like having something that generates a special version of Django for you. If you need it, then the framework isn’t inherently flexible enough. Now, with CSS we obviously don’t have much choice, but let’s not dismiss the multitude of server-side tools like Moonfall that give you powerful new CSS options.

    Having worked extensively on both the client and server sides of web development I can also point out another problem with using presentational class names - maintainability. Obviously this isn’t a problem for small sites and one off things, but web apps are generally extremely modular and component-based. The use of the grid aspect of a CSS framework not only puts in presentational class names (which I don’t particularly like but I can live with), but it also puts these presentational class names throughout the full stack of a fairly complicated component hierarchy. This means that should you ever decide to change the grid or amend some otherwise trivial design issues you potentially have a lot more work to do.

    I have no problem with the typography or default style aspects of CSS frameworks.

    1. It would be rather nice if everyone could use it, or at least understand how it allows content to automatically look like it’s supposed to.

    2. For the record, I had exactly the same reservations about YUI Grids and I know I’m not the only one.

    3. I like using frameworks very much, but in my experience the majority of them try to do far too much. Rails doesn’t give you quite enough control, the way ActiveRecord (in Rails) works is very nice and intuitive but ultimately too restrictive, especially when it comes to primary keys. The frameworks in the Java world are frankly awful, I’ve been using Tapestry at work and it actually makes it more difficult to get things done quickly. Django is perhaps the only framework I’ve looked at that doesn’t make assumptions about how the web should work, it’s the only one that doesn’t force the users into adopting the mindset of the framework authors.

    But basically, I would love to see something like Blueprint done as the server-side aspect of a CSS-variables/inheritance solution so that I can use its handy features without having to worry about messing up my markup.

  46. 046 // Doug // 11.18.2007 // 7:15 AM

    Two things.

    1. If we all used frameworks (assuming we picked one that used the same class names) wouldn’t the web be more semantic? A layout microformat if you will.

    2. When using frameworks do you load it in and over-ride/delete inside the framework files or do you create another file lower in the cascade to over-ride? I have found the latter easier. It does create more bloat but allows you to quickly update the framework and get the goodness that is in the next release.

  47. 047 // Andy Clarke // 11.18.2007 // 8:12 AM

    Colly said: “However, arch limey Mr. Malarkey and I were discussing frameworks during the witching hour the other day, and I think he has a lot to say on the subject. Something along the lines of “good for establishing a basic starting point and for resetting values, but be sure to rip out all the bloated crap first” - I paraphrase him there, but what he said made sense at the time.”

    Well that’s all true (apart from the words ;))

    What I think I said, and I have gone on record many times during my workshops, is that Blueprint does a great job of pulling together reset CSS and the wonderful work that Mark Boulton, Rich Rutter and others have done for typography. These components worthing of commercial work.

    However I would personally never use the presentational naming of the grid components in commercial work (possibly only during rapid prototyping) and I encourage people in my workshops to avoid them too. This is not because you or the creators of Blueprint have done a bad job, merely that the presentational nature of the markup elements and attributes lead to presentational thinking when writing markup.

  48. 048 // ben // 11.18.2007 // 8:13 AM

    I’ve posted a full reply, including direct answers to your questions, at Frameworks: it’s the fidelity, stupid.

    The bottom line of this argument is not about the accessiblity of the technology, but rather about the work habits and professionalism of the people who work with it daily.

    Until adequate compiler-like tools exist that make possible automagic transitions from two- to three-column layouts (to say nothing of more sophisticated evolutions) in the course of (re-) designing a site, frameworks serve the purpose of allowing the lazy to be even lazier, the ignorant to be even more clueless, and the shortsighted to be even more thoughtless toward the poor s.o.b.’s who will be forced to live with the unintended consequences of their implementation decisions. Furthermore, it is unconscionably irresponsible for framework developers to tout their work as broadly useful, even in the hands of inexperienced people who haven’t learned any better.”

  49. 049 // Charles Roper // 11.18.2007 // 8:15 AM

    I posted this somewhere before but I’ll say it again: to dismiss frameworks because of bloat, or lack of control/flexibility, or even to claim that “they’re only useful for rapid prototyping” is akin to dismissing Rails because of its scaffolding features (which many people did when it first came out), or dismissing TextPattern, WordPress or Expression Engine because they contain so much code (aka ‘bloat’) already. In fact the CSS frameworks (I’m thinking of Blueprint in particular) are less bloaty because you can very easily strip out the bits you don’t want. This isn’t as easy to do with code frameworks such as Rails, Prototype, jQuery, Django, etc and even less easy with stuff like Wordpress and TextPattern.

    I have actually used Blueprint for my latest professional project having coded my own CSS from scratch for years. I didn’t use it just for rapid prototyping because the actual work was the rapid prototyping. I’m thinking Agile Development here; code fast, iterate often. I was astounded - yes astounded - at how much of a difference it made to my productivity. I was able to produce the HTML and CSS is half the time, if not less. Instead of pissing about fixing browser bugs I was able to spend my time on more useful things such as design, IA, semantics, etc. Instead of having to think too hard about achieving certain complex grid-based tasks in CSS, the framework handled them for me. This saved a huge amount of time. I did have to invest some time learning the framework, so for this project I think the timings just about balanced up, but for the next one, I’ll truly be saving time.

    In terms of ripping out ‘bloat’, I’m going to remove any unused classes at the end of the project. Easy. So the bloat argument is bullshit.

    I used the Blueprint Grid CSS Generator to create a grid suitable for my requirements, so I call bullshit on the argument that Blueprint lacks flexibility. It’s quite the opposite in fact.

    To be honest, the naysayers do remind me of the naysayers who moaned on about frameworks when Rails and Django hit the scene. This was primarily due to an ignorance about what the frameworks achieve and how to use them effectively. If you go in with a closed mind and an unwillingness to make them work, then they’re just not gonna work. It’s a shame.

    To be fair, I really don’t think this lack of enthusiasm from the ‘gurus’ is anything to do with professional protectionism (otherwise they wouldn’t blog or give so much back to the community), but simply an ease and comfort with how they’re doing things already coupled with a lack of deep understanding (through lack of use) of the benefits a framework can bring. Change is hard, especially when you’re really comfortable with how things already are.

    p.s. I’m a Brit.

  50. 050 // Dan Shields // 11.18.2007 // 8:19 AM

    Since we are talking about frameworks in general, I would say that the YUI doesn’t use non-semantic class names. It uses class names that describe the container such as doc, which is the document pagewidth. Then there is yui-t, which means a specific template, yui-g means grid holder and also yui-u, which is grid unit.

    I don’t see these really being unsemantic, but just a little confusing if you haven’t read their documentation. They call it a microformat and like Doug says maybe if everyone worked together to create a proper microformat for grids then people would be less skeptical and confused with what the class names meant.

    I do understand that there is a big difference in how the grid works with YUI and how Jeff creates his frameworks, but maybe this is the starting point for us to come together and create something that is much more universal.

  51. 051 // Tom Armitage // 11.18.2007 // 8:25 AM

    I can’t say that CSS frameworks are objectively bad, because that would just be stupid. But I hope that this might explain why I think they are a bad thing for many of the people thinking about using them right now.

    To wit: by and large, many people see CSS frameworks not as a way of standardising the front-end development process, but as a way of avoiding having to know too much. Rather than learning why browser bugs exist, and how to resolve them, it’s easier to pick up a framework that does what you want without you having to understand how.

    This is bad, because that’s a leaky abstraction. When CSS framework “X” breaks, if you don’t know why it works the way it does, you’re not going to be able to fix the problem.

    This is much like the current situation with Javascript frameworks. They are frequently used as a short-cut to actually learning the ins-and-outs of boring DOM scripting. As Simon explains: “Don’t use libraries as crutches; if you’re not prepared to figure out what the library is doing for you you’ll end up in a world of pain further down the line.“ .

    Personally, I use jQuery wherever possible, simply because it makes the things I do all the time in Javascript easier. However, I learned how to do them the long way around first, if only so I have a better understanding of what jQuery does. Does that mean I should write all my XmlHttpRequest code by hand? No, of course not; that’s not workable in a production environment. But it does mean I should take the time to understand what’s going on before I take the shortcut.

    I’ve seen many designers leap on tools like Blueprint as a way of making their lives easier; I’ve also seen many designers who don’t understand common browser flaws such as the hasLayout issue. In an ideal world, as you point out, they’d never have to. But right now, it’s a crucial part of IE6 bugfixing. For a while, these frameworks will make them happy, as they’ll make it easier to churn out beautiful layouts faster than before. But when they hit a bug in their own code on top of it… they’re going to be back to square one - only this time, the cognitive dissonance is going to hit harder, as up until that point, everything has been working by “magic”.

    Magic” is a dangerous metaphor: it’s all too frequently used to describe something being hidden from the end-user that they don’t understand. And for me, these frameworks are all too often perceived as “magic” to make development easier, rather than a way to streamline what coders already do.

    So it’s not that the frameworks themselves are bad, and it’s not that they’re bad for everybody. But I think a lot of people leaping upon them with glee should perhaps spend some time learning things the hard way first. (And if, of course, the net result of that, is that you end up with your own micro-framework - even if it’s just a couple of rules you use everywhere - so much the better).

  52. 052 // Kev Mears // 11.18.2007 // 8:42 AM

    Thanks Andy, for the rationale behind your reservations.

    If I’ve understood you correctly, you’re reminding designers that they need to have the ability to switch between a semantic and presentational way of thinking about the markup and the content.

    Sounds good to me.

  53. 053 // Dan Shields // 11.18.2007 // 8:49 AM

    To wit: by and large, many people see CSS frameworks not as a way of standardising the front-end development process, but as a way of avoiding having to know too much. Rather than learning why browser bugs exist, and how to resolve them, it’s easier to pick up a framework that does what you want without you having to understand how

    To be honest a framework like Blueprint really doesn’t solve all your browser issues. The only thing it really does is apply a fix to the 3px margin bug for IE 6 and they include a class for the clearfix hack. Oh and a couple other little fixes for some minor list problems and the incorrect styling of legends in IE 6.

    This isn’t going to solve all of a developers browser issues its only going to solve it mainly on the grid columns. You still have put elements inside of these containers and your going to still have to know the different browser issues and fixes.

  54. 054 // Tom Armitage // 11.18.2007 // 9:06 AM

    Dan - yes, fair enough. But perhaps that’s just the designers I’ve seen misunderstanding the benefits of such frameworks, then. The attitude they approach them with is “great, a way to avoid writing/fixing CSS“. Regardless fo whether they’re true or not, the frameworks are highlighting a flaw in the web design community - not a flaw in the frameworks themselves.

  55. 055 // Michael Montgomery // 11.18.2007 // 9:10 AM

    Specifically regarding the coming capabilities of the Blueprint framework, just thought I’d point out something from Christian Montoya: Semantify, and CSS tools based on Blueprint …which talks about the grid generator, the visual layout builder, and Semantify (which I think can remove bloat and presentational class names).

    That’s a visual WYSIWYG editor for creating a proper CSS grid layout. Does anyone not like the sound of that?

  56. 056 // Dan Shields // 11.18.2007 // 9:16 AM

    Tom - you are correct, it is a misunderstanding of the web design community that has this effect on frameworks. Take for example javascript frameworks. I can’t stand how much I hear designers or marketing people in the firms say well you should be able to do this javascript functionality really easy now that there are javascript frameworks out there that do it for you.

    The only way you are not going to have to know a given language when using a framework is if you are doing a very basic site with simple functionality and/or layout.

  57. 057 // Nathan Borror // 11.18.2007 // 10:46 AM

    This is great advice. Except, I think “un-semantic” is the wrong term, as I’ve stated in the post. Blueprint encourages semantic HTML. It doesn’t make you use b or use table for layout. It does, however, include presentational class names (which in no way degrades the semantic-ness of your markup).

    Side note: Semantics doesn’t stop at tag names. Semantics means “to give meaning.” While a <p> tag may mean something is a paragraph, </p><p class="description"> further means this is a description paragraph that possibly happens more than once on the page. Just sayin’ :)

  58. 058 // Charles Roper // 11.18.2007 // 10:53 AM

    Malarkey raises a good point: should frameworks be employed when teaching CSS? I think not, just as you probably wouldn’t use a Django as a starting point for learning how to program (or perhaps you would?). But I do maintain that they are highly useful and time-saving in the professional context and shouldn’t be dismissed simply as “rapid prototyping” tools. As professionals we should know when and how to break the “rules” (e.g. thou shalt not use non-semantic presentational class names) in order to best achieve our clients’ objectives. Just like print designers (and increasingly web designers) know when to break with the grid to achieve their aims.

    Arguing against Blueprint because it enforces presentational class names is bogus, though. You can use multiple class names to create your semantics (as I do) and, if you really want to or need to, you can later stuff the CSS from the framework classes into the more semantic selectors you created, which I don’t think is beyond the wit of most web designers seeing as there really aren’t that many grid selectors in Blueprint and probably even fewer of them are actually used in a project.

  59. 059 // ynw // 11.18.2007 // 10:57 AM

    I welcome CSS frameworks as a sign of maturity CSS technology has reached.

  60. 060 // Samuel Cotterall // 11.18.2007 // 10:59 AM

    Being an XHTML + CSS developer I’ve sworn by Prototype and Rails for the last few years because it takes something I’m not very good at and does it for me. When it comes to JavaScript and back-end development I wouldn’t think to work without a framework these days.

    However I’m very comfortable writing CSS, which makes me reluctant to start using a framework. Although I’ll give Blueprint a try this week and I’m sure I’ll be blown away.

    And yes, I’m British.

  61. 061 // beth // 11.18.2007 // 11:52 AM

    A lot of people have really good arguments both for and against using CSS frameworks. Everyone works differently and every project is a little different, thus like anything else in the world they’re appropriate for some projects and people but not others. So what’s the fuss?

    If they don’t work for you, don’t use them. Personally, they’re not my cup of tea because I’m a control freak and prefer to set everything by hand, but I can see how one might have been immensely useful when we were rebuilding the American Greetings site.

  62. 062 // Jakob Heuser // 11.18.2007 // 12:17 PM

    This reminds me a lot of the same discussion that plagues programming frameworks, which as someone who has helped drive django adoption, I’m pretty sure you’ve heard before. The reasons for taking issue with a framework continue to be the same. They are “limiting”, “hard to work with”, and teach people to “program for the framework” (grr, I just closed these tabs or I’d link them in). The following seems pretty consistent across framework discussions though:

    • If you don’t understand why you choose a framework, you’ll do more harm than good.
    • You will some day want to go beyond your framework, you will eventually need to know the underlying language.
    • Frameworks are usually “bloated” as they provide a cookbook for most root problems someone may encounter.

    The big fear of frameworks (front and back-end) I’ve noticed in my day job is a fear of people who know how to use a framework, but don’t know how to solve a problem outside of the context of the framework. I see this fear in our web development team when we prepare for Interviewing candidates, people who know YUI for example, but don’t understand block scope or extension by the prototype keyword.

  63. 063 // Jeff Croft // 11.18.2007 // 12:23 PM

    Malarkey raises a good point: should frameworks be employed when teaching CSS? I think not, just as you probably wouldn’t use a Django as a starting point for learning how to program (or perhaps you would?).

    Definitely not. When people come to me asking how they can get started with Django, I say “learn Python.” Just the same, I would never advise people looking to get into CSS start with Blueprint. That’s flatly absurd. Rather, I’m suggesting that experienced CSS developers should be reusing code and development patters for much greater efficiency. That’s all I’ve been suggesting. Why is this so hard to understand?

    I think this is because nobody (that I know of) is even against CSS frameworks. Most people I have talked to (as well as myself) are actually for frameworks

    JB, if this is true, then that’s awesome. However, I’m not convinced it’s true. I’ve heard with my own two ears CSS experts say, “frameworks are a bad idea.” Those exact words.

    Here’s the thing: it seems to me the people that have a problem with these CSS frameworks come from a traditional design background, not a computer science one. If they were coming from a computer science background, they would know that a proliferation of libraries and frameworks for a particular language is a good thing: it shows the language has reached a certain maturity and a certain degree of critical mass. It shows, for lack of a better phrase, that the language is all growns up.

    That doesn’t mean you have to use the frameworks. Don’t like ‘em? Don’t use ‘em. But the fear, uncertainly, and doubt that is being spread shows a massive lack of understanding of how the lifespan of a healthy language works.

    For every other language in the world, “lots of available libraries” is a feature. People tout “lots of available libraries” as a reason they choose Python or PHP over Ruby all the time. When OS X first came out, some developers were slow to move to Cocoa because there weren’t many available libraries.

    You may or may not like or use individual frameworks. You may never use a framework at all. You may build up your own framework and use it, rather than using someone else’s. But to say that “frameworks are a bad idea,” is to display a massive lack of understanding of how computer science works.

  64. 064 // Jeff Croft // 11.18.2007 // 12:30 PM

    You say CSS frameworks are like lego blocks, how do you build a comfortable bed with static hard lego blocks?

    Good question. Here’s the answer: you build your bed frame with lego blocks, and then you hand-made a great mattress, some sheets, and a duvet. You could hand make the bed frame out of oak, too, and sometimes that will be the best solution. You could even go chop down the oak tree yourself, and that would be cool. But, it will obviously take you a lot more time and effort than simply building the bed frame out of lego blocks (you’re still going to have to hand-make the mattress and linens, either way).

    Now, if you’re in the business of making super high-end, hand-crafted furniture, then obviously you don’t want to use legos. Awesome. But if you’ve got a commission to build a perfectly acceptable bed if 24 hours, you may not have time to go chopping trees and cutting wood.

    I’m not here to say that a lyout built with Blueprint (or another framework) is going to be as exquisite as a hand-crated one (it won’t be). But I am here to say that sometimes, it’s good-enough.

  65. 065 // Jeremy Ricketts // 11.18.2007 // 12:33 PM

    It’s not that I think HTML and CSS authors are any less important — it’s that I don’t think their jobs are as hard as those who do programming, design, or some other aspects of the web development process. Likewise, I don’t think a janitor’s job is as hard as a top executive’s might be — but it’s still and important job that needs to be done, and done well.

    Ya cut me Jeff. Ya cut real deep just then Jeff.

    Just because the language of CSS is is not as verbose as a full fledged programming language, doesn’t mean that it’s not hard. The thing about being a janitor is, let’s be very honest- if you have a human sized cerebellum, opposable thumbs, and a mop… you can be one. In fact, toss in some work ethic and you can even be a great janitor. On the first day! And if we could make robots that do this janitor job… we would. Just like street sweepers. We use machines now because the parameters of the work are very simple.

    Maybe there is a large part of CSS that can be automated by software (and dare I say… frameworks). But at a certain scale or a level, we need to employ some serious creativity and ingenuity to get the job done right. This is exactly like programming. I’m a front end developer- I don’t know much Ruby, PHP, Python, etc. This is because in most of my personal projects and freelance work, all I’ve needed (so far) is Expression Engine. Bye bye programmer… I just automated your job. But at my “day job” at a large development agency, there’s no way any automation tool could tackle the tasks we need to accomplish. They would say the same thing about the CSS that I write. We need templates that scale well with any types of content our clients might throw at the system. We need solutions that must degrade properly and integrate with other technologies seamlessly. I need to write CSS that will make the “pixel-picky” designers happy, yet avoid being littered with presentational markup (so the developers are happy) and, in the end, have a layout that is flexible to the changes both sides will throw at me mid-project.

    That’s hard shit.

    And dare I say, I’m a reasonably smart bloke- I can design. I could program. For now, I throw my effort and ingenuity at front end development. There might be a day when CSS5 comes around (at the current W3C pace, I’d say the year 2057) and I find that it doesn’t take much ingenuity and effort to bring join the worlds of designers and programmers together and it’s just not that hard anymore. Then I’ll move into something more challenging.

    Until then, I just don’t agree that CSS and front end development are the janitors of the development cycle. We’re not the rockstars of the show (the designers) or the master engineers (programmers) but at a certain level… it’s hard work. Work that a robot can’t do (yet).

  66. 066 // Jeff Croft // 11.18.2007 // 12:38 PM

    @Jakob Heuser: Great comment. I agree with everything you’ve said, possibly excepting the idea that frameworks are bloated (some are, for sure, but I don’t think bloat is something that is simply inherent to every framework).

    To your final point:

    The big fear of frameworks (front and back-end) I’ve noticed in my day job is a fear of people who know how to use a framework, but don’t know how to solve a problem outside of the context of the framework.

    I agree that this seems to cause Framework Fear™. But, my response to it, as I stated earlier, is this: Is this really a problem with frameworks? Isn’t it, rather, a problem with lazy developers?

    As a former boss of mine used to say all the time, technology can’t solve personnel a problem.

  67. 067 // Jeff Croft // 11.18.2007 // 12:41 PM

    @Tom Armitage: Great comment. I agree with every single line of it. Very well-said.

  68. 068 // John Oxton // 11.18.2007 // 12:52 PM

    They’re British. This is totally irrelevant and doesn’t mean anything

    So why write it then? It’s just dumb but hey that’s Americans for you!

  69. 069 // Jeff Croft // 11.18.2007 // 12:54 PM

    Just because the language of CSS is is not as verbose as a full fledged programming language, doesn’t mean that it’s not hard.

    It’s not as hard, and if you say it is, you’re lying to yourself. I’m sorry if that cuts you, man, but it’s the truth.

    The thing about being a janitor is, let’s be very honest- if you have a human sized cerebellum, opposable thumbs, and a mop… you can be one. In fact, toss in some work ethic and you can even be a great janitor.

    CSS isn’t as simple as being a janitor, and I never said it was. My point was simpler that just because every job is important doesn’t mean every job is equal.

    But, it’s not that much harder, either. CSS, the language, is simple to learn. I feel 100% confident I could teach it to all of our Moms. There is one thing about CSS development that is truly hard: dealing with browser bugs. But dealing with browser bugs is something we shouldn’t have ever had to do, and we will have to do less and less as we move forward and the browsers get better.

    Again, I’m sorry if it’s painful to hear, but I stand by this: if every browser perfectly implemented CSS, then learning CSS would be something we could teach every kid in, say, fourth grade. I really hope one day the lousy browsers will go the way of a dinosaur and it will really be that easy.

    But at a certain scale or a level, we need to employ some serious creativity and ingenuity to get the job done right.

    Absolutely. I’d like to think me and my co-workers put that creativity and skill in when we developed our framework. At the time, it felt like the perfect solution for our needs. It worked great.

    I can design. I could program. For now, I throw my effort and ingenuity at front end development. There might be a day when CSS5 comes around (at the current W3C pace, I’d say the year 2057) and I find that it doesn’t take much ingenuity and effort to bring join the worlds of designers and programmers together and it’s just not that hard anymore.

    That’s great. I do believe that day will come (even if it is 2057), and I’ve been telling anyone who will listen that just HTML and CSS isn’t going to be that valuable a skill set in the future. You need to have some other skills to complement these. It sounds like you do — so, well-done, you.

    Until then, I just don’t agree that CSS and front end development are the janitors of the development cycle.

    And, that’s not what I said at all. You’re totally putting words in my mouth now, man. :)

    We’re not the rockstars of the show (the designers) or the master engineers (programmers) but at a certain level… it’s hard work. Work that a robot can’t do (yet).

    I agree completely, and I’m not interested in employing robots. Frameworks? Sure. Robots, no thanks (at least not yet).

  70. 070 // Jeff Croft // 11.18.2007 // 1:04 PM

    So why write it then? It’s just dumb but hey that’s Americans for you!

    Because I thought it was interesting. And, because I wanted you to comment, Mr. Oxton.

    It worked! :)

  71. 071 // Nathan Barry // 11.18.2007 // 1:05 PM

    To start off I would like to say that I am very new to CSS Frameworks. I had read about Blueprint and YUI, but didn’t actually start using Blueprint until last week.

    As web designers and developers we should always be looking for ways to speed up our work flow and also to provide better quality code. As business professionals that should be obvious, if you are not constantly searching for ways to work faster and produce a better product, then you well go out of business.

    Work Faster: To work faster we want to avoid repetition in our work. If there is any way you can save time and get the same or better result, then do it. It’s that simple. That is why I started using Blueprint, because it already has things built in such as the typography and especially the browser reset. These and other features save me a lot of time both in writing my code in the first place, but also in browser testing (my first site using Blueprint worked right out of the box with IE6) and future editing time by colleagues.

    Better Quality: Plenty of people in the web design community are far better than I am. And those people write things like browser resets that are much more complete and well thought out then mine. So instead of trying to reinvent the wheel, I can just use their better solution. There are plenty of other great examples of what can be done to provide better quality code with frameworks.

    Another way that I have used a “framework” is for theme development with WordPress. I found that when creating theme there are a lot of features I use every time, so instead of repeating myself, that I should write a WordPress theme framework.

    With all of that in mind I wouldn’t suggest frameworks for someone learning CSS. It is important to understand the different ways CSS can be used before settling down to a specific framework or method. I think that frameworks are only limiting if you don’t fully understand their purpose, and also how to expand beyond it.

    So, anything that saves me time and helps me produce a better product is something I will use on a regular basis. From a business perspective, those are my two cents.

  72. 072 // Jeff Croft // 11.18.2007 // 1:11 PM

    @Nathan Barry: Very well-said, man!

  73. 073 // Ian Lloyd // 11.18.2007 // 1:17 PM

    Scared that I might lose my job? Well, at first I was comfortable with the idea of a CSS framework. Me and the wife talked about getting one in. I mean, how much work could it be? And think of the time savings! But before we knew it, the framework had got waaaay too comfortable. It started with small things, like hogging the remote control, not clearing up after itself following a night on the cans, but we put up with it. Next thing I know, I can’t even share the sofa with the damn thing. It just took over! The dog got all confused about who was pack leader, the framework started to make drunken demands on the wife. It just went downhill day after day. One day I strolled into the office and found it by the water cooler mocking my DIY abilities to the colleagues, saying things like “Couldn’t put a shelf up if his life depended on it.” I felt emasculated, I tell you. But why was it in my office anyway? Oh yeah … that’d be right … it had only come in and taken my boss’ job. Now I was reporting to it at work! I was its bitch!

    So, it’s not just that we’re scared of losing our jobs. It goes so much deeper than that.

    Now if you’ll excuse me I need to go freebase down a dark alley somewhere and then mumble incoherently to someone about ‘the golden days of hand-rolled CSS’.

  74. 074 // Jeff Croft // 11.18.2007 // 1:20 PM

    Haha. Well-done, Ian. :)

  75. 075 // Darren Hoyt // 11.18.2007 // 1:32 PM

    If you’re a professional designer in 2007 doing a steady stream of work and you DON’T already have a baseline stylesheet in place for each project, you’re insane and have a flawed workflow. Does anyone really rewrite all the resets and header declarations from scratch every time?

    There is plenty to be learned from Blueprint, but it’s not revolutionary. Like Hicks said, take from it what you need and code the rest yourself. And in short, “use the tools which work best for you” — it’s airtight logic that applies to nearly every aspect of the creative process. I’m surprised it even warrants this much discussion.

  76. 076 // Ed Everett // 11.18.2007 // 1:40 PM

    Could the main resistance to CSS frameworks be because it seems - to people experienced in CSS - that calling them frameworks feels a bit overblown?

    Should we really be using the same word to describe a few hundred lines of CSS and something like Rails or Prototype? I don’t know what they should be called, but maybe rebranding them as something simpler would deminish the negative reaction from professionals who look at them with high expectations only to realise that they are doing all that already.

  77. 077 // Jeff Croft // 11.18.2007 // 1:40 PM

    If you’re a professional designer in 2007 doing a steady stream of work and you DON’T already have a baseline stylesheet in place for each project, you’re insane and have a flawed workflow. Does anyone really rewrite all the resets and header declarations from scratch every time?

    Exactly. I’m pretty sure almost everyone does have a sort of “framework,” they use. The problem seems to be when you actually call it that. Call it a framework, and people start getting all huffy, saying it’s a bad idea. I can’t, for the life of me, figure out why this is.

    There is plenty to be learned from Blueprint, but it’s not revolutionary. Like Hicks said, take from it what you need and code the rest yourself. And in short, “use the tools which work best for you” — it’s airtight logic that applies to nearly every aspect of the creative process. I’m surprised it even warrants this much discussion.

    I am, too. I would’ve thought the idea of a building up a framework of reusable CSS code would have been the most non-controversial topic I’ve ever written about — but as soon as I first mentioned it on A List Apart, there were haters.

    Maybe it’s just me.

  78. 078 // Jeff Croft // 11.18.2007 // 1:43 PM

    Could the main resistance to CSS frameworks be because it seems - to people experienced in CSS - that calling them frameworks feels a bit overblown?

    I think you may be exactly right, man.

    Should we really be using the same word to describe a few hundred lines of CSS and something like Rails or Prototype? I don’t know what they should be called, but maybe rebranding them as something simpler would deminish the negative reaction from professionals who look at them with high expectations only to realise that they are doing all that already.

    I’m not sure “framework” is the wrong word, though. You mention Rails and Prototype as large-scale examples of frameworks, but there are plenty of examples of frameworks in other language that are much smaller than Blueprint is.

    These things we’re talking about are “frameworks,” but you’re totally right that that word seems to instill a great dear of fear, uncertainty, and doubt in a lot of people.

  79. 079 // Rachel Andrew // 11.18.2007 // 1:52 PM

    I’m British and my company does make money writing CSS although we are mainly back-end developers. The thing I have found when using CSS frameworks (actually when using any framework) is that sometimes they can be great, and sometimes they can be more trouble than they are worth. I built two layouts recently and the client had said they wanted to standardize on YUI grids. No problem. So we started work on these layouts and the first had been designed with YUI Grids in mind and it all worked beautifully saving us and the client time.

    The second was the most fiddly beast I have come across in a long time, we started out using YUI and were having to write so much code to get round the way the framework wanted to do things that I quickly realised that rolling our own CSS would get the job done more quickly.

    I think the lesson in that is there is no right or wrong. Sometimes a framework can help to standardize how you work; it can mean you run into fewer problems because you are utilising the knowledge of people who know more about this stuff than you do; it can save you time and perhaps enable you to build something you couldn’t do otherwise. However other times what you are trying to do is just so different it is better to start from scratch and solve the problem - rather than add the additional problem of a framework that doesn’t do the thing you need to do!

    If you are a web developer you should be able to make that call and the right decision for your project - and you certainly should be able to troubleshoot outside of your chosen framework. However if frameworks make it easier for people to start to get their hands dirty with CSS and XHTML then this British, CSS building web developer would not want to discourage that.

  80. 080 // Ian Lloyd // 11.18.2007 // 1:59 PM

    That’s all fine Rachel. But how do you know that the CSS framework wasn’t stealing food from your fridge when you weren’t looking? Or taking Drew down to girly bars while you were talking to clients? Mmm? Mmmm?

  81. 081 // Ian // 11.18.2007 // 2:08 PM

    I’m somewhat surprised as to how much debate this topic has produced and I find myself sitting more on the fence on this one (if there is any argument against frameworks in the first place as Jina points out, and I’d agree with her). As more of a newbie on the scene my aim is to really get a solid understanding of all the design elements from design theory, grid layouts, and typography etc as well as mastering the markup (CSS and XHTML as the core) to bring the theory to actual realisation.

    From my point of view I can see the arguments both for and against. From a learning perspective a framework wouldn’t really teach me much about CSS and if it broke or it needed further customisation to suit the design requirements for the project at hand I would be pretty stuck. I’d also have to take time to learn and understand the framework in the first place. I much prefer learning from scratch the proper ways of doing things and slowly building up my own snippets to call on. Yes, this is essentially a form of framework but the term framework suggests more of a formal structure to me and I wouldn’t consider it as such as it would only really be understood by myself so I agree with Colly on this point.

    I also like to think that the framework (Blueprint for example) would suit the requirements of the project/design rather than the other way around so I wouldn’t like to call it straight down the middle as to say I will either use a framework or not. If from the project spec and the design solutions it looks like I could save time by using a framework (especially if there’s a strict timescale) I wouldn’t really be worried about using one. Even though my preference would (at present) be to learn it intricately from scratch there’s always a balance to strike between getting things done and taking time to learn.

  82. 082 // Ian // 11.18.2007 // 2:09 PM

    I would also agree with your comments Jeff that sometimes it isn’t always necessary for the person developing the front-end to know the intricacies of CSS/XHTML. They could just be someone who’s not strictly a web designer and finds themselves in a position where they need a web site without the interest or time to learn all the secrets of web design in depth. Just like the majority of bloggers use templates, they don’t care about how the thing is put together as long as it works and it’s quick and easy to setup. Their primary goal is publishing content.

    From a career development stance going for a job interview as a web designer/developer and saying you don’t know CSS/XHTML but you know how to use Blueprint or YUI, you’re probably not likely to land yourself the job unless you prove you can do it from scratch. As you’ve mentioned in a recent post of yours Jeff - “Tools do not a designer make” and isn’t a framework essential a tool? Also I find a couple of quotes from that post almost contradictory to your argument:

    there are probably thousands of people out there that call themselves “web designers” despite having no real understanding of the basics of design.”

    If everyone used a framework to create websites without that design understanding wouldn’t they guilty of exactly that?

    If you want to be a great web designer, then yes — you do need to know HTML and CSS.”

    This, again, is almost contradictory to the use of frameworks. This is why I believe its important to learn the languages rather than the convenient framework but of course it does make sense to at least reuse bits you need time and again.

    From more of an advanced web designer/developer who regularly creates dozens of sites and is more concerned with timescales and non-repetition frameworks could help to make life easier and thats what its all about. Frameworks exist to cut down on time and repetition and increase productivity.

    There’s a time and a place for both frameworks or manual development, it just comes down to specific project needs and limitations with focus on the main objectives.

  83. 083 // Jeff Croft // 11.18.2007 // 2:10 PM

    Good stuff, Rachel. I agree completely. As I said in the post, a framework may not be right for every developer, or every situation. But it’s a tool in a toolbox, and sometimes they can be very useful.

    And, let me just say for the record: I didn’t mean to call out my British friends, here. I love my British friends. It does seem like many of the folks who are publicly anti-frameworks are English, and I chose to use that as a way of making a joke, with the intent of lightening the mood of a more serious post. It was in no way intended to be a shot at Brits as a whole, nor as a personal attack against anyone. It was just me being light-hearted. I sincerely apologize if it came off differently.

  84. 084 // Jeff Croft // 11.18.2007 // 2:18 PM

    This, again, is almost contradictory to the use of frameworks. This is why I believe its important to learn the languages rather than the convenient framework but of course it does make sense to at least reuse bits you need time and again.

    I fail to see how it’s contradictory. We’re talking about two different things:

    If you aren’t planning to be a serious, professional web designer, but you need to build a page or two, you might be able to learn a framework very quickly. You’ll be limited to what the framework can do, but if that’s all you need, then you may never need to fully understand HTML and CSS.

    If you want to be a serious, professional web designer, you must know HTML and CSS. After you know HTML and CSS, you might want to build or adopt a framework to make your life easier.

    Clear enough, now?

  85. 085 // Andrew Ingram // 11.18.2007 // 2:33 PM

    We Brits are generally a lot more skeptical about hyped things and we prefer to wait until the honeymoon period is over for everyone else before diving in ourselves. Sometimes it’s skepticism to a fault, resulting in a permanent unwillingness to accept non-utopian solutoins, but on the whole I consider scepticism to be a quality rather than a flaw.

    As I said in a previous comment (which I personally thought was rather good, le sigh ;)) I have no reservation with frameworks and personally I would never consider writing a serious web app without one these days (I’ve actually considered writing my own framework that embodies how I think things should be done, but then I realised that Django already exists). Fact is, it’s rather easy to play catchup with new frameworks and ideas. It’s not so easy to make up for making the wrong choice once vendor lock-in has occurred.

    Blueprint is fundamentally very straightforward stuff and I would say it’s closer to being a library than a framework. My definition of framework would include it being something that provides a level of abstraction or a wrapper layer, rather than something that just gives you a few handy short cuts.

    My reason for not adopting Blueprint was simply that I was convinced that there was a way to gain its benefits without sacrificing the beauty, legibility and maintainability of my markup. With server-side solutions and forthcoming things like Semantify it turns out I was right. So now the only reason I haven’t used a Blueprint-like framework is that I haven’t got round to putting all the steps in place yet.

  86. 086 // Jeff Croft // 11.18.2007 // 2:37 PM

    Good stuff, Andrew. I think there are two main things that sort of annoy me about CSS experts saying publicly that frameworks are a bad idea (and you’re clearly not doing either one):

    1. They seem to be talking out of their ass, really not understanding what CSS frameworks are, how they work, or what the pros and cons of them are. You, on the other hand, have clearly fully evaluated the situation before making a decision and stating your thoughts.
    2. They seem to be dismissing the entire idea of CSS frameworks (or libraries — call them what you want) because of the implementation of one component of one framework. As I said before, this is like saying you don’t like automobiles because Hummers are total gas-guzzlers.

    Thanks for your insightful, well-thought-out insight. :)

  87. 087 // Ian // 11.18.2007 // 2:43 PM

    Exactly the points I was making and that’s why I’m from the viewpoint of seeing the benefits and limitations of them.

    Through all these comments though there’s not really been anyone to say they’re against them, only that they’ve tried them and frameworks aren’t for them or not suitable in particular cases. I’m just curious as to who these british folks are who are dead against them full stop? Being one of the brits I haven’t heard any of it myself or seen it in discussion.

  88. 088 // Matt Wilcox // 11.18.2007 // 2:53 PM

    Here’s another Limey wading into the fray…

    I do not like CSS Frameworks because I am already familiar with my own mark-up style, my own CSS conventions, and how I go about making a site that is cross-browser compliant, etc. To me, using a framework is a frustrating experience involving a lot of extra effort to understand what it does, how it does it, and why it does it that way.

    I have a feeling that anyone who uses CSS all day, is fluent in all of it’s intricacies, and who has well established methodologies, will likely feel the same. For the people that know this stuff inside out, frameworks are of little benefit, while still taking the hit of a learning curve. It’s for these reasons that I think CSS frameworks are underrated by such people - they perceive little value in them because they have little value (for them). It’s not that frameworks don’t solve a problem, it’s that they solve a problem most guru’s have already solved their own way, and if you already have a solution there’s no point switching.

    The trouble is that by learning any library/framework you are fluent only in the library/framework. As long as that library is going to be maintained and patched to deal with new browser behaviour etc., that is perfectly fine - but what happens if the project dies? Your skill-set is then redundant. Now, in theory you can say that CSS frameworks are a ‘gateway drug’ to CSS. I suppose CSS and its associated frameworks are simple enough (at the moment) that this could well be true. A CSS framework doesn’t obfuscate the inner workings that much yet. But, as CSS gets more complex (oh for CSS3 to come along!) the chances of that ‘gateway’ effect applying become lower. I, for example, am learning jQuery. But writing modern JavaScript is complicated and the chances of me dipping lower in the stack than the jQuery documentation is rather low. Also, using jQuery is not going to teach me a thing about JavaScript itself because the actual workings of the JS are completely hidden away inside the jQuery library itself - which you never look at.

    OK, so jQuery is a lot more complex than a CSS framework, but as CSS becomes more advanced and can do more things, the frameworks created to make their implementation simpler will obfuscate more and more of the actual CSS. Meaning they teach less and less CSS.

    As you say, the argument is not new. For example anyone fluent only in CakePHP is at the mercy of CakePHP - if for whatever reason they can’t use it, they are screwed. Better to learn PHP itself, and then use CakePHP (or more likely your custom function library) if you are the sort of user that can’t always guarantee a library/framework’s availability. If on the other hand you know you’ll always be able to use a framework, and that framework will always be updated to support your needs and the needs of your platform/clients - they are great.

  89. 089 // Roger Wilco // 11.18.2007 // 2:55 PM

    What is confusing to me is how people can compare a framework of a layout language like CSS to a framework of a scripting language like Javascript, PHP, or Ruby.

    Those latter frameworks essentially do all the tedious programming behind the scenes, enabling the programmer to ask for specific functionality with much less handwritten code.

    A CSS framework is, by nature, essentially a pre-written CSS document that a designer would plug specific values into. There’s a huge difference between the two.

    I think if a CSS framework would enable a handwritten line such as #content { multi-background: url(image.png) left right bottom} to do all the work of adding several extra non-semantic elements and extra background trickery — like how the one-line ‘$’ function does the all the getElementsByID and custom getElementsbyClassname work — we’d be having a different argument.

  90. 090 // Jeff Croft // 11.18.2007 // 2:58 PM

    I’m just curious as to who these british folks are who are dead against them full stop? Being one of the brits I haven’t heard any of it myself or seen it in discussion.

    The three CSS experts that I’ve heard say they’re against CSS frameworks with my own two ears haven’t (yet) shown their face in this thread. Not that it matters, but only them are British. I refuse to say their names publicly. This is not a personal matter. We’re talking about our profession, and it’s simply not necessary to engage personal in finger-pointing and name-calling here.

    There are two CSS experts whom I’ve been told by others are strongly against CSS frameworks that have commented here — Andy Clarke and Jina Bolton. They have both clarified their views to me, suggesting that they’re not opposed to the idea of a framework, but may not really care for the implementation of certain aspects of particular frameworks. That’s exactly what I was hoping for — a clarification on what exactly these people are thinking. Rather than a bunch of he-said, she-said, I wanted to ask these people directly what they thought so they’d have a change to publicly clarify their position. I’m glad Jina and Andy took the opportunity to do so.

  91. 091 // Jeff Croft // 11.18.2007 // 3:02 PM

    @Matt Wilcox:

    It sounds like you haven’t read the comments here, because these things have all been addressed. No one is suggesting CSS frameworks should be used by beginers, so the learning argument is moot. And, when we talk about CSS frameworks, we’re not just talking about pre-packed, released toolkits. We’re talking about reusable code that you may have built yourself. It sound as if you actually do use a framework. You say:

    I am already familiar with my own mark-up style, my own CSS conventions, and how I go about making a site that is cross-browser compliant, etc.

    If you’ve got your own markup style, your own CSS conventions, and your own way of dealing with browser quirks, then by golly, you’ve got yourself a framework. Well done!

  92. 092 // Jeff Croft // 11.18.2007 // 3:05 PM

    A CSS framework is, by nature, essentially a pre-written CSS document that a designer would plug specific values into. There’s a huge difference between the two.

    I agree, there is a world of difference. The CSS frameworks we’ve seen so far are clearly much smaller in scale and not as interesting. But, the concepts are basically the same: all of these tools aim to make a developer’s life easier by pre-doing several repetitive tasks (like, say, writing browser reset styles) so the developer can focus on what’s unique and interesting about each site.

    Same concept, different scale. You’re right.

  93. 093 // Matt Wilcox // 11.18.2007 // 3:19 PM

    I read them and wanted to chime in agreement without resorting to a long list of names, causing people to check who said what :) My reason for writing verbosely was because you asked a set of questions on why us Brits aren’t hot on frameworks. So I answered with my own reasons. That they chime in with so many others doesn’t mean I shouldn’t reply to you.

    As for the frameworks for beginners idea, I do apologise - I may have picked that idea up from one of the Rissington podcasts, I’m pretty sure this very topic has been mentioned there under the purpose of frameworks suitability for beginners. Squire Oxton didn’t recommend them for such a use, and I agree with him.

    I do wonder about the definition of ‘framework’ however. I do not have what I consider to be a framework. I have a base CSS file with typical resets, and a naming convention - but that’s it. A single file, and a method for naming divs/classes does not a framework make. Does it?

    All in all I think everyone has said “use the right tool for the right job” - and I completely agree.

  94. 094 // Jeff Croft // 11.18.2007 // 3:23 PM

    I have a base CSS file with typical resets, and a naming convention - but that’s it. A single file, and a method for naming divs/classes does not a framework make. Does it?

    I would consider it one. It certainly fits the definition of framework I outlined in my Frameworks for Designers article in A List Apart. Really, that’s all Blueprint is — a set of default styles, and a naming convention for classes. Yours is probably less ambitious (by choice, of course), but the concept is exactly the same.

  95. 095 // Bill de hOra // 11.18.2007 // 4:34 PM

    Exactly. I’m pretty sure almost everyone does have a sort of “framework,” they use. The problem seems to be when you actually call it that. Call it a framework, and people start getting all huffy, saying it’s a bad idea. I can’t, for the life of me, figure out why this is.”

    Personally, I like the idea of ootb approaches for CSS/layout, but you’re playing games with the word “framework”, and it isn’t helping. Treating frameworks as equally good, or calling any uniform approach to be a framework, is weak sauce.

    I’m not sure “framework” is the wrong word, though. ”

    It’s called “Blueprint”, tho’… ;)

    These things we’re talking about are “frameworks,” but you’re totally right that that word seems to instill a great dear of fear, uncertainty, and doubt in a lot of people. ”

    The FUD you’re seeing might come from the very real downsides associated with frameworks - choosing the wrong one is at best very expensive and at worst can be enough to doom a project. If people don’t get burned using Blueprint, you’ve done what you set out to do.

  96. 096 // Jeff Croft // 11.18.2007 // 4:49 PM

    …but you’re playing games with the word “framework”, and it isn’t helping. Treating frameworks as equally good, or calling any uniform approach to be a framework, is weak sauce.

    Thanks for having the balls to call me out on that, Bill. Most people don’t. I don’t really mean to play games with the word “framework,” but I can see how maybe I have, inadvertently. What I am really encouraging developers to do is find ways to abstract routine tasks out into reusable bits. That’s what Blueprint and YUI have done, and it’s more or less the same approach that back-end and JavaScript frameworks have taken, too.

    Whether you call that a framework or not, and whether you come up with your own reusable bits or adopt someone else’s is irrelevant to me. I just want to encourage developers to use this methodology to increase efficiency.

    If people don’t get burned using Blueprint, you’ve done what you set out to do.

    Well, not really. Let’s make sure this is perfectly clear: I did not release Blueprint, and I have no interest in whether or not people use it. I truly couldn’t care less. At the Journal-World, we wrote our own framework for us with no intention of releasing it. We didn’t think it was appropriate for other people to use, in the state it was in. Someone else picked it up and released it as Blueprint. I like it a lot — but then, the concepts within are mostly my own. Likewise, most people will probably prefer a framework that embodies their own concepts, instead of mine.

    So let’s not confuse people into thinking I’m “promoting” Blueprint. I’m not. I have no vested interest in whether people use it or not.

  97. 097 // Andy Clarke // 11.18.2007 // 5:40 PM

    Off topic, but Jeff, can you liberally sprinkle a few back-to-top links on your article pages please? Scrolling long pages such as this on an iPhone is a complete pain in framework. ;)

  98. 098 // Jeff Croft // 11.18.2007 // 5:44 PM

    FYI: I’ve posted a follow-up to this entry.

  99. 099 // Josh Nichols // 11.18.2007 // 6:03 PM

    All this talk about frameworks (or libraries) has got me itching to build one for my fellow campus Web developers. People are always bugging my office for templates (barf!). It might be enough to get the ones still scared of CSS to start using it. Although, they won’t be learning CSS from scratch — they wouldn’t anyway — at least they’d be using it! Once they become vested with it they’ll have to learn it.

  100. 100 // Malarkey // 11.18.2007 // 6:35 PM

    What’s not to love about instant cake mixes? (http://www.stuffandnonsense.co.u…) Hope that helps raise the tone of the discussion. ;)

  101. 101 // Jeff Croft // 11.18.2007 // 6:36 PM

    Thanks for lightening the mood, Andy. :)

  102. 102 // Jean-Philippe Encausse // 11.20.2007 // 6:30 AM

    This is the best location to ask my question :-)

    I think that CSS Framework are very interesting to normalize developement. The best part of it is they also use semantic normalized css classes like “even”, “odd”, … the next step will be microformat styling framework

    I’m working on a very powerfull CMS (Jalios JCMS) with a plugin architecture that let you do everythings (in fact too much things)

    Our main problem is: - On a side a designer will design a Portlet with XHTML/CSS in a Plugin - On a side an other designer will design a Portal template - On a third side a user will choose a Portal template with some portlets

    How to make it work together: the Portlet’s CSS and the Portal CSS ?

    • I think one part of the answer is CSS Frameworks
    • The other part is CSS 3 vars to handle color and font issues
    • And unfortunatly there is no magic ;-( there is glue to do

    What about customers coming with custom beautifull hard coded layout, templates, … ? And who wants this and this portlets ? Well that’s complicated … more glue to do …

    So … +1 for CSS Frameworks !!! ;o)

  103. 103 // eddie // 11.21.2007 // 3:20 AM

    I think it all depends on how big the site is, surely any developer can use common sense?

  104. 104 // Andy Gongea // 11.21.2007 // 1:43 PM

    Great job on Blueprint.

    And about CSS Frameworks I think that a Reset and some Typography guidelines are enough. The rest is up to the developer. 10x

  105. 105 // Christopher Olberding // 11.22.2007 // 8:48 AM

    At my position w/ my last company as the resident CSS guru using a CSS framework in all of our projects allow others to get comfortable w/ a particular style of coding, and to start projects themselves that I wouldn’t have to go rip up by the time it got to me. Now w/ my own company I had an opportunity to spend some time and make changes to which framework I was comfortable using. I did switch, and had to make significant changes at first so that the framework accommodated me and not nice versa but now I have a set of CSS that I copy over to a new project that save me a lot of hassle.

  106. 106 // Egor Kloos // 11.22.2007 // 2:46 PM

    It’s great to see this discussion about frameworks. One issue I can think of is that they often don’t fit very well. A css grid may not fit a particular design. A JavaScript library may not have the right media tools. A pre-set HTML template may not have the right structure for microfomats or whatever structure you want to use. So, I and many others write our own standardised front-end patterns. The frameworks we see today are basically the accumulation of years of web standards work by many web heads who love making web sites work. Bless them all. Frameworks we see popping up recently are very flexible, have many useful solutions but are not perfect. They’re not meant to be. They can’t be and they shouldn’t be perfect. Perfection in the end is up to you, the person writing the front-end.

    These days I find frameworks very useful as references in production or just to explain something. My advice is usually, “Mix and match from the best ideas on the web. Don’t just copy & paste, use classnames and ID’s your content warrants, don’t leave resets zeroed.”

    Now I where did I put my marmite sandwich?

  107. 107 // Mark Green // 11.25.2007 // 7:14 PM

    Hm, I cannot help but wonder why nobody has mentioned liquid layouts here. Have they come out of fashion?

    I’m typing this on a 27” Screen, 1920x1200 pixels. This very page uses only about 40% of my screen width (yes, 30% glaring white, left and right).

    As the spread of screen solutions is getting more diverse every day, with more and more users looking at 1920x1200 and up, I wonder how these fixed-width frameworks are supposed to account for that audience?

    950px, well, if that’s what facebook uses then I can only say: not impressed. It looks like fly squat on my screen.

    So, my gut feeling is, these frameworks are a step in the wrong direction. But I’d be curious to hear some expert opinions on it…

  108. 108 // Jeff Croft // 11.25.2007 // 7:23 PM

    @Mark: I think no one has mentioned the fixed vs. fluid because the concept of CSS frameworks in no way precludes the decision to make either fixed or fluid sites. A good framework will allow you to do either easily — and the ones that have been mention (Blueprint and YUI), do.

  109. 109 // Jeremy Ricketts // 11.26.2007 // 8:31 PM

    Yeah! And why haven’t we talked about non-semantic class names?? Or em’s vs % vs pixels for text sizing!? Or mac vs PCWTF!

    ;-)

  110. 110 // Jeff Croft // 11.26.2007 // 8:39 PM

    @Jeremy Ricketts: Don’t make me smack you. :)

  111. 111 // Tom von Schwerdtner // 11.27.2007 // 1:46 AM

    @Mark Green: Do any sites look good with a maximized window at 1920x1200?

  112. 112 // Abba Bryant // 12.09.2007 // 4:06 PM

    I have had great success with blueprint. If your fear is that using blueprint will lead to a less prolific understanding of the basics - that is rubbish. Anyone who has used blueprint for anything more than the basic example from google code needs to know what they are doing. CSS isn’t rocket science.

    Second for the people concerned with semantics in the class name - as I do - I simply go back after the site is done and remove the classes I am not using, and in my templates I will find the span-6’s and span-18’s etc and RENAME THEM in the markup and the stylesheet to give me that little smug satisfaction that they aren’t presentational now but are .primary-content and .sidebar-content. Then I dont have to argue with anyone about the issue at all.

    The last point. Blueprint doesn’t force a grid width. The supplied files might not account for a larger width off the shelf but come on people.. CSS should be a little tougher than basic math. Dust off the calculator and make your own larger grid if you need it - just because it wasn’t gifted to you in the framework doesn’t mean it isn’t really easy to do anyways and the time savings for the rest of the framework more than make up for it ( at least to me )

  113. 113 // C.P.A. // 12.16.2007 // 10:09 AM

    Some thoughts

    Frameworks can easy to development process - that’s a fact. I am most certainly pro frameworks, however, I find that they are in general not a framework but merely a set-up package. This made me think, along with an article written by Jina Bolton, the result came to me as a new kind of css framework and currently I am working these ideas out - they are simple.

    • A framework should set a standard for the rest of the css template
    • A framework should be small (compact in size)
    • A framework should be understood
    • A framework should be able to be given plug-ins (A method I am currently thinking of how to do it best - advise is always welcome)
    • A framework should be only foundation and not style anything really

    Take a look if you want I posed the url under my signature.

    @Jina and @Jeff

    Thanks for the writing - without it I would not have gotten the thoughts (And Jeff, you know girls first)

  114. 114 // gowner // 02.23.2008 // 4:30 AM

    All this talk about frameworks (or libraries) has got me itching to build one for my fellow campus Web developers. People are always bugging my office for templates (barf!). It might be enough to get the ones still scared of CSS to start using it. Although, they won’t be learning CSS from scratch — they wouldn’t anyway — at least they’d be using it! Once they become vested with it they’ll have to learn it.

  115. 115 // Empatheme // 03.26.2008 // 2:05 PM

    Beautiful teen girls www.porntubebestmovies3.tk

  116. 116 // ynw // 04.29.2008 // 5:15 PM

    I have to report my success in using Blueprint. I am a disaster with CSS layouts, but I can get decent results with it.

    I also have to report a pro CSS guy hacking Blueprint and rolling out his own reduced version of the framework to use in different projects.

    In both ways Blueprints has been a winner.

  117. 117 // Zlatko // 05.11.2008 // 11:05 AM

    After reading some of the above comments I see that experienced CSS coders hate this blueprint, but intermediate ones and newbies find it very useful.

    The benefits from my standpoint are that you can at least plan your content and design in a more grid-like and structured way, but code it with CSS in a usual way - not putting presentational CSS classes. So it’s absolutely useful, especially when designing news-like sites.

  118. 118 // Devin Cooper // 05.15.2008 // 7:53 PM

    Personally from reading this blog post I think what Jeff is saying is that frameworks are a step in the right direction. I am an experienced CSS developer and I agree with frameworks. I have developed my own which I abide by. If this is not what your saying Quote me wrong Jeff. I think anything new scares a lot of us standard compliant developers. Frameworks are snippets of coding reused over and over. Remember this!!!

  119. 119 // Oli Creare // 06.16.2008 // 1:40 AM

    I design and code websites and since i use CSS i rarely start from scratch, because i have the CSS code from other sites i can use bits from. It saves me a lot of time and time isnt what i have a lot of to code sites.

  120. 120 // Max // 06.28.2008 // 3:36 PM

    CSS a really helpfull at webdesigner work.

  121. 121 // carmen playboy // 07.06.2008 // 1:08 AM

    nice site. http://www.kdedevelopers.org/use… http://www.linkedin.com/in/carme…

  122. 122 // Firebubble Design // 07.28.2008 // 7:19 AM

    I’m english and I like and use css frameworks like all the designers I work with.

  123. 123 // SJL Web Design // 08.08.2008 // 2:17 PM

    I think claiming that british designer reject css frameworks is very ignorant. I’m a English and I do not use CSS frameworks, due to the fact when you have a high enough skillset you can work from a blank canvas. Especially when you are selling bespoke designs to your clients.

  124. 124 // 3stripe // 08.10.2008 // 3:45 PM

    I’m British and I love Blueprint!

    It helps me work smarter – as a front-end designer I am not well versed in CSS but with Blueprint I can get things built fast and know they will work.

    Coupled with Wordpress you can do a hell of a lot in not much time too.

  125. 125 // Mortgage AL // 08.18.2008 // 1:57 PM

    I think there may be some grey areas about the specifics of CSS frameworks. Meaning a UK designer (thanks jeff) like myself doesn’t completely understand the reasons for framework use and i am under the impression that it was an outdated technique.

    maybe you should shed some light brother!!

  126. 126 // Mystery Design // 08.19.2008 // 6:30 AM

    nice post. A good discussion on the uses of framework and it exemplifies the different techniques used across the pond.

  127. 127 // Sam Conditioning // 08.19.2008 // 12:15 PM

    I like to use CSS frameworks as it can save a lot of time when starting a design.

  128. 128 // Catering Pat // 08.22.2008 // 4:23 AM

    Sam, i agree the reason that i prefer to use css frameworks is to save time it also caters for all of need s.

    I would recommend the use of frameworks to anyone.

  129. 129 // Forensic Fran // 09.04.2008 // 2:17 AM

    Valid point Pat, I would also recommend the use of CSS frameworks as it saves a lot of time.

  130. 130 // andrey // 09.21.2008 // 2:52 PM

    http://mortgage-loan-info.987mb.com

  131. 131 // Nacho // 10.10.2008 // 7:19 AM

    I don’t use them because I don’t need them. Just give me eric meyer’s reset styles, and I’m ready to go.

  132. 132 // Timothy Long // 10.10.2008 // 6:49 PM

    Frameworks (may) devalue frontend development opportunities for quasi-coherent web-savvy folk, but without a doubt they speed up my production time.

  133. 133 // Juan Gotti // 10.12.2008 // 5:44 PM

    Honestly I’ve never used a CSS Framework before, and the reason is pretty simple: I like to do things (CSS and (X)HTML among others) the way I like, If something is not good enough or it’s simply a bad habbit or whatever, I wouldn’t be doing it and I’m sure that plenty of you feel the same way.

    With that being said, let’s move to the important part of my comment.

    There’s no need to take a personal battle against CSS Frameworks just because. It doesn’t matter if it makes CSS easier than even my father can learn to use it and any regular Joe can create a fully, valid, css document. No matter how fast and easy CSS Frameworks “work” nothing can threaten your skills, knowledge and reputation if you know your art and master your workflow.

    So please start acting like grown ups, team players,professionals fellow community members and always keep in mind that it’s always easier to win a battle if you do it with integity.

    Best of Luck.

  134. 134 // Mark - Driving Instructor // 10.30.2008 // 12:33 PM

    I agree with Timothy, there is a balance… sure they save time, but you will alway feel like you have cut corners and not quite made it as unique as you could of.

  135. 135 // Evdokia // 11.05.2008 // 7:37 PM

    And I liked, will be looking at your site.

  136. 136 // SEO Co // 12.14.2008 // 3:59 PM

    Interesting article, I have never used frameworks or blueprints as I find that they can sometimes cause more problems than they solve.

  137. 137 // Milton // 02.09.2009 // 7:06 AM

    I also agree with Timothy and Mark, that there is a balance, you shouldn’t necessary based a design around a pre made framework. However, if a design does use the same balance etc it can be a huge timesaver.

  138. 138 // jovani prom 2009 // 02.11.2009 // 5:44 AM

    professionals fellow community members and always keep in mind that it’s always easier to win a battle if you do it with integity.

  139. 139 // best log splitter // 02.22.2009 // 3:20 AM

    “I’ve read what you’ve written about CSS frameworks, and it sounds great…but [insert name of a usually-British CSS guru here] said they were bad. What do you think about what they have to say?”

    I agree, there are some professionals but some are not.

  140. 140 // Webtiful web design SEO // 02.25.2009 // 8:07 PM

    Great article, love it.

  141. 141 // Platering London // 02.28.2009 // 4:45 AM

    Whats not to love about CSS frameworks? everything! Only kidding, thought I would keep up the English stereotype you have built up here. I don’t use CSS frameworks as I don’t find it that hard, it only takes 5 minutes and I have the basic structure down. But for someone who isn’t so comfortable with CSS they can be god sends.

  142. 142 // Creative Hat Web Design // 03.31.2009 // 1 PM

    Frameworks are all about speeding up development time, resulting in an increased amount of billable work

  143. 143 // Landlords Steve // 04.08.2009 // 2:51 PM

    I love frameworks, they are all about cutting corners..

  144. 144 // Plastering London // 04.22.2009 // 2:24 AM

    You have to love shortcuts… who wouldn’t love CSS frameworks?

  145. 145 // <a href="http://www.bagkursorgulama.com" title="bagkur sorgulama, ssk sorgulama" target="_blank">Bagkursorgulama</a> // 05.03.2009 // 8:16 AM

    Bagkursorgulama

    te?ekkürler dostum.. eline sa?l?k bilgiler için….

  146. 146 // Web Design Warwickshire // 05.06.2009 // 2:47 AM

    I’m not a huge fan of CSS frameworks, it only takes 20 mins to structure a site in CSS so it is hardly a massive shortcut.

  147. 147 // Fireplace design // 05.14.2009 // 12:23 PM

    I’ve played around in the past with the blueprint framework, but at the time couldn’t get to grips with the grid layout. I’m not a web design expert by any means. I can see the benefit in using a framework though and will definitely have to take another look into the blueprint framework with designs needed on a couple of new sites I’m creating coming up.

    Jeff, do you think something like the blueprint framework is a good place to start for someone who is not the most advanced designer yet, but who will more than likely find themselves designing several websites in the future?

  148. 148 // ilahiler // 05.30.2009 // 9:24 AM

    I have actually used Blueprint for my latest professional project having coded my own CSS from scratch for years. I didn’t use it just for rapid prototyping because the actual work was the rapid prototyping. I’m thinking Agile Development here; code fast, iterate often. I was astounded - yes astounded - at how much of a difference it made to my productivity. I was able to produce the HTML and CSS is half the time, if not less.

    good nice :))

  149. 149 // dizi izle // 06.01.2009 // 1:59 PM

    agree, there are some professionals but some are not.

  150. 150 // yucel519 // 06.06.2009 // 3:31 PM

    http://jeffcroft.com/blog/2007/n…

  151. 151 // liseliler // 06.19.2009 // 9:44 AM

    that british designer reject css frameworks is very ignorant. I’m a English and I do not use CSS frameworks, due to the fact when you have a high enough skillset you can work from a blank canvas. Especially when you are selling bespoke designs to your client

  152. 152 // radyolar // 07.25.2009 // 12:30 PM

    Jeff, do you think something like the blueprint framework is a good place

  153. 153 // Gibbs // 08.10.2009 // 2:28 PM

    I haven’t really had the chance to see the complaints (against) but I thought I should sneak my thought in.

    Frameworks are great and both the concept and idea, if implemented correctly, can do wonders. In a scripting language like JavaScript, PHP etc etc there are routines that take too long and frameworks help in cutting down development time and making complex tasks easier.

    I’ve been using CSS for years so maybe it’s me being complacent but it’s “easy” much like markup and removes the “complex” tasks I mentioned earlier. Frameworks, in my opinion, have their own learning curve and for something as straight forward as CSS it makes little sense. It can also detract someone from learning.

    I’ve got nothing against frameworks and from what I’ve seen things are fine but for someone whose been confident in CSS for many years for me I think “Why?”. I can’t see any benefits for myself but working in a group is a different story.

  154. 154 // Bluestone // 08.18.2009 // 10:38 PM

    Have to agree CSS is so damn flexible it rocks.

  155. 155 // Timo // 08.30.2009 // 10:02 AM

    I am no big fan of CSS frameworks either. The reason is simple: I like to have full control of what my designs look like on screen, without any prefabricated components.

  156. 156 // Bernard Cornwell // 09.03.2009 // 4:58 AM

    I like a framework but thenm again im not a CSS expert, maybe we are all not as skileld as you timo.

  157. 157 // american outdoor fireplace // 09.17.2009 // 3:33 AM

    The well balanced project - basic base for achievement of success.

  158. 158 // Tanay | TJDzine // 09.29.2009 // 12:22 PM

    Wow! This is one long debate. I use my own framework, which I built off of some of the other ones, notably blueprint.

  159. 159 // Mike HDD // 10.05.2009 // 2:38 AM

    Jeff, do you think something like the blueprint framework is a good place to start for someone who is not the most advanced designer yet, but who will more than likely find themselves designing several websites in the future? I wonder?

  160. 160 // Eric // 10.12.2009 // 4:19 PM

    Business is business. Time is money. Baby needs new shoes.

    I can appreciate the arguments of CSS purists. I view them as liberal artists more than business people, in most cases. If you are a purist you’re not in it for the money…and that’s a good thing (for you). Purists keep business minded people on their toes.

    I’m 72.8% business. I work in the Web space for money. I really honestly do care how it works…but only as much as I need, to make money doing it. I’m not evil…I got bills. So Blueprint helps me to leverage my time and make better money. I contribute to bug reports and add value in bits and pieces as I’m making money by leveraging [insert framework name here].

    I only use Blueprint and jQuery for site construction. Why? Because they work! The sites pass W3 validation code tests, load fast, make customers happy, do nifty stuff, and make me money. I even have some time left to spend with my family because I don’t have to wrestle endless nights to get a frackin div to stay in place.

  161. 161 // Star Ruby // 10.14.2009 // 1 AM

    CSS framework has various disadvantages and almost all are mentioned here.

  162. 162 // Justin | Web Design Belfast // 10.19.2009 // 7:13 AM

    Ok - I’ve got to admit - I personally hate everything that makes web design easier. Call me what you will, but css frameworks are just another step towards a complete dumbing down of our profession. As a notepad handcoder I hate eveything from Dreamweaver to the 960 grid system. Our profession could nearly be taken over by a bunch of 9 year old kids - on a school business project!

    Enough griping as i go and work on an e-commerce system.

  163. 163 // Game of Thrones // 11.10.2009 // 8:50 AM

    I hadnt encountered then up until this artcile but as someone from a programmer background who learned HTML layout with tables CSS frameworks opsund exciting

  164. 164 // Headsets // 11.10.2009 // 8:56 AM

    Frameworks are things that usually work for people with limited knowledge, but can be frustratin and time consuming for people with the ability and experience to build things from scratch.

  165. 165 // Trading software developer // 11.16.2009 // 4:21 AM

    The ability to edit CSS directly from an IDE had a great impact on it. I personally think CSS is great and it let you write code with less duplicate, which should be the aim of each developer.

  166. 166 // Teeth Whitening Products // 11.17.2009 // 2:56 AM

    Its easier to use CSS frameworks for starting any web designing.

  167. 167 // articlemonkeys // 11.29.2009 // 7:04 AM

    good to see the framework developing. Nice 1.

    keep it up

  168. 168 // Christian Wallpaper // 12.01.2009 // 9:27 PM

    The advantages of CSS far outweigh the disadvantages. Great article!

  169. 169 // dolce and gabbana handbags // 12.03.2009 // 8:58 PM

    I am fairly new to CSS, I find it quite scary. I did buy a few books on Amazon just to get my self started, but it is a bit confusing. Can you recommend a book or online tutorial? I am building a blog on designer bags and a lot of the free templates do not match my style yet the ones you pay for are too expensive, so I was hoping to design one myself thanks

    Chloe

  170. 170 // ADOWP // 12.16.2009 // 11:50 PM

    Really all that the frameworks do are get you that initial structure and that’s the easy part of HTML and CSS. More power to you guys for giving us a great example of how to create our own frameworks for our internal systems.

  171. 171 // Web Blog // 12.18.2009 // 4:18 PM

    Good stuff, Rachel.

  172. 172 // Contemporary bedding sets elegant // 12.19.2009 // 1:48 AM

    I am have learning CSS for the past few months. I must say that as a designer, this framework is quite easy to work with.

  173. 173 // lpi // 12.19.2009 // 3:53 PM

    Good stuff amazing

  174. 174 // personalised gifts // 12.20.2009 // 4:21 AM

    Thanks for sharing wonderful information with us.

  175. 175 // C-map // 12.21.2009 // 12:35 PM

    You’re right! It’s just so smooth!

  176. 176 // Anti Aging Portal // 12.24.2009 // 3:33 AM

    I think it’s not right to say wrong on CSS Frameworks. I look it really good to use.

  177. 177 // festmény galéria // 12.30.2009 // 11:14 AM

    I’ve been thinking about frame works recently and how to create a typography style sheet where you would only need to change the font-size, line-height and margins once (on the body element) and all subsequent elements would cascade to maintain the vertical rhythm.

  178. 178 // Linkgyujtemeny // 01.02.2010 // 12:06 PM

    I think it all depends on how big the site is, surely any developer can use common sense.

  179. 179 // Martin // 01.07.2010 // 10:45 AM

    Really great, thank you!

  180. 180 // Smileys // 01.09.2010 // 4:59 AM

    What a pitty!

  181. 181 // Gesundheit // 01.09.2010 // 5:01 AM

    Thanx Man!

  182. 182 // Hausbau // 01.09.2010 // 5:02 AM

    Wow, this is great!

  183. 183 // Traumdeutung // 01.09.2010 // 5:09 AM

    as Ruhrgebiet ist mit etwa fünf Millionen Einwohnern und einer Fläche von etwa 4435 Quadratkilometern der größte Ballungsraum Deutschlands und der drittgrößte Europas. Es ist nach dem Fluss Ruhr benannt und stellt den dicht besiedelten Zentralraum des deutschen Bundeslandes Nordrhein-Westfalen dar. Mit seinem Umland bildet es die Metropolregion Rhein-Ruhr, in der über 10 Millionen Menschen leben. Von den Ansiedlungen am mittleren Niederrhein geht die Städtelandschaft nach Osten nahtlos in den Rhein-Ruhr-Raum und nach Süden in die Rheinschiene über. Die Oberzentren der Region entstanden bereits im Mittelalter entlang des westfälischen Hellwegs und erreichten ihre heutige Ausdehnung und Struktur mit der Industrialisierung im 19. und 20. Jahrhundert. Das Ruhrgebiet ist im Jahr 2010 unter der Kurzbezeichnung RUHR.2010 neben Pécs (Ungarn) und Istanbul Kulturhauptstadt Europas. Am 9. Januar 2010 eröffnet Bundespräsident Horst Köhler während eines Festaktes in der Zeche Zollverein offiziell das Programm.

  184. 184 // FIreplace designs // 01.12.2010 // 8:41 AM

    I would say one of your main issues is with the css framework.

  185. 185 // Orbán Tamás // 01.12.2010 // 2:26 PM

    I think there may be some grey areas about the specifics of CSS frameworks.

  186. 186 // Culinary School Chicago // 01.13.2010 // 1:42 PM

    Well i think that Many CSS frameworks don’t use any presentational class names. Second, CSS 3’s multi-column and advanced layout modules aren’t practical yet, so if you want to do complex, grid-based designs

  187. 187 // Blumen verschicken // 01.31.2010 // 4:19 AM

    Thanks, helpful article. As a webdesigner i know what you are talking about.

    Regards Blumen

  188. 188 // Reisen-Newsletter // 02.09.2010 // 5:26 AM

    Very nice, especially if you prefer working with CSS anyway ;-)

  189. 189 // annalea buntzen fakta // 02.10.2010 // 3:22 AM

    Some CSS frameworks use presentational class names for some of their components (YUI and Blueprint both use presentational names. thanks

  190. 190 // El Dorado Hills water damage // 02.24.2010 // 5:19 PM

    I’ve personally tried 960 GRID and it is a great piece of css framework, simple, light and easy to use. On the other hand I think Blueprint CSS it’s more complete with everything included perfect for big projects. I’m still trying both and figuring out which one to stick with. http://www.purocleanhomerescue.com

Tags for this entry
Links in this entry