Today we’re shipping Bootstrap v3.2.0, a monster of a release that’s been in the works for four months. There’s lots of new hotness, hundreds of bug fixes, plenty of documentation improvements, and some build tool improvements. All told, there have been over 1,000 commits since our last release.
Download Bootstrap
Download the latest release—source code, compiled assets, and documentation—as a zip file directly from GitHub:
After reviewing the changelog, update your CDN links to point to the v3.2.0 files:
<!-- Latest compiled and minified CSS --><linkrel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"><!-- Optional theme --><linkrel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"><!-- Latest compiled and minified JavaScript --><scriptsrc="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
What’s new
Here’s a look at some of the highlights of this release.
Responsive embeds
As seen in SUIT CSS, we’ve added a few classes for creating responsive embeds. They’re great for proportionally scaling down YouTube videos and other iframe or embed elements. Head to the docs to check them out.
New responsive utility classes
We’ve had responsive utility classes—e.g., .visible-xs—for awhile now. Today, they level up a bit. We’ve added block, inline-block, and inline variations for each grid tier. For example, .visible-xs-block is now a thing.
Copy docs snippets
Our documentation snippets just got an upgrade with the help of ZeroClipboard, the open source Flash-based copy-paste button. It’ll appear in the top right of nearly every example in the docs. Just click, and paste.
LMVTFY
We blogged about this yesterday, but we have a new bot hanging out in our issues and pull requests on GitHub. Whenever someone pastes in a live example—like those from JS Bin or jsFiddle—we now validate their HTML. If it’s invalid, we tell folks what’s wrong so they can fix it.
Browser bugs
We’ve also begun tracking unresolved browser bugs that currently impact Bootstrap’s development in some way. We call it the Wall of browser bugs. One of the coolest parts of developing Bootstrap is finding and reporting browser bugs to their developers. We’re literally helping to make the web a better place, and that’s pretty awesome in our book.
And dozens more…
With over 1,000 commits, a lot has changed, and all of it for the better. A few more notable changes include:
The docs have been rearranged and updated to be more specific and easier to develop.
The progress bar component has been improved for increased flexibility.
CSS repaint performance (most notably through scrolling) has been enhanced for several components.
Keyboard navigation (forward and backward) is now available for the carousel.
Modals should no longer shift left when being opened.
Well, we’ll probably have a patch release (v3.2.1), and then I imagine it’s onward to v4. We have a v3.3.0 milestone on GitHub, but it’s still unclear if we’ll ship that before jumping to v4. We’ve been building a list of things we’d like to see in the new version, but we don’t have anything ready for the public yet. We’ll share more details as we have them though. Until then, enjoy!
If you’ve been following the Bootstrap issue tracker lately, you might have noticed the launch of our new bot, @twbs-lmvtfy, on June 15th. After seeing many reports of Bootstrap bugs that ended up actually being caused by folks using invalid HTML, we decided to do what all programmers do when confronted with a repetitive task: Automate it!
The bot is generic and can be used for any GitHub project, not just Bootstrap. If you have a front-end Web project on GitHub that gets lots of issue reports, we invite you to try out LMVTFY.
It’s taken us awhile, but we’ve finally published Bootstrap on npm. We’ve taken over the existing bootstrap package and just published the latest release, v3.1.1. The package is managed by the twbs user, just like on GitHub. In the future, when we release new versions of Bootstrap, we’ll update npm as well.
Speaking of releases, you can expect v3.2.0 sometime later this month. Woohoo!
Today we’re shipping Ratchet 2.0.2. This patch release is full of bug fixes, refinements to our docs, and improvements to our build tools. Check out the detailed changelog on the release page.
We’re going to be working on the v2.1.0 release next. This will mark the first feature release for Ratchet 2. We’re really looking forward to developing more components that help you build awesome apps.
Today we’re pumped to release Ratchet 2.0.1. This release focuses on CSS bug fixes and further improvements to our docs and build tools. Be sure to check out the detailed changelog on the release page.
Since releasing Ratchet 2.0.0 we’ve reached over 7,000 stars and over 650 forks on GitHub! Thanks to all our contributors and the rest of the community for helping make this thing awesome.
Today we’re stoked to introduce the brand spanking new Ratchet 2.0. The mobile-only framework for building mobile apps with HTML, CSS, and JavaScript has been overhauled with new features, documentation, and a brand new home.
New home
First, you’re not crazy—Ratchet has moved! It’s now a part of the Bootstrap organization on GitHub. Ratchet 2 was lovingly crafted by @connors, a good friend to Bootstrap’s creators. Given our collaboration in person and the ideas we have for the future of both frameworks, it makes perfect sense.
New docs
Second, the Ratchet docs have a new look!
Things should seem pretty familiar, but we’ve added a bunch of new content and some key new features. Chief among them are the ability to show Ratchet on an iPhone and Android and three awesome examples to show it all off.
Feel free to download, remix, and extend these example apps—they’re all part of the new Ratchet docs.
Really, what’s new?
We’ve got tons of new and improved features for Ratchet. Here’s the rundown:
New Ratchicons! An icon font dedicated to Ratchet, with support for both iOS and Android.
New themes for iOS and Android! That’s right, Ratchet has a brand new base coat with optional themes for iOS and Android. Now your app can look right at home on either platform.
New card wrapper. Wrap any content or Ratchet component in a card for that classic inset card look.
CSS has been rewritten to utilize Sass, compiled via Gruntfile.
Improved table views, now with support for lists featuring images and icons.
Updated class names for buttons, badges, and more to match the Bootstrap nomenclature.
It’s a huge release that’s been a long time coming. Head to the new Ratchet docs to check it all out in person, and be sure to view those new examples from your favorite iOS or Android phone.
Be sure to check out the GitHub milestone to see a more complete changelog of what’s new.
What’s next?
Just like Bootstrap releases, up next for Ratchet will be documentation improvements and bug fixes as feedback rolls in. Without committing to a date, we also want to add support for iPad and Android tablets.
As always, if you find a bug or want to suggest a feature, just open an issue or a pull request on GitHub.
Today we’re releasing Bootstrap v3.1.1. As our first patch release for the v3.1.x release series, we’ve focused on CSS bug fixes, documentation improvements, and further refinements to our build tools. See the included changelog for more details.
Today we’re stoked to ship Bootstrap v3.1. We’ve got a handful of new features, plenty of bug fixes and improvements, and updated build tools.
New docs
We’ve made tons of changes across the board, most notably to our documentation. Just like v2.1 brought a brand new design, v3.1 overhauls the docs to refocus on the actual documentation rather than the chrome around it. Our new homepage restores the quick run through of key features and showcases some awesome examples from the Expo.
Official Sass port
The best part about v3.1 is that we’re shipping with an official Sass port. A few weeks ago we moved over the most popular port on GitHub and made it official—Bootstrap is now available in Sass. Rather than bloat the main project with support for Less and Sass—and all the documentation for both—we’ve kept them separate for the time being. Prominent links in the docs are included though, so enjoy!
New examples
We’ve added three new examples: Blog, Cover, and Dashboard. Each example provides a single page of awesomeness for you to quickly get started on a project built with Bootstrap. They’re responsive and ready to go.
Improved features
A handful of features that aren’t exactly new to Bootstrap have seen an update in v3.1:
Modals now include optional sizes
Dropdowns now have their own alignment classes for easier customization
Form feedback styles for validation states now include optional icons to reinforce color changes
All-in-all these make components more focused, more durable, and easier to work with. See the changelog included with the GitHub release for the complete list of new features.
Remote modal content
One of the more important improved features is for our modals. If you currently use the modal’s remote option, be aware this release may break your modals. Yes, this is a breaking change, but it’s first and foremost a bug fix that corrects a rather longstanding and overlooked error. Our apologies for any headaches it may cause, but it’s been missed in the last few patch releases.
See the #11933 pull request for details on the code changes.
New license
We’ve been talking about it for what seems like forever, but thanks to all our contributors and the core team, we’ve finally done it. As of v3.1, Bootstrap ships under the MIT license to allow as many people to utilize Bootstrap as possible. Thanks to all our contributors for helping make it happen.
Improved build tools
We’re constantly trying to improve our tools for developing Bootstrap and v3.1 brings a slew of updates to do just that.
We’ve switched from Recess to grunt-contrib-less for our compiler, giving us access to Less 1.6.x (as opposed to 1.3.x with Recess).
Our compiled code is virtually identical in formatting and organization thanks to CSScomb and some other Grunt-fu.
Tests also run a tad faster with the help of some magical caching and parallelization.
The web Customizer is now generated from a Grunt task, meaning we’ll never miss updating or adding a variable again. If you contribute to Bootstrap regularly, just run grunt and commit to update the page.
Heads up! If you develop Bootstrap locally, be sure to nuke your node_modules/ directory and run npm install before getting started with v3.1.
Download Bootstrap
Get downloading now, or see the list below for more information on what’s new in this release. Download it from GitHub or snag it from the CDN:
#11572: Add contextual background-color classes to match our existing text classes. (This also moves both sets of classes to the Helper Classes section of the CSS docs.)
#11675: Add .text-justify class to round out the text alignment classes.
#11836: Add new form control feedback classes to toggle icons for each validation state. Works on regular forms, horizontal, and inline.
While we originally wanted v3.1 to include RTL support, we decided to hold back on that for some potentially beneficial unreleased tooling. We’ll share more on that when we know more, but suffice to say it’s been bumped to v3.2.
CSS changes
#10951: Add outline: 0 to .modal to prevent a focus outline from appearing in Chrome for Windows.
#11107: Add @modal-backdrop-opacity variable for customizable modal backdrop.
#11266: Apply a pixel-based line-height that matches the height to date inputs for iOS 7 for proper vertical alignment of text in the form control.
#11302: Refactor the responsive utility classes to cut a few hundred lines of CSS (more context in #11214).
#11435: Prevent the double borders between multiple buttons in an input group.
#11561: Add float: left; to .form-controls within input groups to prevent IE9 from screwing up placeholder text and select menu arrows.
#11588: Scope font-size to only <p> elements in .jumbotrons and remove the super-sized line-height from the base class to avoid interference with sub-components.
#11676: Add -webkit-overflow-scrolling: touch; to modals for smooth scrolling on iOS devices.
#11744: Clean up some incompatible properties in forms.less: block level inputs no longer receive vertical-align: middle; unless necessary, e.g. in inline forms.
#11748: Updated .scale() mixin so that it accepts optional vertical scale as second parameter.
#11750: Reverts v3.0.3’s refactor to contextual table classes to ensure they work with striped tables.
#11757: Darken default navbar toggle bars to meet WCAG criteria.
#11766: Use @color variable in .button-variant() mixin to set background-color on .badges in buttons for proper default button badge styles.
#11741: Don’t set @headings-font-family to the same font stack as the <body>; instead, just use inherit for same default CSS.
#11786: Nest media queries within print utilities for mixin-friendliness.
#11790: With upgrade to Less v1.6.0, remove duplicate CSS generated from the nested .clearfix class and mixin by switching to &:extend(.clearfix all).
#11801: Use correct variables for grid containers.
#11817: Rework input groups to use the font-size: 0; and white-space: nowrap hack for a more durable component with regards to code formatting and custom font size changes.
#11829: Add .make-xs-column mixins to complement the recently added extra small predefined grid classes.
#11836: Along with the form validation update, we reset some key form and icon styles:
All .form-controls within inline forms are set to width: auto; to prevent stacking of .form-label within a .form-group.
Removes all select.form-control settings since those are now inherited by the above change
Removes the width: 1em; from the Glyphicons because it was virtually impossible to override.
#11841: Breadcrumb padding values now use variables.
#11859: Restore @dropdown-caret-color variable, but deprecate it.
#11861: Add @list-group-active-text-color variable for improved customization on active list group items.
#11868: Cleanup modal z-index values in modals.less.
#11990, #12159: Make range inputs block level and 100% wide by default.
#12073: Make order of component variations consistent throughout the repo.
#12164: Fix value of SVG font ID and removed hard coded value.
#12171: Ensure panel groups have a bottom margin since we nuke it on child panels.
#12247: Add and use .text-emphasis-variant() mixin for emphasis classes. Also updated emphasis classes to only apply :hover styles to linked content.
#12248: Add and use .bg-variant() mixin to generate background classes.
#12249: Add and use @modal-md Less variable for uniformity.
#12250: Remove print margins per upstream H5BP change, thus deferring to browser defaults, or users’ custom values should they set them.
#12286: Only remove appropriate border-radius from first and last tables or list groups in panels.
#12353: Scope table border reset in panels to first-child rows.
#12359: Reset min-width on <fieldset>s so they don’t break responsive tables and behave more like standard block level elements.
#12270: Add namespace .bs also to the event dismiss.modal.
Deprecations
#10370: Deprecated the .pull-right method for aligning dropdown menus. Includes the following changes:
Removed an old and unused pair of selectors that didn’t properly target the right-aligned navbar alignment of dropdown menus.
Deprecates the .pull-right alignment in favor of a more specific and unique class name.
Adds .dropdown-menu-right as the new alignment class. This is then mixin-ed into the .navbar-right.navbar-nav dropdown menus for auto-alignment (keeping the current behavior we have today).
Adds new ability to override that auto-alignment though with the new .dropdown-menu-left, which is mixin-ed in the same way to provide the appropriate specificity of an override. This should never need to be used except for within right-aligned .navbar-nav components.
#11660: Deprecate small and .small in blockquote citation in favor of footer element.
#12037: Move docs .html pages and assets into docs/ subfolder to clean up project root directory. Also moves .csscomb.json and .csslintrc to less/ to further clean up project root.
#12073: Make order of component variations consistent throughout the repo.
#12244: Move v2.x to v3.x migration docs to a separate page.
#12311: Expand information on how to handle overflowing content in navbars.
#12314: Add warning about modal markup placement affecting modal appearance/functionality.
#12345: Add note about printer viewport weirdness.
There are a few dozen bug fixes and changes in this release, but we’ve called out the ones we think matter most:
Padding of .navbar-collapse and alignment of .navbar-right:last-child elements has been reworked.
Added a max-width: 100%; to .containers.
Restored the twelfth column’s float: left; at all grid tiers.
See the list below for more information on those changes and more.
Specific bug fixes and changes
#9927: Update non-responsive example to prevent .navbar-collapse border from increasing height and increase specificity of nav selectors to keep dropdowns looking the same.
#10147: Remove outline from carousel controls on focus.
#10353: Tell Bower to ignore development and documentation files.
#10483, #10357: Make .container mixin-friendly by moving the width declarations within one class.
#10662: Enable individually linked images within thumbnails.
#10744: Use border-style: solid; on .carets to undo a previous Firefox fix that appears to no longer work.
#10936: Increase height of large inputs to fix Firefox inconsistencies by using ceil() instead of floor().
#10941: Fix Glyphicons path for those importing bootstrap.less from another directory.
#10979: Don’t use .img-thumbnail as a mixin for .thumbnail to avoid duplicate and unnecessary styles.
#11217: Fix vertical alignment of labels within buttons, just like badges in buttons.
#11268: Account for badges within buttons by matching background to text color and text color to background.
#11277: Drop the abbr element from the .initialism selector.
#11351: Correct grid class reset on input groups by using attribute selector, not an old class from v3 betas.
#11357: Vertically center .btn-sm and .btn-xs variations of .navbar-btns in the navbar.
#11376: Don’t deselect radio buttons when double clicking.
#11387: Improve nesting on table classes to enable easier use of mixins.
#11388: Simplify contextual table styles mixin (also drops the border parameter since we longer apply that anyway).
#11390: Add max-width: 100%; to containers within jumbotrons to avoid horizontal scrollbar.
#11402: Set width: auto; on select.form-control within .form-inline.
#11414: Add .small support to blockquote citations.
#11425: Use margin instead of padding on .modal-dialog to click-thru to .modal-backdrop.
#11432: Corrected color contrast to WCAG 2.0 AA for @state- variables (applies to forms and labels).
#11444: Use @navbar-padding-vertical for nav links vertical padding.
#11449: Prefer Menlo over Monaco for monospaced fonts.
#11468: Prevent default gradient background-image on .navbar-toggle in Firefox for Android.
#11476: Remove unnecessary prefixed keyframe declarations for animated progress bars. Given our browser support requirements, we can drop the -moz- prefix as the last several versions don’t require it.
#11477: Use namespace events for dropdowns and carousel.
#11493: Ensure proper width of dropdown buttons within vertical button groups.
#11499: Switch from overflow-y: auto; to overflow-y: visible; to prevent vertical scrollbar in some navbar situations.
#11502: Add missing data namespace for dropdown plugin.
#11513: Float navbar-text elements only when screen width is above @grid-float-breakpoint.
#11515: Reorder the headings with body text and text emphasis classes.
#11516: Invert dropdown divider border in navbars.
#11530: Reworked padding on .navbar-collapse and negative margin for right-aligned navbar content to ensure proper alignment on the right side.
#11536: Add support for button dropdowns within justified button groups.
#11544: Add color: inherit; to .panel-title to ensure proper text color when customizing @headings-color.
#11551: Remove color from outline reset for improved outlines on focus.
#11553: Prevent double border on tables in panels without thead content.
#11658: Increase min-height of .radio/.checkbox for horizontal forms to ensure alignment of content below.
#11693: Adds .table to responsive visibility mixin.
#11694: Remove unnecessary prefixes for gradient mixins given our stated browser support.
#11712: Better support for .table-responsive within .panel’s.
Removed browser default top margin from dls. Commit
Docs changes
Be sure to run npm install if you’re running grunt locally—we’ve updated our build process and have some new dependencies.
#9898: Improve scrollspy and affix plugin documentation.
#10716: Update “What’s included” docs section with info on full source code download directory structure.
#11303: Add link to the docs site in compiled assets, and remove personal usernames.
#11330: Add overflow-x: hidden; to body in offcanvas example to prevent horizontal scrolling.
#11369: Speed up jQuery and Twitter widgets on docs pages by using Google’s CDN for jQuery and the async snippet from the Twitter dev site for the widgets.
#11385: Warn about Webkit bug for justified nav example.
#11409: Add release checklist to contributing guidelines.
#11412: Add word-wrap: break-word; to docs Glyphicons class names to ensure proper wrapping in IE10-11.
#11434: Mention form validation class changes in migration docs.
#11534: Document that modal show() and hide() return before animation finishes.
#11634: Add warning to docs to not combine icon classes with other elements.
#11671: Updated third party asset libraries (for Customizer and Holder, our thumbnail utility).
#11701: Switch to Sauce Labs for our cross-browser JS unit testing needs.
Removed mention of Chrome from Webkit rendering bug for justified nav. Commit
Next up is v3.1.0, the first new feature release for Bootstrap 3. Stay tuned for more information on what’ll be in that release as we continue to plan out subsequent releases.
Today we’re shipping a quick v3.0.2 patch to fix incorrect version numbers in our JavaScript files, restore missing grid classes, and make a few improvements to our documentation.
#11334: Remove unnecessary & from CSS nesting for panels.
#11335: Add Grunt task to update version numbers across entire project. (Note: If you run our docs locally, you’ll need to run npm install in order to run grunt).
#11336: Don’t use nonstandard window.location.origin in Customizer.
#11345: Remove duplicate class changes in migration instructions.
#11349: Add screen reader text for navbar toggles.
#11378: Use .navbar-* alignment classes in .navbar-text example.
This release was unplanned, and as such it bumps a lot of planned fixes to a v3.0.3 release. We’ve already updated the relevant issues to be under the new v3.0.3 milestone. Look for that release, and perhaps another patch, before v3.1.0 ships in the coming months.