Hacker News new | past | comments | ask | show | jobs | submit login
Twitter's Bootstrap 2 ready for testing and feedback (markdotto.com)
310 points by iamhenry on Jan 24, 2012 | hide | past | favorite | 85 comments



Have been using and loving Bootstrap for the past few weeks. Can't recommend it highly enough. I thought Themeforest templates were a great secret weapon, but the thoughtfulness that went into the actual markup in Bootstrap makes working with it fast and painless.

That said: no idea what's in Bootstrap 2. Someone got a concise summary?


The docs offer more details: http://markdotto.com/bs2/docs/index.html

Here's my quick (and probably incomplete) list:

- new 12 column grid

- responsive layout

- tons of new JS plugins

- stacked forms are now the default

- lots of new 'controls', like split buttons, new tabs, toolbars, highly styled radio buttons and check boxes.

- icons(!)


I wonder if this puts it 'ahead' of Zurb Foundation?

I have this sneaking suspicion that even if Zurb does a 'good' job, unless it's way better, they're never going to get the publicity these guys do, and thus won't have quite the same feedback loop.


The Zurb guys talked about Foundation vs. Bootstrap on The Changelog podcast: http://thechangelog.com/post/13873612141/episode-0-7-0-found...


Anyone listen to it and have a summary?


Good question, I don't know the answer. Honestly, I've looked at Zurb Foundation a couple times, didn't see anything that looked like an order of magnitude of 'betterness' over Bootstrap, and decided to keep using Bootstrap because of that feedback loop.


The one important thing Bootstrap was missing was the responsive layout.


Let's see:

Button groups. Toolbars. Icons sprites. Progress bars. Checkboxes and radios as buttons. More appropriate terminology (Tooltips instead of Twispies). Some retouches on styling and class naming. An overall increase of functionality for most of the existing stuff.

It's definitely a worthwhile upgrade, and it seems to be all added functionality, not a lot of semantic changes.


The big one, for me at least, is the move from a 16-column grid to a 12-column grid. I didn't look into the technical differences, just those that would impact development with it.

I just converted a ton of stuff (like last week), so it's pretty fresh in my mind. I feel like I should have checked the wip branch first, but this has really become my favorite kit. I've been about 95% YUI and the remainder OOCSS, and Bootstrap is the fastest concept-to-reality I've used.

I'm not too worried about upgrading if there are some compelling reasons to do so.


I found the dox from Aaron's comment (thanks, everyone!). Bootstrap 2 looks amazing.

What's the win going from 16 to 12 columns?


>What's the win going from 16 to 12 columns?

Was wondering that too. First thing that comes to mind is that 12 columnn is more flexible for responsive layouts, which is another big addition in v2.

For example, since 12 is divisible by 3, it's easier to create a responsive site with 3 vertical sections that collapse into a single vertical section on mobile devices. (Like the Less Framework's mobile layout: http://lessframework.com/. Not the best example, I know I've seen a better one, but can't find it atm, but that gives the general idea.).

Don't know for sure if that's the reason, though.


A 12-column grid lets you easily mix 3-colum and 4-column layouts. A 16-column grid does not.

[edit] Essentially it's more expressive. Another commenter correctly mentioned that it could have the same advantages above for a responsive design. 12-columns allow for greater freedom of expression at all display sizes.


You get better divider flexibility with the columns.

You basically can divide it in half (6 columns each), in thirds (four columns each) in fourth (three columns each), in 6th (two columns each and in all 12 plus of course spanning the entirety.

16 gives you only 1, half,


Any recommendations on how to use grids? I've seen them talked about but I don't actually know what to do with it. How does it help you?


You use grids to group and align your content.

Basically you need look at your design in order to determine what would make most sense.

A very popular choice is to divide it into three equal sizes and then have one of them be the right or left column, while the two others combine to form the other column.

So you end up with two columns one for content and one for navigation (typical blog look)

Grids can obviously also be much more complicated as those used in photoshop, 3dmax, word or windows/osx.

If you want to get really into grids I can recommend probably the best book written about them.

Josef Muller Brockman Grid Systems

http://www.amazon.com/Systems-Graphic-Systeme-Visuele-Gestal...


I have this book and like it, but I doubt it's particularly useful for the typical nerd wiring up a credible looking web application.


Can you recommend a different book that would be more useful to someone trying to edit Twitter Bootstrap from a beginner's perspective?


You don't need a book. You just need to build a hello-world application with the Bootstrap CSS/JS code, using one of the layouts they provide as a starting point. Then just use the page of Bootstrap demos as an a la carte menu as you find yourself needing UI features.

The Grid Systems book that was recommended earlier is a better bet if you're a typographer or graphic designer, and particularly if you're thinking about designing novel grid systems. But you're not doing that. The Bootstrap grid is trivial and does not require any background in design to use.


That doesn't mean one can't educate oneself on what it is though no?

I mean I am a designer but still taught myself programming and is generally interested in technology.

Understanding design better will make you a better programmer IMHO.


All I can offer here is my opinion. I have the book. I like it, because I geek out a little on typography and graphic design (I am horrible at both). I wouldn't put the book on my "buy immediately" list of practical design books for developers.

_Elements of Typography_ (which also has some coverage of grids, along with meter systems), yes. _Elements_ is a buy-immediately book (and a joy to read).


Khoi Vinh's Ordering Disorder is a good book on grids, and its focused entirely on web design.

Although, nothing beats Brockmann's Grid Systems book mentioned earlier.

http://www.amazon.com/Ordering-Disorder-Principles-Design-Vo...


Your whole web app becomes a giant nesting table, using divs, classes, and CSS instead of HTML table markup. The math on cell sizes is already done for you, and you're not stuck with wonky table markup and styling.


You can line up every element in your design without figuring out and writing widths and margins for every element by hand. You just assign one of the provided class names and you automatically get the desired result.


So how do you find what to adjust in the CSS? Just read through it until you figure it out? For example, if I wanted to make four columns instead of three?


You don't have to edit the CSS at all. You don't even have to open the file, ever, to use Bootstrap. Just link it in the head of your document like any stylesheet and use the class names from the documentation.

Want something on your page to be 3 columns wide? <div class="span3">...</div>

Want to make it 4 columns wide instead? <div class="span4">...</div>


You sirs, are both awesome. I think I need to do more research into all of this and find a good how-to guide because if I didn't know how to do the above, I probably shouldn't be doing it until I know more. I've been down that path before and it leads only to frustration when I realize I know no idea what I'm doing :)


In Haml:

  .span3
    = render :partial => "col1"
  .span3
    = render :partial => "col2"
  .span3
    = render :partial => "col3"
  .span3
    = render :partial => "col4"
Or, to do 3-col:

  .span4
    = render :partial => "col1"
  .span4
    = render :partial => "col2"
  .span4
    = render :partial => "col3"
Nothing in the partial needs to especially care about the grid (as long as its simple) --- but if it wanted to, it could nest columns.


or better yet, you have semantically named elements and assign them column values in your .less file:

    #sidebar {
      .makeColumn(4);
    }
    #main_pane {
      .makeColumn(8);
    }

    #sidebar
      = render :partial => 'common/sidebar'
    #main_pane
      = yield


Wondering the same. Sorry, didn't mean to imply it's a win. For me, I'm going to have to adjust a ton of layout. It's probably not all that bad if you've got a decent template structure, though.

It's a headache, but as I was saying, it's so much quicker to work with than many of the others that I might just dedicate some time to do the work and get on board.


You can also change the number of columns using LESS.


You've always been able to easily modify the grid size just by changing the less stylesheet.


It's imperial vs. base 2. Always knew there was a reason a foot has 12 inches, and a circle has 360 degrees...


I don't really get why they would get rid of the 16-column instead of only adding the 12 and mix them with something like <div class="row12"></div>.

I have use for both.


Because then you'd end up writing stuff like span6-12 or span1-16. Confused why you'd need 16 also. Any even division you can do in a 16 col grid you can also do in 12.


Not quite a concise summary, but looking at the documentation, the biggest changes I noticed were :

- Responsive design using media queries

- CSS Progress bars

- A few new javascript plugins (Carousel, Typehead)

- Icons

The documentation is online here in case you missed the link the article : http://markdotto.com/bs2/docs/index.html

Maybe someone has a better summary


Typehead is really responsive too. Especially for how fuzzy its matching is.


Fantastic, guys. Great job.

Question: I notice that the button styles are still static (as are a lot of the color styles). Are there any plans to implement project-wide color changing based on the primary color variable?

I ask because I've hacked this out manually in a project at my day job, and another in my own free time. [Edit]: + I'd be more than happy to contribute this.

(Probably should crosspost this to Github.)


`@primaryButtonColor`, a less variable is by default set to `@blue`: http://markdotto.com/bs2/docs/less.html#Conponents .

You can always change and recompile.


Sorry, I could have been more clear.

What I mean is, almost all of the colors are hard coded, unlike primaryButtonColor. You can easily adjust that one, but the others are trickier.

The newest version of variables.less in the 2.0 wip branch seems to have these colors bubbled up to easier access, already, now that I look at it. But still, the buttons aren't all exposed - just the primary button. That's what I was suggesting.


I've been using the new twitter bootstrap with backbonejs for some prototypes and have progressed much faster than I anticipated.

The learning curve on this one was not bad at all -- the examples are great!


Yeah, it's a fantastic combo. I recently opted to do subsequent dev on Knockout.js, though. LOC for markup, styling, and javascript under this regime is fantastically small and really quick to develop.

Don't mean to hijack, but I'm curious if anyone has gone the other way, i.e., choose backbone over knockout. My main concern is DOM overload/GC issues. Backbone is also considerably smaller, but that's not as important in my context.


Bootstrap and backbone are great together. I wish there was more concrete tutorials on getting the two to play nice, but all I could find was bits and pieces about both. Even with that I have managed to knock out a few prototypes fairly easily.


I'd be happy to share -- maybe we could take the todo.js example a but further and make it pretty with boostrap?

Hell, I would even strip out the localStorage and include a php script that hits a sqlite database.


Any twitter bootstrap tutorials you can recommend, beside just using inspect element in Chrome console?


Frankly, that's about it, really. It's really straightforward imho.


I've been using Twitter Bootstrap on a two projects for months. It has a huge upside, even for designers who write their own CSS. Version 2 seems to be filling in some gaps ( like responsive design and navigation lists/tabs ) and "filling out" with many nice-to-haves ( like progress bars ). I'm really looking forward to using version 2. Thank you Mark and Twitter team for the great work!


Does anyone know why LESS was picked over SASS for Bootstrap?


While Less and Sass are really similar products that do pretty much the same thing; I switched my site from initially using Sass (scss) to now using Less for three reasons:

a) Bootstrap uses less and I'm using bootstrap.

b) It was trivial to go from sass to less. Mostly just renaming files to have the right suffix.

c) I'm sure someone can argue differently, but I really think that the mixin syntax for Less is significantly better than Sass. I don't use mixins all the time, but this is really important if you want re-usable code. With Less, you don't have to declare @mixin and then @include it. Instead, any less block becomes a potential mixin.

That said, Sass has a compressor/minimizer and Less doesn't really have one. I had to integrate clean-css into my builds. It would be nice if Less had this by default.


relevant documentation links on your point “c)”:

http://lesscss.org/#-mixins

http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#im...

Sass, too, supports Less’s mixin model. Sass can include any block as a mixin with the @extend directive (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#ex...). Basically, if a block is going to be used in the HTML as well as elsewhere, you write it normally and then include it with @extend. If a block is only going to be included in other styles, you write it with @mixin and then include it with @include. I think Sass’s approach is better because it’s more flexible – if a style isn’t going to be referenced in the HTML, it doesn’t clutter up the CSS because it is hidden with @mixin. And if you like Less’s approach better you can just use @extend everywhere.

The main reason I prefer Sass is the indent-based and semicolon-less Sass syntax (as opposed to the SCSS syntax). I find that that syntax’s advantages greatly outweigh its few weaknesses.


http://markdotto.com/bs2/docs/less.html

Odd, it says that lessc can take --compress, but using the most recent version of less in npm says that there's no such flag.

Maybe it's on the way, or the bootstrap authors know something we don't.


Ah, that got me looking more closely. There is an option to use yui-compress and it seems with the 1.2.1 version. I use the shortened -x argument.

https://github.com/cloudhead/less.js/pull/504/files


I don't know why, but if you are looking for SASS there is a fork:

https://github.com/jlong/sass-twitter-bootstrap


I've been using https://github.com/thomas-mcdonald/bootstrap-sass/tree/2.0 for the last few days. I haven't encountered any problems.

A big thanks to Thomas if you read this, a gem is way nicer than converting it myself.


Much appreciated - it's nice to hear and see others using it. There's a few commits to catch up with on the 2.0-wip branch, hopefully I'll get some updates done and pushed today.


Markup and CSS are the ones that generally slow me down the most. I really like where Bootstrap is going. It's a great boon for developers in my opinion, not to mention quick prototyping of designs for everyone.


As a developer who just doesn't seem to "get" CSS, I love bootstrap. I can understand how it all works and it's so simple to use and quick to get things up and looking nice.

Thanks so much to the twitter team.


Bootstrap is incredible. Incredible generosity! Thank you twitter!


When you find a bug or have feedback, open a new issue on GitHub. Tag it as 2.0-wip right away so we know to prioritize it.

It seems non-admins cannot tag/label an issue, FYI.


Great job and many thanks for this excellent framework!

I've been waiting for this release for an upcoming project. I assume the use of HTML5 specific tags is optional. I noticed that the page used for the docs uses "<ul class="nav">" instead of "<nav>", but does utilize the "<footer>" tag. Is there a specific advantage to not using the "<nav> tag?


If you are using <ul> and <li> elements for your links it's one fewer tag in your HTML:

    <ul class="nav">
        <li></li>
    </ul>
vs

    <nav>
        <ul>
            <li></li>
        </ul>
    </nav>

The only 'danger' is that if someone is specifically looking at your page specifically for <nav> tags to locate your navigation they won't find it.


I can definitely see the semantic advantage of the <nav> tag, especially for robots and screen readers. Is there a way to programmatically treat the <nav> tag like a <ul> wihtout using an extra tag?



Does anyone know if there are more detailed upgrade docs available? The ones provided in the repo (http://markdotto.com/bs2/docs/upgrading.html) mainly cover features and I don't fancy finding all the various classes that have changed since 1.4.


I have used Zorb's Foundation for all of my projects, just because of the responsive layout.

Should I bother "porting" them to Bootstrap or is there no real advantage?

I still am reluctant to move to Bootstrap, but due to its popularity I think it will get more updates and will attract more people willing to improve it ...



I recently used Bootstrap to skin the initial version of my paste bin project, and it produced a very nice result with no effort, especially for someone who is not a front-end guy.

http://paste.ly/

Looking forward to digging into Bootstrap 2.


You should give your submit inputs the 'btn' class for better styling. The default style for submits makes them look disabled.

(you can also add the 'primary' class to provide a splash of color and highlight the recommended action)


Thanks for the tip! That looks a lot better now.


is this:

http://paste.ly/pastes

intentional?


That route is just left in as a placeholder until there's a better way to view and search the public pastes. One that's not currently jiving with the template.


Make sure to randomize the paste codes. Otherwise it's too easy to just increment and see what everyone else has done:

http://paste.ly/pastes/25


I am really liking how this bootstrap is going. I may give it a try in a project or 2.


I'm really liking some of the new js additions and looking forward to trying it out.


I used Bootstrap 2 for my weekend Hackathon project. The best feature I find is the media query. Also dividing the grid from 16 to 12 makes dividing the page up into 3 columns possible.


Awesome. Can't upvote this more.

Used Bootstrap while building my new (launched today!) project. It sped up overall development more than I could have imagined.

Really excited for the responsive upgrades.


Seems to be growing pretty fast: lib/ went from 76KB to 172KB ?

Seems like a very big increase.. Should we be worried?

(edit: Looks great though ;)


It's modular - only use what you need.


that's true, for the JS modules..


Supply download link (nowhere it's linked)


I ended up pulling the whole 2.0-wip branch from github



the new tabs doesn't work properly. Cant switch between tabs.


Thank you!


how i felt when i read that bootstrap2 is coming out very soon: http://i257.photobucket.com/albums/hh209/qxm_photos/Ghosts/r...


you are from reddit, right?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: