After a smaller 2.0.4 release, we’ve got another huge update that resolves tons of bugs, improves the flexibility and durability of our code, and introduces a few awesome new features. It’s a big release wrapped in a brand new set of docs and we couldn’t be more stoked to launch it.
New docs, affix plugin, submenus on dropdowns, block buttons, image styles, fluid grid offsets, new navbar, increased font-size and line-height, 120+ closed bugs, and more. Go get it.
In addition to sporting a fresh visual style, the content of our docs has been overhauled once again. Good-bye long-winded marketing copy and multiple columns, hello succinct and directive single-column documentation. We’ve got a new tagline, new layout and navigation, and (more) clearer examples.
Key changes and new features
We had higher expectations for the number of new features in 2.1, but we toned it back to get this release out the door in a manageable form. We’ve still added some great new features and fixed tones of bugs, so here’s a brief overview of what’s new.
- Submenu support on dropdowns. We avoided this for some time as we thought it would unnecessarily complicate things, but we’ve backtracked on that and opted to add them in. See the docs for more info.
- Block level buttons. Add
.btn-block to a button to make it full-width.
- State classes on table rows. Better convey success, warning, and error messages in tables.
- Improved disabled states on navs and dropdowns. Where by “improve” we mean actually present—just add
.disabled to the
- The navbar component is now white by default, with an optional class to darken it. In order to have two options for the navbar, light and dark, we needed to have better defaults. Having a lighter default navbar means fewer lines of code as we don’t need to override anything for the basic navbar functionality and the override it again to restore the default styles. Missing the black? Just add
.navbar-inverse to get the dark gray navbar back.
- Improved prepended and appended inputs. No need to place the
.add-on on the same line of code (sorry about that by the way). Break them up as you like and they’ll still stick together with some crafty
- New base font-size and line-height. 13px/18px is out, 14px/20px is in. This also has changed the size, line-height, and margin of our heading elements, buttons, and more.
- Added variable for navbar collapse trigger point. Instead of a fixed pixel width of
980px for triggering the collapsed navbar, we now use a variable so you can customize it for your projects.
- Fluid grid offsets. Thanks to our contributors, the fluid grid now has offset support to match our fixed (pixel) grid.
- Fluid grid system variables are no longer fixed percentages. Instead, they are calculated in LESS with
percentage() based on the default, fixed-width grid variables. Math!
- Removed LESS docs page. We will no longer document variables and mixins in two places—rewriting that stuff was painful and took too much time. Instead, just checkout the .less files.
Once again, we couldn’t have done this without all you nerds out there supporting us with your contributions, bugfixes, and feature requests. You keep this project going strong and we thank you deeply for your support.
For the full changelog, visit the GitHub wiki page and the 2.1.0 milestone. We’ve already begun slating things for 2.2, but currently have no estimates on when that will be released or what exactly will make it in. We also may do a 2.1.1, but again, no promises at this point. Live in the now!
We’re stoked to release Bootstrap 2.1 next week Monday at our first birthday party, but to make it a great release, we need your help testing it out.
While 2.0.4 was a smaller release, 2.1 is a much larger effort that closes nearly 100 issues and adds a handful of great features. You can see the full list of changes changes in 2.1 thus far by browsing the milestone on GitHub.
At a broad level, we’ve got overhauled docs. They’re drastically streamlined, redesigned, and better than ever. They even include a new page for getting started with an overview of the framework. New framework features include submenu support on dropdowns, block level buttons, and the affix plugin. We’ve made many other key changes, so be sure to check it out.
We’ll have a more complete list of changes with our release next week.
How to help
Just like last time, we’re pushing out a release candidate of the 2.1 code and docs. Here’s how you can help us out:
- Checkout the
2.1.0-wip branch, or browse the release candidate docs so you can easily load it up on devices and such for testing.
- Load up the new docs in your favorite, or your least favorite, browser or device and start testing.
If you’re submitting a pull request against 2.1-wip, be sure to read the Contributing to Bootstrap wiki page first.
Sorry about the database connection issues some of you may have seen in the last 24 hours. We’ve moved off WordPress for our blog and are now using GitHub pages and Jekyll. Jekyll is an amazingly lightweight and simple site generator from Tom Preston-Werner, cofounder of GitHub. Here’s why:
- Instead of a database, we have flat Markdown files.
- Instead of hosting code on servers from Media Temple or another hosting provider, everything is on GitHub.
- The posting process is as simple as writing a post and pushing the
It’s simple, fast, and pain free. We love it and encourage you to check it out in the future. Stay tuned in the next two weeks or so for more information on our next release. Until then, enjoy the updated blog.
Following up on the large 2.0.3 release a few weeks ago, we have a fresh update to address some documentation issues and basic CSS bugs. 2.0.4 includes around thirty closed issues and is our first version under our updated release approach (shorter, more concise releases).
As always, here’s a quick overview of some of the top changes.
type="button" to all dismiss buttons in alerts and modals to avoid a bug in which they prevent their parent’s
form from properly submitting.
- Added simple documentation to Base CSS for
- Added new CSS test to illustrate how the navbar, static and fixed, behaves.
- Clarified grid sizing copy to include mention of responsive variations.
- Reformatted the LESS docs page to prevent terrible table displays at smaller grid sizes.
- Miscellaneous typos and tweaks.
- Refactored forms.less to make our selectors more specific for fewer overrides and less code. Instead of a generic
input selector and various resets, we target each type of input like
- Form field state (e.g., success or error) now applies to checkbox and radio labels.
- Removed redundant CSS on
- Removed redundant
color declaration from the
- Added variables for dropdown dividers border colors.
.form-actions share the same
- Fixed some responsive issues with input-prepend and -append, notably with the fluid grid.
- Added special CSS to prevent
max-width: 100%; on images from messing up Google Maps rendering.
- Scope opened dropdowns to only immediate children to avoid unintended cascade.
- Similarly, scope floated-right dropdowns to immediate children with
.pull-right > .dropdown-menu.
.placeholder() mixin to use
& operator in Less for proper output when compiling.
- Added CSS3 hyphens mixin.
- Fixed a bug in IE7/8 where certain form controls would not show text if the parent had a filter opacity set.
For a full changelog, visit the now complete 2.0.4 milestone on GitHub.
After three large point releases focusing on massive amounts of bugfixes and documentation changes, we’re going to change up our release strategy to push out smaller, more frequent updates.
Releases with a hundred bugfixes are difficult to test, take much longer to ship, make changelogs super long and verbose, and have a tendency to introduce additional unforeseen bugs. In hindsight, our 2.0.3 release should have been a 2.1 given its sheer scope and the time it took to ship. Going forward, we’ll try to improve the frequency of the patches to get you better code faster.
So what’s next?
At the Twitter UK Open House in London last week, we said 2.1 was our next priority. While that’s still true, we’re backing up and rethinking it’s scope. Bootstrap 2.1 may end up much narrower in focus to help us ship it earlier. We’ll still tackle all the same issues and new features we originally planned for, but across more releases. In addition, 2.1 might not be our very next release as some of those unforeseen bugs have already cropped up.
To keep up with the community and improve code quality, we’ll be shipping more releases more frequently.
Questions? Mention us on Twitter.