Wednesday, September 12th, 2007

Should we use CSS frameworks?

Category: CSS

Last month, we posted about the Blueprint & YAML CSS frameworks and reactions to the frameworks were mixed. Some folks absolutely loved it while others considered them a crutch for non-CSS savvy developers. So should CSS frameworks be used?

Gary Barber & Jonthan Christopher offer their perspectives on where CSS frameworks should fit.

Jonathan offered his opinion:

A CSS framework is a different story entirely. To me, CSS can not be framed. While many of the concepts, techniques, and ideas of creating websites with CSS can be repeated many times over, in my opinion, it is impossible to create pre-written documents that will help you in your process. CSS and (X)HTML go hand in hand. (X)HTML is a language semantic in nature, which is impossible to wrap up in the style of a framework.

as did Gary:

However this segmentation of the code base into various mini files, has benefits and drawbacks too. On the whole they are handy to work with, but very can add some real load to a server with the extra http request per page view.

Both writers do list the positive aspects of CSS frameworks and both appeared to like Eric Meyer’s Reset Reloaded baseline set of styles as a starting point for an application.

There’s much more insight in their postings so be sure to check out Gary’s post, Treading Lightly with CSS Frameworks and Jonathan’s post, Please do not Use CSS Frameworks.

Along the same lines, Agile Ajax’s Brian Dillard discusses how CSS3 might work to alleviate some of the cross-browser layout headaches that these same frameworks try to address:

No, my favorite CSS 3 spec is the Advanced Layout Module. (Thanks to my buddy Zack for alerting me to its existence.) This “concept album” exploring advanced layout strategies recently received its first refresh since 2005 (discussion here). For anybody who’s ever struggled with CSS layout, there’s a lot to love in this proposed templating system. Basically, the spec calls for a new type of display that combines the best aspects of table-based and float-based layout but provides far more flexibility than either.

Posted by Rey Bango at 6:00 am
20 Comments

++++-
4 rating from 39 votes

20 Comments »

Comments feed TrackBack URI

Hey there,

This is Caroline from SocialRank.

I am trying to get in touch with you but couldn’t find your email address.

We’re launching a new Web 2.0 site dedicated to Programming and we have started indexing your blog posts as part of our

content filter.

I’d like to send you an invite to a beta preview. Can you get back to me with your email address.

Mine is caroline@allnightcoder.com

Kind regards,

Caroline

http://www.SocialRank.com

Comment by Caroline — September 12, 2007

Why anyone should be AGAINST a CSS framework is beyond me, especially since we have standards, libraries and frameworks for almost every other aspect of webdesign.

Sure – one size can’t fit all – be most websites are pretty similar in structure, use of elements and even classes.

I am sick and tired reinventing the wheel or CSS code. Good standards / frameworks could make code much more interchangeable and expandable. It would also help ‘decode’ the work from fellow designers when you get to work on existing code.

BTW, Jonathan Christopher should have named his rant differently … still his conclusions are a bit off the mark for me.

Comment by orangeguru — September 12, 2007

I think we can argue over implementation details, but css frameworks are going to be a good thing.

For most small to medium sized sites the extra overhead isn’t going to be a problem. Developers for larger sites might have to have some automatic process that combines their css in production to reduce server overhead, but they should still use it in development.

Or perhaps I’m missing something that makes them less desirable.

Comment by Terrence Ryan — September 12, 2007

One of the main points here is that fledgling coders shouldn’t learn how to use a framework, they should learn and understand how the underlying CSS/XHTML works. (“Give a man a fish…”, or something like that). I wouldn’t call someone who relies on built-in Dreamweaver actions a Javascript developer, and I wouldn’t call someone who can’t code a multi-column layout without a “framework” an HTML developer.

I’ve been keeping tabs on Blueprint, and one of the other issues I’ve seen crop up is feature bloat. What started as a structural framework is slowly morphing into an all-encompassing design framework. In trying to become all things to all people, they missed their own point.

Comment by Bryan — September 12, 2007

I think you will find that people are not against a “framework”. But merely commenting that maybe the term framework is really the wrong use of the word. But that is a minor issue really.

Also in general people should be looking at aspects of the suggested starting templates and using the best elements that suite their working environments and various projects. Take what you need.

I agree use a “framework”, but understand it, be able to code it with out the “framework” if required.

In someways with the various CSS templates sites these frameworks have been with us for a while just in a more basic format. What we are seeing now is a formalisation of the process. Which is good.

Comment by Gary Barber — September 12, 2007

A CSS framework needs to be discussed in context. Is a CSS framework useful or even viable in a global context? I would argue no. Sites can vary greatly and there simply is no one size fits all solution. One of the main goals of using CSS should be reduce code and bloat. And when you try to create a one size fits all solution for anything, you introduce bloat. Are there best practices that should be used? Absolutely. Eric Meyer’s Reset Reloaded is a great example of that. And you can find countless best practices by sifting through the archives of A List Apart. But it’s up to the front-end developer to decide what’s best for each individual project.

Now if your working in the context of a single company who has a suite of web applications that are required to follow a standardized set of styles, then a CSS framework makes perfect sense. The CSS framework is used as the companies baseline standard for all their web application then added to with application specific CSS. But when I say CSS framework in this context, I’m not talking about something like Blueprint. This is a Framework developed the front-end developer that meets the companies standards requirements that can then be applied to company specific web properties as a baseline.

Comment by Jim Barraud — September 12, 2007

I think Blueprint is an impressive piece of work and that there isn’t really an issue of right or wrong, just one of preferences.

Having said that, I don’t really like Blueprint as it seems to take away the control that I want. I am concerned I will be left tracing specificies to find out why things aren’t working, but I may be wrong and it may just be that I am a control freak.

As an alternative I produced a proof of concept pre-processor to add some new layout units. The idea behind it was to allow margins and widths to be specified by how many columns I wanted to span, i.e. width:12gc;

I’m not sure if the idea is of any use and I doubt I will even use it, but it was an interesting idea nonetheless.

Comment by Andrew — September 12, 2007

One of the main points here is that fledgling coders shouldn’t learn how to use a framework, they should learn and understand how the underlying CSS/XHTML works.

And we all should learn to run our own Apache Servers, program our MySQl databases, write our own CMS with php and AJAX functions with JavaScript etc. etc. etc.

The very idea of frameworks is that you get stuff you CAN’T program yourself to the very last bit – and still expand / built on them.

I find this fundamentalist approach rather snobbish.

Comment by orangeguru — September 12, 2007

Frameworks are a crutch for those who don’t know any better. If you want to be a real web developer, then using frameworks (whether CSS, or JavaScript) are a bad way to go. You will learn bad habbits and you’ll only learn how to do things the framework way.

If you’re a system developer who happens to be developing systems for the web (incorrectly called web developers, IMO) then frameworks keep you from having to learn too much. This is a good thing.

Finally, if you’re an expert web developer, who is building an application where you want to be able to give “entry level” customers a standard, but branded look and feel, you should build your own CSS & JS frameworks that meet the needs of your application (and nothing more).

Comment by Adam van den Hoven — September 12, 2007

@orangeguru – If you’re going to call yourself a systems administrator, Yes, learn how to configure Apache. If you’re going to call yourself a programmer, YES, lean how to design a SQL database and use PHP.

If you’re going to call yourself a “front-end” developer – learn CSS and HTML. It’s not being snobbish, it’s a necessity. Otherwise you might as well call yourself a “Blueprint/YAML template designer”, because that’s all you know.

My point is, Blueprint != CSS

Comment by Bryan — September 12, 2007

Bleh. You should definitely learn CSS “the old fashioned way” but these frameworks are great. Having a perfected browser reset and some basic typography stuff makes getting started less of a pain. As for http requests, you should obviously merge everything into one file before deploying a site…

Comment by Will — September 12, 2007

Frameworks are a crutch for those who don’t know any better. If you want to be a real web developer, then using frameworks (whether CSS, or JavaScript) are a bad way to go. You will learn bad habbits and you’ll only learn how to do things the framework way.

If you’re going to call yourself a systems administrator, Yes, learn how to configure Apache. If you’re going to call yourself a programmer, YES, lean how to design a SQL database and use PHP.

Sure – and every morning when I need to shave my face I reinvent the razor as well.

You guys really seem to suffer from the “not invented here” virus?

So let me cut this short:

Anyone who uses any kind of framework, library, cms = looser!
Great guys like you who program everything themselves = winners?

Comment by orangeguru — September 12, 2007

You are totally missing the point orangeguru. Keep throwing out those unrelated analogies, though…

Frameworks/libraries/Etc can be useful. I use CakePHP to develop simple web applications. I’ve used jQuery to enhance my interfaces. I even use Eric’s reset method in my CSS development. But I feel comfortable using those things because I understand how they work, and can extend/modify them when I need to do something that they can’t.

If all you learn is a Framework, then you’ve got a built-in ceiling to what you can do. Learn how the framework works, and you can do more.

Comment by Bryan — September 12, 2007

I’m not a css designer, just a developer, so I probably won’t have the time to dig down into why and how some css works in one browser and not in another.

It will be nice to have a css framework that have these common quirks wrapped in to a few classes and what not like class=”png_transparency” Then again, with my limited knowledge of css, not sure if it’s something can be done like how Jquery did for javascript.

Comment by Liming — September 12, 2007

As an ASP.NET developer I can say that it’s perfectly fine to learn a framework. Sure, the argument that learning a framework means you don’t learn the basics has some merit. But I’d like to see you tell your boss that you need 4 days developing a rock solid cross browser treeview with drag and drop (in my case more like 4 weeks) as opposed to just using an off the shelf framework like Ext for that, and be done in 4 hours (or the ASP.NET TreeView and be done in 4 minutes).

Comment by Mike — September 12, 2007

CSS isn’t perfect and the gaping flaws, though largely closed by CSS3, are not yet closed in practice. Frameworks let you work around the imperfections quickly.

They are also very convenient when whipping up a quick intranet website. Not all uses of CSS demand perfection.

Comment by Leo Petr — September 12, 2007

@orangeguru

so, you prefer make all from scracth ?, i think if all developer do that, it’s not good for business, client only want code is delivered as fast as posible, so that’s why , we use frameworks, of course you must learn conceive behind frameworks too, just to better understanding how to use it

Comment by adit — September 12, 2007

If you work an environment where you have to meet deadlines, you often don’t have time to worry about what methods ‘real’ developers use. My main concern is whether CSS or any other type of framework gets the job done. … In the case of YAML, when I first saw it, I thought, “this is cool, it should help with rapid prototyping.” Then I actually tried it out on a project where I need to come up with a bunch of wireframes quickly. I ended up giving up on it quickly though, because once I started playing around with YAML, I realized that customizing its output was going to take me longer than writing CSS from scratch.

Comment by Will Peavy — September 13, 2007

Arguing whether we should or should not have CSS frameworks is silly given that every single one of us already uses at least one . It’s called the browser. Remember each and every browser out there has a group of default styles it applies to elements that makes things like p display as blocks and b display as bold. This is, of course, exactly what CSS frameworks do, also.

You can argue about what should or should not be included in a framework. But to argue about whether or not frameworks should exist is a little naive.

Comment by Joshua Emmons — September 13, 2007

I think it is not a matter for me if this framework can help us to design web using CSS…

Comment by bluedee — October 3, 2007

Leave a comment

You must be logged in to post a comment.