The personal disquiet of

Mark Boulton

August 8th, 2007

Blueprint. A CSS Framework.

Over the past year or so, the industry has been mak­ing some great inroads into stream­lin­ing some of our pro­cesses. We have Micro­formats for stand­ard­iz­ing how we mark up cer­tain data. John Allsopp’s Web Pat­terns is gath­er­ing pace and recently Tantek et all star­ted work on solv­ing the ‘why do I always have to re-enter my user data in every social net­work­ing app?’ prob­lem, or the easier to say, Social Net­work­ing Port­ab­il­ity. These are all great and everything, but they have data at their core, not the present­a­tion of that data. Until recently, we didn’t have a usable sys­tem for cre­at­ing layouts.

That was until a Nor­we­gian chap called Olav Fri­ha­gen Bjørkøy released a CSS frame­work called Blue­print last Fri­day. The key dif­fer­ence between this and other frame­works is Blue­print has been cre­ated from a typo­graphic design basis. 

There are frame­works being used. Yahoo’s is one of them. I’ve tried using it in the past, but I’ve really struggled. It’s way too bloated (it’s huge!) for my needs. Accord­ing to Olav, this was one his gripes too. He’s there­fore cre­ated the Blue­print frame­work with these fea­tures in mind:

What a list! Now, if you just put the first point aside, the core fea­tures of Blue­print bring together some of the best typo­graphic design think­ing on the web over the past year or so. Eric Meyer’s reset code is in there, Richard Rutter’s Ver­tical Rhythm the­ory, Jeff Croft’s ideas on man­aging a CSS frame­work.

Going back to the grid—and this is what really interests me—Olav has used Khoi Vinh’s the­or­ies and prac­tice on grid design to great, prac­tical use. What is so import­ant about this CSS frame­work to me is that it has been designed to solve a design prob­lem, not a tech­nical prob­lem. As all great sys­tems, it has been designed to help and guide the designer. As you can tell, I’m already a big fan. 

Down­load it and Use it

What are you wait­ing for? Down­load it now! For more on the insights into this excit­ing new CSS frame­work, Khoi has a great inter­view with Olav. Olav also writes a blog.

51 Responses to “Blueprint. A CSS Framework.”

  1. Phil Norton said on: August 8th, 2007 at 3:38 am

    Great find Mark!! I’ve star­ted to play with the excel­lent Code Igniter, and I can see that a CSS frame­work would help speed up devel­op­ment time even fur­ther! Will be down­load­ing this ASAP!!

  2. Peter Holloway said on: August 8th, 2007 at 4:14 am

    Thanks for bring­ing this to my atten­tion, Mark! It is just what I need. I’ve already read most of the art­icles that the frame­work is based on, and have star­ted using Eric Meyer’s browser reset. To have it all in one place is just fantastic. 

    Now, I just need another new cli­ent with a pro­ject to test it out on… ;)

  3. Steve said on: August 8th, 2007 at 4:24 am

    Like Peter, I’ve already read most of the art­icles this is based on, and it looks really good.  Unlike Peter, I have a big pro­ject to test it out on.  

    How­ever, “Blue­print has not yet been tested in every browser. Please do not use this frame­work in any pro­jects of grave import­ance at this time.” — I’m cur­rently weigh­ing up whether the amount of grief I might encounter due to this, will be less than the amount of grief I would encounter due to not using it and, ulti­mately, hav­ing to rein­vent the same wheels myself. 

    I sus­pect it’s worth it but will that help me if the whole thing falls apart and my boss points at that dis­claimer and asks WTF I was thinking…!

    PS.  There’s no † sym­bol next to the email field, but it won’t let me sub­mit the com­ment without it?

  4. relative said on: August 8th, 2007 at 6:11 am

    I know IE7 has sup­port for res­iz­ing px val­ues, but is it already being recomen­ded we switch back from em?

  5. Ryan Roberts said on: August 8th, 2007 at 7:49 am

    Bril­liant I’ll give this a go, I recently developed my own frame­work but due to lack of time I’ve not been able to get it work­ing quite as well as it should do.

  6. Neil Bradley said on: August 8th, 2007 at 8:20 am

    The sample web­site that they have for Blue­print doesn’t dis­play cor­rectly in IE 6.0. The right side­bar dis­plays under­neath the main content.

  7. Scott Jungling said on: August 8th, 2007 at 8:23 am

    I keep see­ing people state that the Yahoo frame­work is huge and bloated which is very mis­lead­ing. The YUI CSS “frame­work”, which includes Browser Reset, Basic Typo­graphy, and Grids, weighs in at about 5.1KB unzipped. With gzip com­pres­sion and cach­ing you’re look­ing at under 2KB. Now, gran­ted, the Yahoo “frame­work” might not be as extens­ive in terms of grid pos­sib­il­it­ies, or as refined in terms of typo­graphy, but it still provides a very good start­ing point for 5.1KB.

  8. Mark Boulton said on: August 8th, 2007 at 8:32 am

    Good point Scott. I think, in hind­sight, one of the bene­fits of using this instead of the Yahoo! lib­rary is not one of size for me—it’s more about the approach­ab­il­ity of the frame­work com­pared to the Yahoo framework. 

    Point taken though, Yahoo’s lib­rary is not that big.

  9. ZenBug said on: August 8th, 2007 at 8:46 am

    But isn’t there some­thing to be said about cus­tom­iz­ing your code rel­at­ive to your web­site?  I mean every­one keeps talk­ing about redu­cing bloat, but if a frame­work claims to be applic­able to all your sites — albeit as a start­ing point — isn’t it bound to be bloated? 

    Wouldn’t it make more sense to name select­ors accord­ing to the spe­cific ele­ments to which they refer within the con­text of their web­site?  Like class=“album-section” rather than some­thing con­tex­tu­ally mean­ing­less like class=“column span-2”

    I guess that doesn’t accord with “Web Pat­terns”, but some­how it appeals to me.  I could of course go in and rename everything, but then what’s the point in using the framework?

  10. Ryan said on: August 8th, 2007 at 9:07 am

    I’ve been con­sid­er­ing the same point as Zen­Bug. While I see the value of a css frame­work, it cer­tainly con­trib­utes to class bloat and has no regard in terms of semantics. I real­ize an id could take care of the lat­ter point but the former still remains unsolved for me.

    With that said, I still like the progress. 

    I could of course go in and rename everything, but then what’s the point in using the framework?

    Per­son­ally, I don’t see a prob­lem with this. I have my own basic frame­work that has taken a lot of time to build. Renam­ing a mature frame­work would save loads of time.

  11. Frode Danielsen said on: August 8th, 2007 at 9:28 am

    As a fel­low nor­we­gian to mr. Bjørkøy, I must say this is a great piece of work. But I’m also a bit skep­tical about using such gen­eric lay­out spe­cific class names. It will make it a lot easier to do pro­to­types and play around with lay­outs though. 

    I also don’t quite agree with using pixels for line-heights. Font size is okay, though you might want to spe­cify it in per­cent­ages or ems for IE6.

  12. tyGos said on: August 8th, 2007 at 9:31 am

    “Let’s see if Mar­key likes it.…” “He won’t like it he hates everything…” Hey look at Mar­key…

    He Likes IT!

    Save some for us Markey!

  13. Mark Boulton said on: August 8th, 2007 at 9:35 am

    I don’t hate everything. Bad tea and cel­ery. That’s about it.

  14. Wilson Miner said on: August 8th, 2007 at 2:53 pm

    Just because Richard’s a fel­low Brit, doesn’t mean he inven­ted ver­tical rhythm — that’s my woe­fully inad­equate pixel-based method lis­ted in the credits! ;)

    Kid­ding aside, it’s really excel­lent to see this level of interest and activ­ity around mak­ing the basics of sys­tem­atic design that much easier for every­one to imple­ment on the Web. Just like with any frame­work, it’s always a bal­ance between flex­ib­il­ity and “magic”, but the great thing about a CSS frame­work like this is that once you’ve got the build­ing blocks it’s easy to go off on your own or rework everything from the base up. 

    Plus, it seems like pro­jects like this will make great learn­ing tools for new and inter­me­di­ate web design­ers to build on what they already know without being over­whelmed by all the messy intric­a­cies and browser edge cases.

  15. Mark Boulton said on: August 9th, 2007 at 2:41 am

    WilsonOf course your name should have been up there Wilson, it wasn’t my inten­tion to pur­pose­fully omit it.

    What has impressed me is the level of com­ment­ing Olav has put into the files. Com­bined with the read me, it’s a great tool in under­stand­ing how com­plex lay­outs can be created.

  16. Wilson Miner said on: August 9th, 2007 at 12:07 pm

    Hehe, no wor­ries. Richard’s devo­tion to drag­ging good type­set­ting kick­ing and scream­ing onto the web has been stronger longer and more fruit­ful than mine. 

    Agreed about the value of the doc­u­ment­a­tion. Hav­ing writ­ten and tried to doc­u­menta few of these myself I know that the second part usu­ally falls by the way. It’s nice to see some of the hard work that goes into those internal pro­jects get some lov­ing care to turn them into resources for the community.

  17. Cosmin Dorobantu said on: August 10th, 2007 at 6:51 am

    I sub­mit this to your atten­tion:

    http://www.rightclick.ro/archives/launch-of-stylus-css-framework-v01

    It’s also a CSS frame­work, you will find it more approach­able & more access­ible.

    Thank you.

  18. Mae said on: August 10th, 2007 at 9:49 am

    didn’t yui’s reset css came first before blueprint?

  19. lengani said on: August 10th, 2007 at 4:57 pm

    There is one thing that scares me from view­ing css. Stuff people knew/know but didn’t pub­licly doc­u­ment> the seem­ingly obvi­ous > yui reset > eric’s reset (+ user com­ments) > blue­print > ?

    How far should attri­bu­tion go? if people con­trib­ute to Blue­print is file size going to increase? attribution’s not a bad thing but there should be a bet­ter way?

  20. Buzz27 said on: August 11th, 2007 at 11:41 am

    Sep­ar­a­tion of con­tent and present­a­tion is totally viol­ated by this method.

  21. Mark Perkins said on: August 13th, 2007 at 2:29 am

    Semantics! Semantics! Semantics! 

    This is obvi­ously a care­fully craf­ted piece of work but why oh why does every­ones long proffered ideals about the import­ance of semantic markup go instantly out of the win­dowwhen someone comes up with a way of mak­ing the task of cre­at­ing a web­site that little bit easier? 

    I know I’m just echo­ing points made above but I feel this is really import­ant. Cre­at­ing markup in this fash­ion is no dif­fer­ent from the com­edy example given in a pre­vi­ous post on 456bereastreet (sorry can’t find it now) where the html struc­ture was a whole bunch of divs, out­er­most with the class ‘table’, then class ‘tr’, ‘td’ etc. etc.

    class=“column-span-8″? aaarrrgggh­h­hhh! help me!

  22. Mark Boulton said on: August 13th, 2007 at 2:40 am

    You’re not wrong Mark. Semantics is incred­ibly important. 

    With that in mind, do you think a frame­work such as this is unwork­able as a frame­work? What struck me with Blue­print, was its valid­ity as a learn­ing tool and also as a tool which spoke in the same lan­guage as visual design­ers. This has been one of the biggest bar­ri­ers in the adop­tion of stand­ards by visual designers. 

    So, is there a way of intro­du­cing semantic value whilst still retain­ing this type of lan­guage and build­ing on a gen­eric frame­work? I’m not sure there is.

  23. Mark Perkins said on: August 13th, 2007 at 2:59 am

    I’m fairly sure that the idea whole concept of a css frame­work is mutu­ally incom­pat­ible with the ideal of well craf­ted, semantic­ally descript­ive HTML. Don’t get me wrong — this may be a valu­able learn­ing tool but I’m not sure it has much of a place in the every­day tool­box of pro­fes­sional web designers. 

    Dreamweaver’s WYSIWYG editor makes it pretty quick to cre­ate webpages too, but 99% of true pro­fes­sion­als would never use it — in part because of the non-semantic vomit that it turns out as an excuse for code. 

    People should look at the ideas behind pro­jects like this — ver­tical rhythm, typo­graphy etc and learn how to do it them­selves — not just short­cut the pro­cess by stick­ing a load of someone else’s code into their pro­jects. Teach a man to fish and all that!

  24. Simon Willison said on: August 13th, 2007 at 3:48 am

    <blocquote>I’m fairly sure that the idea whole concept of a css frame­work is mutu­ally incom­pat­ible with the ideal of well craf­ted, semantic­ally descript­ive HTML.</blockquote>I don’t think I agree. The HTML used by a site built on blue­print is going to be the same as the HTML used on a site where the CSS has been lov­ingly craf­ted by hand — you’ll still have the same divs nes­ted in the same way. All that dif­fers is what goes in the class attribute. 

    What you end up doing then is some­thing like this: 

    div class=“column first span-3 sidebar” 

    div class=“column span-2 navigation” 

    You don’t lose any semantics, but you gain improved main­tain­ab­il­ity of the code. 

    Semantic and struc­tural classes are not an either-or pro­pos­i­tion: you can have both.

  25. Mark Boulton said on: August 13th, 2007 at 4:24 am

    Ah, you see, I knew someone as smart as Simon would come up with a sens­ible ‘smacks hand on head and says “doh!”’ kind of answer.

  26. Mark Perkins said on: August 13th, 2007 at 4:42 am

    I see what you are say­ing Simon — that all we have to do is use this (blue­print) and then super­im­pose semantic class names over the top, but doesn’t it still bother you? Don’t we try to avoid using class­names like ‘bluetext’ in case one day it needs to be changed to pink? ‘column’, ‘span-2’ and the like just seem a little too close to present­a­tional descrip­tions to sit eas­ily with me. And I’m not con­vinced that hav­ing essen­tially present­a­tional terms like these in my markup makes a site any more maintainable. 

    Semantic and struc­tural classes are not an either-or pro­pos­i­tion: you can have both.

    Of course! But to me a true semantic, struc­tural class is one whose name describes the con­tent of the ele­ment that it is applied to, whilst it’s rules determ­ine the styl­ing and pos­i­tion (the struc­ture) of that element.

  27. Simon Willison said on: August 13th, 2007 at 4:52 am

    To be hon­est it does bother me — but what both­ers me more is how incred­ibly dif­fi­cult it is to write­m­ain­tain­able CSS that can be updated and man­aged by a team of people. I’m con­vinced that true sep­ar­a­tion of con­tent and present­a­tion using CSS is a myth — out­side of aca­demic exer­cises like the Zen garden it simply doesn’t work, and you always end up need­ing to update your HTML in line with your CSS. Dynamic gen­er­a­tion of HTML using server-side tem­plates is a much more effect­ive way of solv­ing that problem. 

    If we’re dynam­ic­ally gen­er­at­ing our HTML, the ques­tion boils down to what we can do to make our client-side code main­tain­able, access­ible and effect­ive across mul­tiple devices. Struc­tural class names appear to cover all three bases, so it’s hard to come up with a good argu­ment against them other than “they make me feel uncom­fort­able”. You can still use the semantic classes as well — inter­est­ingly, the Micro­formats com­munity have been advoc­at­ing the fact that you can add micro­format classes to exist­ing classes and markup for years.

    The fact that we are hav­ing this dis­cus­sion at all illus­trates a fun­da­mental prob­lem with CSS. If CSS had some kind of macro sys­tem the solu­tion would be obvious: 

    div class=“nav” 

    cssmacro(’nav’, ‘column span-3 prepend-1 first’) 

    But in the absense of such a thing, adding struc­tural classes dir­ectly to our markup appears to be the best alternative.

  28. Mark Perkins said on: August 13th, 2007 at 5:43 am

    I sup­pose it is just the pur­ist in me speak­ing, and I can see the applic­a­tion of some­thing along these lines in big­ger, dynam­ic­ally gen­er­ated, multi-person edited envir­on­ments, as you describe. 

    But smal­ler pro­jects? Smal­ler sites with just one or two people work­ing on them? I would urge people in that situ­ation to not just pick up a frame­work as an altern­at­ive to gain­ing the know­ledge and skills to cre­ate lay­outs like this them­selves. For sites like these the end res­ult will be more con­cisely semantic markup and an advance in per­sonal abil­ity of the per­son cod­ing them. 

    Any frame­works of any kind, css, javas­cript, php or oth­er­wise are best and most effect­ively employed from a pos­i­tion of know­ledge rather than to fill the gaps in a person’s knowledge.

  29. Simon Willison said on: August 13th, 2007 at 6:12 am

    That’s some­thing I agree with entirely: a CSS frame­work is no replace­ment for know­ing CSS, in the same way that a JavaS­criptor PHP frame­work is no replace­ment for know­ing the nuts and bolts of those lan­guages. Unfor­tu­nately there’s no way to intro­duce a tool for experts without less exper­i­enced users using it out too, but I don’t see that as a reason to avoid expert level tools altogether.

  30. Richard Northover said on: August 13th, 2007 at 7:56 am

    I agree with Simon on the points above. Life’s a trade-off, and there’s some really great bene­fits avail­able here which can’t be ignored. 

    If we’re con­cerned about the sep­ar­a­tion of con­tent and present­a­tion (which I have to admit, part of me is), it occurs to me that we could lit­er­ally com­bine the ‘sep­ar­a­tion prin­ciple’ approach and the use­ful­ness of a CSS grid frame­work with some­thing like 

    div id=“nav” class=“column span-3” 

    div id=“main” class=“column span-5” 

    etc. 

    That way, we have both semantic mean­ing (in the id) and the less-semantic grid inform­a­tion as well. You could apply cer­tain key styles to #nav and #main, and leave the grid lay­out stuff cleanly to the frame­work. In a hypo­thet­ical site, remov­ing the grid classes would leave a per­fectly accept­able, designed and branded but grid-free, lin­ear­ised lay­out. Sep­ar­a­tion is still there. Sort of. 

    It’s a bit like Jeremy Keith’s idea of ‘plug­ging the holes in CSS’, in his case using JS. In this situ­ation, until some­thing like the css­macro fea­tures that Simon men­tions arrives (which won’t be soon), using classes in this way might be a prag­matic way to fill in the gaps.

    It might feel bet­ter to have a quick way to isol­ate or search and replace your frame­work classes, so that they truly worked like add-ins to the semantic HTML rather than intrinsic parts of it. Hmmm.

  31. G. Hopper said on: August 13th, 2007 at 8:23 am

    Mark (Per­kins), if you study the code closely it doesn’t use class=“column-span-8″, it uses mul­tiple classes and as Simon said you can still keep it semantic­ally cor­rect, so it’s not really any­thing like “divi­t­itis” — like you’ve mentioned. 

    Using those class names doesn’t make semantic­ally cor­rect HTML any less semantic, or am I miss­ing something?

  32. Simon Willison said on: August 13th, 2007 at 8:27 am

    It might feel bet­ter to have a quick way to isol­ate or search and replace your frame­work classes, so that they truly worked like add-ins to the semantic HTML rather than intrinsic parts of it.

    I’ve been think­ing the same thing. One of the best argu­ments against struc­tural class names (one which I haven’t seen any­one raise yet, sur­pris­ingly) is that they break down if you try to serve up media stylesheets — for mobile devices for example. 

    One way of solv­ing that would be to include a pre­fix on the struc­tural classes that reflects which media type they are rel­ev­ant to: 

    div class=“navigation screen-span-3 screen-prepend-1 mobile-span-2” 

    Then the CSS file for the screen media type would define the screen-* classes, and use them to lay out the page for screen view­ing. A sep­ar­ate mobile CSS file could tar­get the mobile-* classes.

    It’s a bit verb­ose, but it seems to tackle the screen/mobile prob­lem. Per­son­ally I prefer the idea of serving up a mobile-specific site from the same backend con­tent though, since the needs of mobile users dif­fer from reg­u­lar users in more than just presentation.

  33. Mark Perkins said on: August 13th, 2007 at 8:42 am

    I think I am bat­ting for the wrong team on this one! ;-) 

    In my eyes being semantic­ally ‘cor­rect’ has to some degree also to do with being semantic­ally con­cise. If you drown your markup in class­names with one poor semantic one orphaned some­where in the list then I am not sure that is ‘semantic’ in the true sense of the word.

    But I think one of my main issues was the present­a­tional smell that the class names inev­it­ably gave off. 

    I really wasn’t try­ing to writeoff Blue­print alto­gether — merely sug­gest that we have to be care­ful that frame­works like this don’t undo the hard work done by the stand­ardis­tas in get­ting people to under­stand and apply the concept of markup that describes the con­tent and not the presentation. 

    Of course you can add in more class­names to a blueprint-ed site to give them more mean­ing, but I would say that it is highly likely that a lot of the people who down­load it and use it would not even think of doing that, and instead con­struct their markup using only the non-semantically descript­ive blue­print terms. 

    I guess all I really wanted to do was issue a warn­ing that frame­works like this should be used with cau­tion, and that we are care­ful not to let the stand­ard of our markup slip by blindly using power­ful tools without pause for reflection.

  34. Mike Stenhouse said on: August 13th, 2007 at 8:44 am

    I’ve found that frame­works tend to work within the scope in which they were con­ceived. I used mine on dozens of sites within the main­stream com­mer­cial genre but I’ve always had to go back and start again for apps. I sus­pect the same will be true for the Yahoo one and Blue­print. Still, con­ven­tions go a long way… 

    I sus­pect that the magic required to pro­duce some­thing flex­ible will be a hindrance to begin­ners. I wouldn’t like to have learned Javas­criptby read­ing the jQuery source, if you see what I mean. Once you’re over the basics though, it looks like Blue­print rolls in a lot of best prac­tice points so I reckon it’ll come into its own with more exper­i­enced devs.

    On the semantics front, I tend to use a hybrid of semantics and struc­tural nam­ing. You’ll find class=“clearfix” all over everything I do, for example, but dis­creet por­tions of con­tent get a use­ful id (e.g. search, nav, footer). Then ele­ments will get gen­eric class mod­i­fi­ers (e.g. high­light, advert, wid­get, mes­sage) to get them prop­erly styled.

  35. Nathan Borror said on: August 13th, 2007 at 1:42 pm

    Blue­print pro­motes lazi­ness. (I’m allowed to say that because I am one of the ori­gin­at­ors of a lot of its code and meth­od­o­lo­gies). My biggest beef is with the Grid styles. The rest are a god­send, how­ever, the grid styles greatly frus­trate me because they pro­mote class bloat. After using it dur­ing its cre­ations and for a few months after I turned away because I felt like I was using tables all over again. 

    It really isn’t that hard to define a site lay­out with columns using proper semantics nor is it bad for the leg­acy of the site. 

    New­bies: use Blue­print, get a feel for what’s going on, then take some Gas-X and writey­our own CSS.

  36. Mark Boulton said on: August 13th, 2007 at 2:06 pm

    Blue­print pro­motes laziness.

    I think that’s a little harsh. 

    After fol­low­ing the com­ments on your own blog Nathan, it’s clear that Blue­print has its place. Almost cer­tainly, a frame­work such as this can­not replace well craf­ted, semantic­ally rich HTML on a small site. How­ever, after work­ing at the BBC for years and try­ing to imple­ment some sort of sys­tem there, for hun­dreds of sites, I know some­thing like this would have been very useful. 

    As a com­monly shared lan­guage amongst design­ers and developers, some­thing like Blue­print, or any other CSS is valid. Oth­er­wise, what’s the com­mon terminology?

  37. Nathan Borror said on: August 13th, 2007 at 2:19 pm

    Seems like harsh­ness is the only thing that draws atten­tion these days :)

    If you’re work­ing with a suite of sites like the BBC’s or even the LJWorld’s it only makes sense to develop a com­mon lib­rary of styles. The prob­lem I began to notice was all our new sites looked the same. They star­ted tak­ing on the same char­ac­ter­ist­ics of LJ which kind of bothered me. I attrib­ute it to the ease of lay­ing some­thing out with exist­ing code. 

    Is this a bad thing? I dunno, com­mun­ism sorta sucked. (excuse my harsh­ness, I just had a double espresso)

  38. Overrider said on: August 14th, 2007 at 10:10 am

    I could see the bene­fit if the frame­work were actu­ally a frame­work (i.e. a light­weight scaf­fold base) — but blue­print looks like a fully fledged (yet open source) web­site template. 

    Pretty much any­thing you might want to change to cre­ate your own web­site will involve a large amount of code duplic­a­tion and overhead. 

    Per­son­ally I think the semantic issue is moot — data is abstrac­ted any­way, but how well does the work as a frame­work on a real web­site — how much css is going to be rewrit­ten and duplic­ated. I think this is more per­tin­ent to the suc­cess of the framework. 

    Are there any pub­lished goals for blue­print? Its an excit­ing idea, but I atm can’t tell the dif­fer­ance from any other template…

  39. Jeff Croft said on: August 14th, 2007 at 11:55 am

    The prob­lem I began to notice was all our new sites looked the same. They star­ted tak­ing on the same char­ac­ter­ist­ics of LJ which kind of bothered me.

    I would agree that htis was a prob­lem at the Journal-World, but I’m not so sure I agree that it was because of the framework. 

    > I could see the bene­fit if the frame­work were actu­ally a frame­work (i.e. a light­weight scaf­fold base) — but blue­print looks like a fully fledged (yet open source) web­site template.

    That’s def­in­itely not accur­ate. It’s abso­lutely a frame­work and not a template.

  40. Overrider said on: August 14th, 2007 at 3:03 pm

    I sup­pose my essen­tial point is that a frame­work shouldn’t get in the way of the goal. My fear is that blue­print looks like its going bey­ond the basics and too far into the area of style for many ele­ments that will need to be over­riden in a work­ing site. 

    The idea behind the grid is a very good solu­tion and very intu­it­ive, but it is only one of a thou­sand options that may need to be called upon, even a slight devi­ation would cause ter­rible code bloat. –Over­ride it and you have lost the bene­fit a frame­work should offer you. That’s the big one, but you have to reset lots p are pre styled to be jus­ti­fied, that is not some­thing that should be defined as it should be left to the user to choose — there are many many examples for this. 

    I’m just not con­viced it is a frame­work in the sense that it over­steps in many ways. It seems to me to be sev­eral some­what agreed upon com­mon set of prac­tises that will need con­sid­er­able cus­tom­isa­tion. A frame­work, imo isn’t some­thing that needs to be par­tially dis­mantled for every project.

  41. Jeff Croft said on: August 14th, 2007 at 6:44 pm

    I sup­pose my essen­tial point is that a frame­work shouldn’t get in the way of the goal. My fear is that blue­print looks like its going bey­ond the basics and too far into the area of style for many ele­ments that will need to be over­riden in a work­ing site.

    I agree that the frame­work should not go bey­ond the basics and into much style that needs to be over­rideen. Hav­ing used Blue­print, I don’t really think it crosses that line. But I guess everyone’s “line” is in a dif­fer­ent place. 

    The idea behind the grid is a very good solu­tion and very intu­it­ive, but it is only one of a thou­sand options that may need to be called upon, even a slight devi­ation would cause ter­rible code bloat.

    If you don’t need the grid, don’t include grids.css. 

    I would agree that one essen­tial peice Blue­print is cur­rently miss­ing is a way to cus­tom­ize the grid. That is, to be able to say, “I want 10 units of 80 pixels each with 30 pixel gut­ters.” When we built the grids com­ponenet ori­gin­ally at the Lawrence Journal-World, it had this abail­ity, through a Python scriptthat used Django tem­plates to gen­er­ate the grids.css file. While this worked won­ders for us, it’s prob­ably not the ideal solu­tion for inclu­sion in Blueprint—Blueprint shouldn’t have a require­ment of Python or Django. But, some­thing along those lines is essen­tial, and cur­rently missing. 

    I guess I’m not sure what you mean by “over­ride” the grid. If you’re say­ing you want a dif­fer­ent grid, then yes, Blue­print is not flex­ible enough for you today. If you’re say­ing you want to use the grid, but have a chunk of HTML that doesn’t align to it, Blue­print def­in­itely won’t get in your way of doing that.

    I’m just not con­viced it is a frame­work in the sense that it over­steps in many ways.

    If it over­steps your per­sonal lines, that’s fine. No one is requir­ing you to use it. It’s just one tool for get­ting a job done. If it doesn’t do what you way or work well for your par­tic­u­lar job, find (or cre­ate) another tool. 

    We cre­ated the grids com­pon­ent because it was extremely well-suited to the job we were doing in Lawrence. We never expec­ted any­one to release it pub­licly. As such, it def­in­itely may not fit other jobs as well. If it works for you, aswe­some. If not, just ignore it. 

    A frame­work, imo isn’t some­thing that needs to be par­tially dis­mantled for every pro­ject.

    I agree. In my opin­ion, you should never have to modify the files con­tained in the frame­work. You may have to over­ride some default set­tings (you cer­tainly do in Django and other web app frame­works), but never actu­ally modify the files. Blue­print can, and should, be used this way.

  42. Overrider said on: August 15th, 2007 at 4:46 am

    Auto­gen­er­a­tion of the code is obvi­ously one of the essen­tial parts that is miss­ing to make it a truly flex­ible framework. 

    I can ima­gine using sass (or someother script­ing lan­guage) to gen­er­ate the columns.

    !colunm = 60

    !gut­ter = 5

    Span-2 = (!column*2 + !gutter*1) + !unit 

    I think grid.css is the most inter­est­ing part of blue­print, but as a static files that might need to be overid­den will cause prob­lems. I can ima­gine hav­ing a selec­tion dif­fer­ent options (for each area), but ulti­mately the static nature is going to be lim­it­ing and or problematic. 

    I think the pro­ject will need a very del­ic­ate hand in nav­ig­at­ing the fine line between bloat and use­ful­ness, that said it is nice to see an up to date set of good prac­tises in one place. 

    Using a fil­ter to gen­er­ate the code would cer­tainly help with the cur­rent bloat to cut through all the com­ments / instruc­tions and also with com­pact­ing the file … which would be a real asset to devel­op­ment. (instead of hav­ing one com­pact and a set of devel­op­ment files). 

    So, who’s up for a real next level css framework!? 

    (and if it wasn’t clear from my com­ments — thank you for releasing/promoting grid.css — and for pro­mot­ing real world prac­tises, I thought it was quite hum­bling for AHC to eat their words on the AIGA site :)

  43. Seaside said on: August 15th, 2007 at 9:46 am

    Thank you.

  44. Dirbuzz said on: August 19th, 2007 at 8:34 am

    I’ve down­loaded the latest BP frame­work and will try it on my new pro­ject. Thanks

  45. Bernardo said on: August 19th, 2007 at 2:24 pm

    Thank you to show this. Very helpfull.

  46. Laura said on: August 19th, 2007 at 5:47 pm

    Wow sur­prised at how mixed the com­ments are on this, seems extremely use­ful to me.

  47. Tomasz Gorski said on: August 21st, 2007 at 6:51 am

    I see that a CSS frame­work would help speed up devel­op­ment time even fur­ther! I will down­load the blue­print and check how it works for my latest pro­jects! btw. Thanks Mark for another great article!

  48. Gabs said on: August 27th, 2007 at 4:38 am

    hmm.. Its going down the road of prototype.js…

    Will have a play but not to sure..

  49. The Blueprint CSS Framework – Tutorials, How-to Guides and Tools : Speckyboy Design Magazine said on: October 26th, 2009 at 4:57 am

    […] Dash Pop­u­lar CSS Frame­works – Yahoo YUI, 960 CSS, Blue­print, Yaml, jQuery by Web­developer­tut Blue­print. A CSS Frame­work by Mark […]

  50. Usage of CSS frameworks in slicing pages? | Blog - PSD to HTML - CSS WITH COLOUR (Frontend Development) said on: October 31st, 2009 at 3:27 pm

    […] The Blue­print CSS Frame­work – Tutori­als, How-to Guides and Tools [2] Blue­print. A CSS Frame­work. [3] I Design Web­sites Faster Than You: Rapid Stylesheets with Blue­print CSS [4] Top 12 CSS […]

  51. Artmov » Archive » Usage of CSS frameworks in slicing pages? said on: January 13th, 2010 at 3:17 am

    […] The Blue­print CSS Frame­work – Tutori­als, How-to Guides and Tools [2] Blue­print. A CSS Frame­work. [3] I Design Web­sites Faster Than You: Rapid Stylesheets with Blue­print CSS [4] Top 12 CSS […]

  • Me

    Hello. My name is Mark Boulton. I’m a designer, an author, a speaker and I run a small design agency where we work with lovely cli­ents and pub­lish books as we go. This is my blog.

  • More of me

  • Publications

    Design­ing for the Web
    Start­ing from £19 + VAT for a PDF Down­load. £29 for a full col­our paperback.
  • Where I work

    Mark Boulton Design
    A small design stu­dio doing good things for nice clients.
    Five Simple Steps
    Pub­lish­ing easy to read design books.
  • See me speak

    Access­ib­il­ity 2.0
    Septem­ber 22nd, London.
    Drupal­con, Paris
    Septem­ber 1st — 5th, Paris.
    Web Dir­ec­tions South
    Octo­ber 6th, Sydney
    Build Con­fer­ence
    Novem­ber 5th, Belfast.
    Cam­bridge Geek Day
    Novem­ber 21st, Cambridge.
    Design­ing for the Web work­shops: Lon­don, Manchester & Glasgow
    Novem­ber & Decem­ber 2009
  • Copyright © 1999–2009 Mark Boulton. Made with an Apple Mac in Wales. Powered by WordPress and hosted by Media Temple.