What is the best CSS Framework and are they worth the effort?
Asked Answered
S

23

106

Reading on another forum I've came across the world of CSS Frameworks. The one I've been specifically looking at is BluePrint. I was wondering if anyone else had come across CSS frameworks, suggest which is the best and if they are worth the effort?

Sjoberg answered 14/10, 2008 at 22:17 Comment(0)
H
140

CSS 'frameworks' are completely missing the point.

CSS is not like JavaScript, where you can include a base library/framework and then call functions and objects from it to do higher-level work. All a CSS framework can give you is declarative rules: some default browser-rule-reset stuff, some class styles to be forced to author your page to, and layout rules using 'float' and 'clear'. You can write that in a few lines of CSS yourself rather than pulling in the bloat of a hundred framework rules.

The 'grid layout' stuff in particular goes back to the bad old days of mixing your presentation into your markup. 'div class="span-24"' is no better than a table, you'll have to go back in there and change the markup to affect the layout. And all the frameworks I've seen are based around fixed-pixel floated boxes, making it impossible to create a liquid layout accessible on a wide range of window sizes.

It's backwards authoring, of use only for someone too scared to write a CSS rule.

Havener answered 14/10, 2008 at 22:45 Comment(9)
You haven't seen compass, then. That's exactly what it is. acts-as-architect.blogspot.com/2008/11/introducing-compass.htmlSing
I agree. I only use a css reset and develop my own styles pertinent to the application.Seen
I'm looking at compass now, or rather sass, or is it haml? Anyway, it's insane. It's just enough like CSS to be as hard to learn, and just enough not like it to be annoying if you already know CSS.Molliemollify
Sass, Haml and Compass are different things. Haml and Sass generally come together, Haml allows you to write html with less markup, Sass allows you to write css with less code as well use constants. Compass is just a Sass interpretation of the popular css frameworks out there.Scrim
seen by myself BluePrint and other frameworks fail in some browsers. The more experienced with CCS you are the more chances you will know what to override to make it work almost every where. Those "frameworks" just make life harder with unexpected results.Budweis
Nice reply :) "If you're scared of writing CSS, you're new to programming world"Rankins
Bad reply. When someone is looking for a framework, they want to get on to development based on, hopefully, years of experience and best practice of other developers. When somebody asks for a framework give them a framework and give them some warnings if you think it is bad practice. I use CSS framework because I don't feel like unbreaking IE's rendering. I know I'm going to boxed in to its semantics but that's a risk I'm willing to take to leverage the good stuff.Dori
You clearly don't understand the difference between a framework and a type of framework. Yes, there are some frameworks that implement page positioning with float and some that may not be terribly well written. But this doesn't mean that frameworks are not appropriate for CSS. You couldn't possibly know that unless you were familiar with an infinite set of use cases. It may be interesting to note that CSS itself is a type of framework if you consider the default elements of the DOM and CSS as a tool to extend these defaults. Your argument doesn't stack up.Byssus
You don't have to go into your markup to change the layout, you just redefine the meaning of "span-24". Yes, I have seen this done in 'production' CSS and, yes, it's a great demonstration of why grid frameworks should be taken with a pinch of salt.Electroplate
Z
27

So, nobody's responded to this question yet (although I've seen a few upvotes), so I am going to at least attempt to tackle the second question in this prompt.

CSS Frameworks are great; like any other framework, they reduce development time and let you get working immediately on site-specific design and CSS. They think about hard decisions so you don't have to.

Unfortunately, there are two downsides to using a framework (in general):

  1. The framework dictates the overall structure and mechanics of your CSS code. Now, I'm not talking about a CSS reset (these are useful in their own right, but they are not true frameworks); I'm talking about an honest to good framework, that has already made the decisions about what semantic tags you are going to be using in your document, etc. As such, you are made dependent on the framework, and when there is a bug in the framework, you will most commonly have to fix it yourself.

  2. Frameworks are not an excuse for being oblivious to cross-browser/advanced CSS issues. You will invariably run into them, just as you would working with a PHP or JavaScript framework. And you need to know how to deal with them. There is a common saying that you should write your own framework first, before using someone else's.

Taking a quick peek at Blueprint, I would not really call it a framework; maybe a reset with a few extra goodies on top.

Zeiler answered 14/10, 2008 at 22:49 Comment(0)
V
18

I've looked at BluePrint and a few others and the only CSS 'framework' I'd recommend is YUI Grids

Pros:

  • Written by one of the best frontend engineers out there (IMO) (Nate Koechley)
  • Very small. 4KB
  • Very flexible (1000 different layouts)
  • Supports fluid-width (100%) layouts as well as preset fixed-width layouts at 750px, 950px, and 974px, and the ability to easily customize to any number.
  • Supports easy customization of the width for fixed-width layouts.
  • Template columns are source-order independent, so you can put your most important content first in the markup layer for improved accessibility and search engine optimization (SEO).
  • Self-clearing footer. No matter which column is longer, the footer stays at the bottom.
  • Layouts less than 100% are automatically centered.
  • Somewhat semantic classnames (better than top, left, right, etc)

Cons:

  • Lots of extra markup compared to hand-written HTML and CSS
  • Takes some learning to figure out how to do complex layouts

As other have posted, there are no real 'frameworks' for CSS. Reset stylesheets help a lot with layout too. I usually stick with a reset stylesheet and go from there. But if you don't have a lot of CSS experience YUI Grids could save you some time.

Vesture answered 14/10, 2008 at 23:3 Comment(0)
S
16

Compass is an actual CSS framework in the sense that it gives you not only templates (both YUI and blueprint), but also reusable constructs and higher-level declarations while still giving you familiar CSS syntax.

Sing answered 2/12, 2008 at 22:54 Comment(0)
A
12

Take the time to study and understand (really understand!) a few css frameworks such as BluePrint and YUI, and css resets like Eric Meyer's. Then, take the time to put together your own reset and/or framework based on your work methods and the kind of sites you build.

Personally, I use most of the Eric Meyer reset with some classes and resets of my own, plus a few ideas from BluePrint and YUI.

I recently watched Eric Meyer give a presentation on CSS Frameworks in which he asked the question: "so which one is the right one for me?" He then answered the question by showing a blank slide. His point was, that there are certainly some useful concepts built into most resets and frameworks, but the one that will suit you the best is the one that you write for yourself (it's worth the effort).

Anthropo answered 15/10, 2008 at 19:38 Comment(1)
Probably the best answer so far!Retiform
S
12

Why use css 'frameworks'?

  • If you are pressured for time.

  • If you do not know css, and don't know someone who can write it for you.

  • If you are not overly precious about standards etc.

I know programmers who have been really happy to use blueprint or 960, as it allows them to put together a layout on their own, without turning to a front-end developer. This is ideal for personal projects, or startups with limited resources.

If you have decent knowledge of CSS already, then presumably you have a decent library of stock layouts already, so you clearly won't need a framework.

However, if you're a beginner and just need to get something up and running, then you might turn to a framework, as it makes basic layout much simpler, and tackling browser compatibility also.

Having said all that, many frameworks out of the box do make use of some horrible class names etc. I know of some websites that have taken a framework as a starting point and then customised it with their own class and id tags. But clearly there's a bit of work involved in that rewrite too. Using something like Compass, as mentioned above, does help to get around that.

So, CSS frameworks - they can save you time, at the cost of semantics. They might also hurt your knowledge of CSS, but that is more up to how much you invest in learning the subject in general. Whether you make use of them is up to you.

Scrim answered 21/4, 2009 at 9:45 Comment(0)
B
9

You'd have to ask yourself how effective the available frameworks are at solving your problems. Do they meet your requirements?

By using a framework, you can set some rules or details at the pixel level and devote the rest of your time to implementing and producing. It's a massive productivity boost. If you find yourself spending time adjusting things by a few pixels late in the project (micro managing the design), it's a sign that a framework can be useful.

Tip #17 in The Pragmatic Programmer says: "Program close to the problem domain". Using a layer of abstraction can get you closer to solving the real problems of layout. For example: you might be able to concentrate of enhancing the user experience with the extra time you have rather than minor adjustments of pixels.

This is not to say you must sacrifice quality for quantity. It's about efficiency.

On a recent project, I made my own framework because we had very limited resources and the popular frameworks didn't do what I wanted. Then, I set up the design team's PSDs to snap to the same grid I deployed.

A framework doesn't have to be any particular implementation of CSS. It doesn't have to be something bloated you downloaded from the interweb or something implementing outdated ideas. It's just a technique for getting a job done. I wouldn't be surprised if some coders already have their own frameworks and don't even know it. In fact, if you consider the DOM as a set of default elements you extend with CSS, then that's a framework by definition.

Byssus answered 31/3, 2010 at 11:55 Comment(0)
B
6

I actually spent a good portion of the last 24 hours investigating this on my own, heh. My conclusion was that a nice reset (I used YUI Reset), and maybe something else to set baseline stuff (YUI fonts was worthwhile in my case; maybe the "extra goodies" of BluePrint would be in yours) is a good idea. But, a "framework"---which is generally something like YUI grids---is too restrictive, forcing you to use their class names, ids, etc. and rarely fitting into your site like hand-made CSS would.

So in short: resets seem pretty nice; it's good to eliminate all the variation in e.g. margin-vs-padding for lists, or paragraph spacing, or whatever. But that's as far as I would take it.

Bevel answered 14/10, 2008 at 23:28 Comment(0)
S
6

i haven't used it yes, but i think emastic may be a good alternative worth a check. it it is similar to blueprint in scope, but also supports elastic layouts (hence the name) and you can specify values in px, em or %, and even mix them.

Shofar answered 2/12, 2008 at 22:49 Comment(0)
P
5

Compass I think is amazing. Make sure you see the screencast.

I am using 960.gs for a few websites and find it very simple and easy and worth the effort. Saves me a lot of work on layout. Make sure to check the custom CSS generator which goes away with the fixed width of 960 pixels.

Provenience answered 9/6, 2009 at 23:9 Comment(0)
B
4

I think that this video presentation by Site Point CEO Kevin Yank will answer your question. I really recommend to watch it.

Buenabuenaventura answered 21/6, 2010 at 7:18 Comment(0)
O
4

Compass lets you rename your framework's classes and ids with your own semantic names, so you might want to check it out. It also provides access to stuff you just don't get with plain-vanilla CSS such as mixins.

I'm astounded by so-called "CSS experts" who criticize these tools without really having digged in and used them. Are they essential? No. If you like your own framework (you do have one of your own, right? A CSS framework is just a carefully defined library--everyone should be using one) then by all means, keep on using it. No one is forcing you to use other frameworks and I don't see people who are using frameworks telling CSS purists that they are "doing it wrong."

Criticizing frameworks from such a standpoint just reveals an insecurity as well as an ignorance. For example, the notion is laughable that a person would use a tool like Compass without knowing CSS. You realize, right, that a framework generally doesn't write all your CSS for you? You can still break out and write your own CSS within the context of most frameworks. In fact, if you don't know CSS you might get frustrated quickly.

For myself, I appreciate having a framework because it is already documented, tested by hundreds of other users, and I can apply my own classes and ids via Compass. If I need something that the framework isn't suitable for, then I'll code my own.

Os answered 19/11, 2010 at 3:7 Comment(0)
A
3

Matt Raible of AppFuse fame had a CSS Framework contest a while back to develop CSS Frameworks for AppFuse. The results are published here. There are a few variations and I have used some myself because I use AppFuse and find them very good.

I should add that these CSS Frameworks work well because they are used in themed applications. That is, if you stick to the rules then switching from one to the next is as simple as changing one value in a properties file.

Attendant answered 14/10, 2008 at 23:14 Comment(0)
R
3

I have used BluePrint with much success on a site (I could mention the site here but I am sure the post would be marked as spam!). I am not sure if I will use it in the future though because one of the ideas of CSS i thought was to not have layout logic hard coded. You shouldn't have css elements called span-24 and span-12 to define the layout but something like searchBox and mainContent. At least thats how I see it.

Rehearsal answered 15/10, 2008 at 4:27 Comment(0)
E
3

Good link I found : Top 12 CSS Frameworks and How to Understand Them

Encumber answered 12/3, 2009 at 16:18 Comment(0)
B
3

Here is my blog post about CSS Frameworks When to use CSS framework?

Bifarious answered 13/3, 2009 at 14:43 Comment(0)
L
3

The only way I know of to use a CSS framework and retain semantic markup is to use a higher-level abstraction. At the moment, Compass is the only one I'm aware of that's mature enough to use, but Nicole Sullivan seems to be doing some interesting stuff with her "Object-Oriented CSS" project.

I find Compass' clever use of Sass mixins to be brilliant, and a big step toward the Holy Grail of maintainable semantic markup. I don't think I'd want to use a framework like Blueprint or YUI without an abstraction such as Compass to keep presentation classes out of the markup.

BTW, there's a nice-looking CSS framework called Elastic that looks good enough that I'm considering adding it to Compass.

Leopardi answered 18/5, 2009 at 20:51 Comment(2)
Some time later, having thought further about this: I think that CSS frameworks like Blueprint are often barking up the wrong tree. CSS abstractions such as Compass, however, are essential to serious Web design work. CSS is too limited to really achieve what it was designed for (separation of markup and presentation) without a bit of help. Compass provides that help. (Maybe other libraries do too, but Compass is the only one I'm aware of.)Leopardi
Later yet: I'm now believing that you don't necessarily need Compass. What you do need is Sass. The abstractions Sass provides are extremely powerful and make CSS manageable as I explained in my earlier posts.Leopardi
E
2

I believe CSS is about simplicity. The goal is to have one or two places to check when you're referencing between the HTML and your stylesheet. Adding more lines, and especially lines that you did not write and are probably not that familiar with, will exponentially increase the complexity thereby volatility of the CSS code.

I would suggest your layouts as you write them and develop a generic template system from that. While I love making CSS more modular, often and depending on the design, your CSS may be very case-specific and not modular at all.

Eldon answered 15/10, 2008 at 4:6 Comment(0)
M
2

I've used Blueprint on a few one-off sites and it definitely saved time, primarily in cross-browser testing.

It definitely sucks adding presentation code to your markup, although on the bright side it's readable. While I love the concept of "you can redesign without touching the markup", if you're producing a site where that really isn't going to happen anyways and you just need it done yesterday, Blueprint is something to look at.

There are also tradeoffs in what types of layouts it can feasibly create though. If you wireframe the site from the start on a strict grid, it will be much easier to transpose into the framework with a minimum of fuss.

Mariahmariam answered 15/10, 2008 at 4:21 Comment(0)
T
2

I have used BluePrint and YUI but I always get frustrated with some of the names they give their id and classes.

To each their own, but I prefer doing things from scratch, but after a while you develop a process in which you will use your previous work and apply it to new projects and just make some tweaks to make the web site look the way you would like it to.

Be sure to use a good naming convention, just in case someone else down the road comes in to edit the css, then they will have a good idea what each style name is referring to.

Throaty answered 16/10, 2008 at 20:25 Comment(0)
O
2

Craig,

Compass is what you're looking for: it allows you to rename your Blueprint CSS classes like "span-24" with your own names. It also expands CSS functionality with variables and mixins. Truly, those that prematurely judge frameworks without having checked out Compass are "missing the point." It's sort of like those folks who told us years ago that we are missing the point by using CSS instead of HTML tables for our layouts.

-Matt

Os answered 15/12, 2010 at 5:7 Comment(0)
R
1

check out http://www.ez-css.org/. one of easiest and lightest css framework to work on. :)

Rasp answered 6/12, 2010 at 2:55 Comment(0)
D
1

Take a look to this demo: http://www.richstyle.org/demo-web.php This framework is based on idea that "HTML tags should be enough". I think re-usability is the most important factor for choosing a software component, including a web framework. For web frameworks developers, the more you commit to standards, the more you guarantee re-usability.

Dynamite answered 1/11, 2011 at 21:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.