Building Twitter bootstrap
alistapart.com
alistapart.com
A big thank you to all who worked on it!
Zurb has several other fantastic tools as well.
Bootstrap gives you a lot more than foundation does, but I find it very restrictive, it's hard to make a bootstrap site not look like bootstrap (if anyone can point me to some counter examples I'd be interested). This is unsurprising since bootstrap was designed by twitter for a consistent look across their internal tools.
So my verdict is, for internal tools / quick hacks, use bootstrap. For mockups and real products, use foundation.
phpnode got it right - I'd be more inclined to use Bootstrap in cases for which I have no design, or a simple design with latitude for many elements. Client extranet, back-end utilities, etc.
This is fairly different from say Blueprint/Compass where almost anything can be tweaked just with SASS varaibles.
I'd go a step farther and say that even the little bits you can change are prone to abuse and/or simple hard to get right for a number of non-designers. The generator system above actually just fills in some blanks, which isn't exactly the difficult part for programmers. It's what you fill in those values… My idea for some part of "custom" generator would be selecting a palette from a reasonable large number and then probably some basic font types and weights, similar to type-a-file[1]. Then add some customized icon set[2][3], and you've got something that's at least a bit more unique.
Using Blueprint CSS (and probably 960.gs too) feels like going back to table-based layouts. You set up columns, and extra wrapper divs. I don't know if it's a help or a hindrance.
That being said my experience is heavy on the forms portion of their styling, and there is an extraneous div.input wrapped around each element, but you'd often do something like that on your own anyhow.
Generally: Good Stuff
So I completely agree that using this (and most other CSS frameworks) is going backwards a bit in mixing layout with HTML. But I actually always did that. I just wish writers on the subject would help me not be confused by starting out by admitting that they are not following the notion of layout done in CSS.
Some people posted on here that Bootstrap is just for getting quick prototypes done, and then when things are stabilized, you should switch over to semantic, properly separated CSS. But if so, is that the intentions for all grid based CSS frameworks?
Using divs with classes of row, column, span_X, grid_x, et al. is, from a semantic standpoint, no better than using tables. And Bootstrap's CSS file is nearly 2500 lines, unminified with a 47K minified file size. That's a lot of overhead if you only need grid, typography and pretty forms.
It makes a lot of sense to keep the full CSS file linked while iterating the design/layout, but once it's in production, the grid classes can be replaced with semantic names and the extraneous styles removed. Here's an article I found on the 960gs homepage that covers not only combining/renaming classes, but also minimizing the amount of extraneous container divs: http://www.webdesignerdepot.com/2010/03/fight-div-itis-and-c...
A div exists to have no meaning. Using it for layout doesn't hurt anything except page size (unless there was a more specific element that you could have used accurately instead).
I don't understand how we're in the year 2012 and people are still repeating these "rules" without any understanding of why they might matter.
Consider this example based on the Bootstrap examples - you have three boxes containing stuff within a DIV with a class of 'row'. At some point in the future you decide to turn this into a column. Easy to do in the CSS - just change the width to the with of one item, and they'll stack on top of each other. BUT, now you have a column labelled 'row' in your HTML. This is a fairly simple to rectify example, but this problem is pervasive in grid systems.