I’ve been researching practices for creating cleaner and more efficient CSS. A debate that frequently arises is whether or not to use a CSS Framework and CSS Reset. A CSS Framework is a pre-prepared library of CSS to allow you to write standards-compliant code much more efficiently. These are packaged as external .css sheets and added into the header of your html document when developing. They provide a canvas for you to work with, so that you aren’t starting from scratch with every new site you create.
The Advantages
Frameworks can make the designing of tableless websites much easier and quicker, because some are based on a streamlined grid system – 960 is a good example. Frameworks can decrease development time, especially once you become familiar with one or customize it to your needs. They work well with code generators and visual editors. And, namely with a CSS Reset Framework, they ensure cross-browser compatibility, because all the compatibility issues have been worked out – it’s like creating a blank slate across browsers for your web designing. You can increase productivity, and avoid forgetting important pieces of code. Frameworks can also streamline workflow when working in a team – everyone is starting with the same base.
The Disadvantages
The obvious disadvantage is that you can lack flexibility, because in setting up a framework you are also putting certain limitations in place. You may be adding additional HTTP requests, which can add to your sites load time. And unless you are customizing these frameworks by taking just what you need (adding time to what is supposed to be an efficient process), you can end up with bloated code source. The CSS can not be set up semantically, which can make them less readable and editable in the future. Using frameworks that you did not create can also cause you to inherit someone elses bugs, or give you a base of code that you may not be familiar with.
Usage
Frameworks don’t have to be monster files with a ton of code. They can also come in the form of a css template, which are more unique and pared down. There are some tools that have been developed to help you create these files, such as YAML and blueprint. Yahoo offers some prepackaged solutions such as fonts, grid, and reset which can be bulky but comprehensive. And this is the wiki list for your resource.
Which side of the fence do you sit on? Are you for or against frameworks, and in what capacity? What’s your experience with them?