Nicolas Frankel is an IT consultant with 10 years experience in Java / JEE environments. He likes his job so much he writes technical articles on his blog and reviews technical books in his spare time. He also tries to find other geeks like him in universities, as a part-time lecturer. Nicolas is a DZone MVB and is not an employee of DZone and has posted 226 posts at DZone. You can read more from them at their website. View Full User Profile

Quick Evaluation of Twitter Bootstrap

05.14.2012
| 5413 views |
  • submit to reddit
I must admit I suck at graphical design. It's one of the reasons that put me in the way of Flex and Vaadin in the first place: out-of-the-box, you got an application that is pleasing to the eye. Using one of these technologies is not possible (nor relevant) in all contexts, and since I've got a strong interest in UI, I regularly have a look at other alternatives for clean looking applications. The technology I studied this week is Twitter Bootstrap. Bootstrap is a lightweight client-side framework, that comes (among others) with pre-styled "components" and a standard layout. Both are completely configurable and you can download the customized result here. From a technical point of view, Bootstrap offers a CSS - and an optional JavaScript file that relies on jQuery (both are also available in minified flavor). I'm no big fan of fancy client-side JavaScript so what follows will be focused on what you can do with plain CSS.

Layout

Boostrap offers a 940px wide canvas, separated in 12 columns. What you do with those columns is up to you: most of the time, you'll probably want to group some of them. It's easily achieved by using simple CSS classes. In fact, in Bootstrap, everything is done with selectors. For example, the following snippet offers a main column that has twice the width of its left and right sidebars:

<div>
    <div>Left sidebar</div>
    <div>Main</div>
    <div>Right sidebar</div>
</div>

A feature worth mentioning provided is responsive design: in essence, the layout adapts itself to its screen, an important advantage considering the fragmentation of today's user agents.

Components

Whatever application you're developing, chances are high that you'll need some components, like buttons, menus, fields (in forms), tabs, etc. Through CSS classes, Bootstrap offers a bunch of components. For existing HTML components, it applies a visually appealing style on them. For non-existing components (such as menus and tabs), it tweaks the rendering of standard HTML.

Conclusion

I tried to remake some pages of More Vaadin with Bootstrap and all in all, the result in not unpleasing to the eye. In the case I can't use Vaadin, I think I would be a strong proponent of Bootstrap when creating an application from scratch.

More Vaadin redone with Bootstrap

 You can find the sources of my attempt here.

Published at DZone with permission of Nicolas Frankel, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)