Introducing Bootstrap

Welcome to Bootstrap-js.net, home of yet another JavaScript framework.

«Do we really need another framework?», you might wonder. And of course you have a point there. But ever since I started tinkering around with my JavaScript inheritance code over at dev.helma.org, I could not stop this thing from growing into a full blown library, and I felt that it would be a pitty to not share it with others.

In fact, that is not quite correct: What you can see here is not a finished library, and it is also not exactly all new. After coming up with what I currently think of as a very elegant way of writing JavaScript code, I wanted to take this further and improve my favourite JavaScript framework Mootools in a way that follows the conventions I came up with after thinking about it for far too long during the past months. This port of a library started as a simple proof of concept, and resulted in what I now call Bootstrap. There are still a lot of similarities with Mootools, but many things are also solved differently, and the two libraries differ in many design decisions.

An important role in all this played the experience I gained while working on the DHTML-heavy pre-Ajax site Lineto.com, which so far is based on a heavily modified version of the CBE library, but soon will run using Bootstrap instead.

One of the requirements for the core library was to work in legacy browsers like IE 5, MacIE, and Opera 7, a goal that so far has prooven achievable. This is one of the major differences to other libraries: You can use most of the bells and whistles while not locking some of your more old-fashioned potential visitors out.

Read about all desicisions regarding the library’s architecture, assumptions and conventions in Bootstrap Architecture.

I would like to point out that I have put most work in the details of the library’s underpinnings and basic structures. I have tried to get that right into every detail. For the actual browser oriented functionality I largely rely on other libraries, but addapt the code to Bootstrap conventions and add changes where I considered them necessary or more elegant.

Bootstrap was designed to work on browsers as well as in other JavaScript environments, except for the browser specific parts of course. At the moment there are versions for Helma.org and a general version for Rhino. These versions are all generated from the same codebase, using a code preprocessor. Read more here: JavaScript Preprocessing.

There is currently no automatic building on the server, but here you find the current full version for non-legacy browsers, which should be a good place to start looking at things: bootstrap.js. It is heavily commented, and therefore weights about 104kb, including Dom Selectors, XHR, all the FX stuff, etc. Without comments it is 68kb.