v3.4.0 - Dec 14, 2018

    New: Added a .row-no-gutters class.
    New: Added docs searching via Algolia.
    Fixed: Resolved an XSS issue in Alert, Carousel, Collapse, Dropdown, Modal, and Tab components. See https://snyk.io/vuln/npm:bootstrap:20160627 for details.
    Fixed: Added padding to .navbar-fixed-* on modal open
    Fixed: Removed the double border on <abbr> elements.
    Removed Gist creation in web-based Customizer since anonymous gists were disabled long ago by GitHub.
    Removed drag and drop support from Customizer since it didn't work anymore.
    Added a dropdown to the docs nav for newer and previous versions.
    Update the docs to use a new baseurl, /docs/3.4/, to version the v3.x documentation like we do with v4.
    Reorganized the v3 docs CSS to use Less.
    Switched to BrowserStack for tests.
    Updated links to always use https and fix broken URLs.
    Replaced ZeroClipboard with clipboard.js

v3.3.7 - Jul 25, 2016

JavaScript

    #19192 Fix keyboard navigation for toggle buttons (checkbox, radio, single toggle) following a mouse click
    #19659: Clear tooltip's $element to prevent leaking memory
    #20019: Avoid calling jQuery('#') since it's a syntax error in jQuery 3
    #20259: Backport jQuery-related JS unit test fixes from v4
    #20278: button.js: Set disabled property in addition to disabled attribute, for jQuery 3 compatibility
    #20313: Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3
    #20338: Update jQuery version check and jQuery dependency version range to allow jQuery 3

CSS

    No significant changes.

Accessibility

    #19704: Add aria-label and callout about labeling pagination components

Docs

    #19263 Bump html5shiv to v3.7.3
    #19273 Port v4 browser support table format to v3
    #19893: Update jQuery to v1.12.4
    Numerous Wall of Browser Bugs updates


v3.3.6 - Nov 24, 2015

CSS

    #16492: Use @input-border-radius variables on input groups.
    #16529: Un-style the caret on <select>s in IE10+.
    #16562, #16563: Create and implement a new @dl-horizontal-breakpoint variable to replace the @grid-float-breakpoint on .dl-horizontal.
    #16646, #16651: Fix hover border covering active links in pagination.
    #16684: Fix border-radius not being set on two corners of vertical btn group.
    #16718: Full 4-digit Unicode escape sequences in CSS for asterisk and plus Glyphicons.
    #16769: Remove the min-height on modal headers and replace with a clearfix to avoid collapsing when no title exists.
    #16779: Adjust the padding on jumbotrons within containers.
    #16785: Round the padding on containers to match the new rounding of negative margins on rows.
    #16796: Ensure carousel controls are clickable in IE9.
    #16804: Indicate which buttons in a button group are selected, even when disabled.
    #16824: Correct a math error in the padding-top of .control-labels in large and small horizontal forms.
    #16975: Use @carousel-control-font-size for in specific pixel values.
    #17001: Fix borders on focused inputs in input groups.

JS

    #16865: Fix triggering of shown.bs.dropdown & hidden.bs.dropdown events so that relatedTarget property gets set properly.
    #16896: Note jQuery v3 incompatibility.

Docs

    #16630, #16632: Update mention of not-allowed cursor in disabled checkboxes, radios, and fieldsets docs section.
    #16744: Mention in the README where Bootstrap's changelogs can be found.
    #16745: Add CHANGELOG.md file that points to GitHub Releases and our blog.
    #16747: Document that Collapse and Tab methods are asynchronous.
    #16793: Add example with visible <label> and input group addon.
    #16888: Add a local jQuery fallback.
    #16902: Fix grid in modal example by removing .container-fluid.
    #16965: Call out .icon-next, .icon-prev alternative classes for carousel.
    #17003: Add .col-offset-0 example addition to docs.
    #17726: Clarify the purpose of adding .in to the .fade of the initially-open Tab.
    #17729: Add Subresource Integrity (SRI) hashes to BootstrapCDN links
    #17742: Add CSS portion of IE10 viewport bug workaround to docs & examples
    #17809: Note that container: 'body' should be used for tooltips/popovers on tabular elements
    #17910: Document that .panel-title overrides the font size of <h1>–<h6> tags
    #18080: Document conflict between strict Content Security Policy and inline style attributes of .progress bars, and available workarounds

Packaging

    #16710: Add official NuGet package
    #16877, #17693: Add support for Meteor 1.2.

Build tools

    #16589: Enable source maps for bootstrap.min.css.
    #17769: Setup Hound for JSHint linting in pull requests

Customizer

    #16897: Clarify that Collapse requires Component animations

Browser bugs

    #16689: Add Wall of Browser Bugs entry for #16671.
    #16691: Add Wall of Browser Bugs entry for #15968.
    #16813/#16839: Reported WebKit bug (http://wkbug.com/146896) for #16809, which WebKit then fixed.
    #16840: Remove entry from Wall of Browser Bugs because http://wkbug.com/141804 has been fixed.
    #16841: Remove entry from Wall of Browser Bugs because http://wkbug.com/139803 has been fixed.
    #16842: Remove entry from Wall of Browser Bugs because http://wkbug.com/144990 has been fixed.
    #16881: Add Wall of Browser Bugs entry for #16814.
    #16908: Remove entry from Wall of Browser Bugs because http://crbug.com/309483 is most likely invalid.
    #16994: Add Wall of Browser Bugs entry for #16988.
    #17438 / #14237: Add Wall of Browser Bugs entry for http://wkbug.com/149935
    #17712: Mention Chrome meta-bug on Wall of Browser Bugs
    #17753: Remove entry from Wall of Browser Bugs because http://bugzil.la/1048279 was closed as WONTFIX.
    #17820: Add Wall of Browser Bugs entry for http://crbug.com/534750
    #17902: Remove entry from Wall of Browser Bugs because http://wkbug.com/138167 has been fixed.
    #17906: Add Wall of Browser Bugs entry for #14975
    #18111: Add Wall of Browser Bugs entry for http://wkbug.com/150715


v3.3.5 - Jun 16, 2015

CSS

    #15074, #16159: Manually handle .input-group-* sizing instead of using mixins, which causes a bug in our compiled code due to nesting
    #15944, #15945: Add z-index to avoid border overlapping in input groups
    #15956: Properly position .form-control-feedback across within input groups
    #15976, #15978: Fix overlapped border on pagination links on hover
    #16047: Make .text-emphasis-variant adjust a:focus color in addition to a:hover color
    #16086: Reset text/font properties more thoroughly for tooltips+popovers
    #16089: Add @jumbotron-heading-font-size variable
    #16092: Only disable pointer-events on disabled <a> .btns
    #16120, #16350: Add max-width: none to .media > .img-thumbnail to prevent malformed images
    #16160: Make .bg-variant mixin adjust :focus color in addition to :hover color
    #16166, #16174: Update .visible* mixin to use !important on <table> elements
    #16175: Fix border-radius on list group items in collapsible panels
    #16176: Account for static form controls in form group size variations
    #16204, #16215: Add <button> support to .list-group-items.
    #16224: Fix .btn[disabled] styles in the theme.
    #16234: Update to Normalize v3.0.3
    #16256: Add px unit to perspective property value
    #16258: Fix regression that made .caret not display in IE8
    #16259: Remove workaround for OS X <select> printing bug that's been fixed in recent Chrome
    #16271, #16373: Add @btn-border-radius variables based on global variables for better customization.
    #16279: Fix floating of .btns that are direct children of .btn-toolbar
    #16281, #16351: Round grid column gutter operations to prevent inaccurate padding and margin
    #16333: Ensure proper sizing of .form-control-feedback in .form-group-* size variations.
    #16346, #16472: Update iOS temporal input overrides to be limited to .form-control uses.
    #16371, #16405: Vertically center carousel controls in small viewports.
    #16374, #16477: Redo jumbotron padding to prevent double negative spacing and overflowing containers.
    #16457, #16447: Add the license banner to the top of bootstrap.less.
    #16460: Fix inaccurate .pagination-sm height by specifying line-height.
    #16482, #16485: Add border-radius variable to theme's inverse navbar.
    #16614: Fix asymmetry between dropup and dropdown carets.

Accessibility

    #16154: Darker style .focus and :focus:hover on .active buttons
    #16226, #16404: Fix radio and checkbox keyboard handling in .btn-group (plus removal of obsolete unit test)
    #16571: Generalize dropdowns / droprole="menu"

JavaScript

    #15694: Fix incorrect Affix positioning when webpage uses sticky footer layout
    #16014: Fix tooltip/popover behavior when multiple triggers are specified
    #16024: Avoid some unnecessary HTML string building+parsing
    #16039: Avoid leaking memory in tooltip/popover plugins
    #16073: Clicking into an input field within an open dropdown no longer closes the dropdown
    #16142: Fix horizontal viewport bounds check in tooltip/popover placement logic
    #16147: Add new inserted.bs.tooltip/popover event fired after tooltip/popover DOM is inserted into the document
    #16151: Tooltip/popover: Allow viewport option to be a function
    #16152: Fix auto placement to use viewport on tooltips and popovers
    #16158: Modals: Remove aria-hidden usage that's redundant to display: none
    #16263: Use .dropdown-menu instead of ARIA roles for Dropdown keydown event handler
    #16324: Throw error when tooltip/popover template has multiple top-level elements

Documentation

    #15987: Add role="button" to a[data-toggle="collapse"]
    #16107: Add .alert change to v2 -> v3 migration guide
    #16113, #16114: Document how to install Bootstrap via Composer
    #16117: Increment quick start options count in README.md
    #16136: Callout for tooltips and keyboard/AT accessibility
    #16140: Add aria-expanded to navbar toggles
    #16156: Properly document the $(...).tab('show') method
    #16157: Document how to disable transitions in Bootstrap's jQuery plugins
    #16167: Remove wrong role="tabpanel" from docs
    #16194: Remove stray spaces from modal/using-grid-system sample code
    #16208: Eliminate extraneous padding in .bs-docs-header that would sometimes cause horizontal scrolling
    #16222: fix dead link: reduced test cases
    #16257: Upgrade to Holder v2.5.2 for placeholder images
    #16270, #16280: Change vertical-align on badges from baseline to middle for improvement alignment across more elements
    #16282: Document that Affix doesn't work on pushed/pulled grid columns in Safari
    #16301: Hide the "Copy" buttons in the docs when Flash is not available
    #16367: Ensure that .form-inline in non-responsive example doesn't stack
    #16369: Separate the docs for .dropdown and .dropup for more accurate examples
    #16398: Remove role="button" from download links
    #16409: Document Affix plugin's checkPosition method
    #16411: Document that 'manual' trigger is mutually exclusive of other tooltip/popover triggers
    #16417: Added #panels-footer to components nav in docs
    #16430: Mark stateful button feature as deprecated, and document that $(...).button('reset') is async
    #16484: ScrollSpy requires non-body elements to have height and overflow.
    #16488: Update AnchorJS to 1.0.1
    #16524: Firefox file download bug affecting the Customizer seems to have been fixed
    #16561: Ensure divider list items have role="separator"
    #16623: Add role="document" to modal dialog content

Browser bugs

    #16262: Added Wall of Browser Bugs entries for #16180
    #16372: Added Wall of Browser Bugs entry for table-related Chrome bug

Packaging

    #16101: Update jspm configuration
    #16359: Update bower.json to comply with Bower's new spec for the main field
    #16378: Set "moduleType": "globals" in bower.json
    #16379: Remove moot version field from and add license field to bower.json
    #16408: Include entire /grunt/ folder in npm package so that grunt dist works

Grunt

    #15294: Add grunt-contrib-htmlmin for docs
    #16254: Upgrade iOS to v8.2 in Sauce Labs JS tests


v3.3.4 - Mar 16, 2015

CSS

    #15561, #15628: Properly resize .badges inside .btn-group-xs
    #15620: Add .glyphicon-* aliases for other ISO 4217-ish currency codes:
        .glyphicon-btc and .glyphicon-xbt for .glyphicon-bitcoin
        .glyphicon-jpy for .glyphicon-yen
        .glyphicon-rub for .glyphicon-ruble
    #15656: Improve positioning of inline checkboxes and radio buttons by setting position: relative
    #15682, #15697: Ensure .caret is the same size in Firefox
    #15699: Ensure .form-control-static doesn't change height when it's empty
    #15719, #15728: Add a variable for .form-group's margin-bottom
    #15726: Remove unnecessary nesting of .embed-responsive-* classes
    #15755: Removed unnecessary visibility: hidden !important from .hidden class per upstream H5BP change
    #15825: Use a utility mixing for .initialism text transformation
    #15947, #15974: iOS fix for role="button" elements
    #16021: Remove visibility properties where they are redundant to existing display properties

JS

    #15378: Modal: Work around IE scrollbars not taking up page width
    #15496: Make $(document).tooltip({...}) without the selector option throw an error
    #15520: Dropdown: Properly ignore .disabled elements when using keyboard navigation
    #15557: Tooltip: Avoid creating an unnecessary tooltip when Tooltip#hide is called
    #15593: Fix Scrollspy's handling of multiple target elements with offsets of zero
    #15630: Fix erroneous tautological conditional in Tab plugin
    #15681: Rename Tooltip.replaceArrow()'s isHorizontal parameter to isVertical for accuracy
    #15693: Remove duplicate implementation of tip() method in popover.js
    #15930: Modal: Apply any preexisting inline body padding again after closing
    #15941: Update the .collapsed class and aria-expanded attribute of all of a Collapse's trigger elements when showing/hiding the Collapse
    #15881: Modal: Fix backdrop not readjusting when height changes
    #15988: $(...).tooltip('hide') on an uninitialized tooltip/popover no longer unnecessarily initializes it
    #16011: $(...).collapse('hide') on a hidden uninitialized collapsible no longer shows it
    #16043: Use half-closed interval for ScrollSpy bounds condition to avoid selecting wrong nav element when user scrolls upwards

Docs

    #15491: Add AnchorJS for docs anchors (hover over headings for a permalink to that section)
    #15621: Document sticky :hover on mobile browsers
    #15648: Improve image layout in the Carousel example and document image alignment via .center-block
    #15662: Mention dropup variation in dropdown docs
    #15683, #15703: Clarify usage and effects of readonly and disabled inputs
    #15710: License FAQ clarification
    #15714: Skip link workarounds for Chrome and IE
    #15725: Add example of how to use the grid system within a modal
    #15739: Clarify target of modal events
    #15740: Clarify target of carousel events
    #15742: Document how destroy works for delegated tooltips/popovers
    #15882, #15900: Use an ID as the example for Scrollspy
    #15884, #15885, #15886, #15887, #15888, #15889, #15890, #15891, #15914: Accessibility changes to improve heading hierarchy within pages
    #15898: Change CC link in footer to HTTPS
    #15903: Add rel="license" and update the target of footer license links
    #15906, #15916: Add source code documentation of justified navbar for the single-line text requirement
    #15910: Document how to properly handle modals with dynamic content height
    #15915: Javascript docs: Accessibility and cosmetic changes to headings.
    #15929: Encourage use of icons with form validation states for colorblind users
    #15946: Accessibility and headings hierarchy for the "Getting started" page
    #15948: Accessibility and headings hierarchy for the CSS page.
    #15999: Document JS test suite basics
    #16004: Add link to Vietnamese docs translation
    #16042: Increment quick start options in README to five
    #16058: Document that striped progress bars aren't striped on IE9

Examples

    #15291: Prevent collapsed navbar in non-responsive example
    #15911: Update the header in the jumbotron narrow example for a more durable layout

Browser bugs

    #15846: Add Wall of Browser Bugs entries for #15832
    #16036: Add Wall of Browser Bugs entry for #16022

Packages

    #15651: Add WOFF2 font file to bower.json's main field
    #15716: Integrate with Meteor's package manager
    #15809: Specify the files to install via npm

Grunt/Travis

    #15611: Use local HTML validator to improve performance
    #15778: Upgrade Travis to Node.js v0.12


v3.3.2 - Jan 19, 2015

CSS

    #14937: Fix carousel partially not using vendor-prefix mixins.
    #14990, #15391: Full width form control elements inside media/flag object
    #15074: Fix the nesting problem with form control size variants.
    #15124: Restore missing .media-object that was removed in #14801.
    #15140: Restore .media and .media-body styles that were removed in #14801.
    #15142: Add position: relative; to .dropup for proper menu placement.
    #15148, #15307: Use same value for margins on default .dropdown-menu as .dropup .dropdown-menus.
    #15244: Vertically center .icon-prev and .icon-next in carousel controls with line-height: 1.
    #15278: Fix border-radius on nested button groups with only one child.
    #15413, #15422: Fixes .input-group-sm and .input-group-lg for temporal date inputs.
    #15428: Update browser bug references in Less comments.
    #15482: Add .disabled class to the .btn-styles mixin in the theme.
    #15497: Increase decimals on @line-height-large from 1.33 to 1.3333333 to fix button sizing in Chrome for Windows 8.1.
    #15536, #15559: Apply form group size variations to .form-control-static.
    #15551: Fix .table-striped to work with tooltips on rows by using nth-of-type instead of nth-child.
    #15565, #15567: Use @link-hover-decoration for .btn-link to match default a:hover styles.
    #15594: Reset the color on <small> and .small elements within .panel-titles.

Icon font

    bcb90ef / #15213: Update to Glyphicons v1.9
    #15464: Exclude 2 problematic icons that were added in Glyphicons v1.9

JS
Collapse

    #15131: Use $.fn.children instead of > in selector.
    #15241: Add basic collapse plugin example for toggling another element.

Carousel

    #15152: Make wrap: false work again (fixes regression)

Affix

    #15154: Fix bug where .affix-top was not getting applied due to padding

Tooltip/Popover

    #15425: Belatedly add regression test for #14244.
    #15466: Revert #14189 (and thus remove the recently-added "multiple delegated tooltips on a single element" feature) since it caused some nasty regressions.

Misc

    #15535: Use strict mode in jQuery version check function

Docs

    #15094: Add Options, Methods, and Events subsections for each plugin to the JavaScript docs nav sidebar.
    #15120, #15137: Fix .form-inline example in CSS docs.
    #15125: Clean up ARIA role usage.
    #15129: Specify img alternative text.
    #15133: Fix up use of scope and th/td elements inside tables.
    #15194: Improve recommended media component markup.
    #15238, #15306: Add more information about CSS source maps.
    #15277: Remove dummy href="#" from dismiss-on-next-click popover example
    #15334: Fix/merge advice on low percentage progress bars.
    #15337: Add @patrickhlauke to Core Team list on the About page.
    #15340: Document that the border-radius of <select>s can't be styled in all browsers
    #15363: Make skip link look less "bare bones" and expand related accessibility advice.
    #15426: Remove holder.js references from syntax-highlighted example HTML.
    #15465: Document that calling tooltip/popover show/hide method qualifies as manual triggering.
    #15470: Document the VERSION property of the jQuery plugins.
    #15472: Document that responsive tables use overflow-y: hidden.
    #15473: Document that Autoprefixer is required.
    #15498: Add examples of using feedback icons with .input-group.
    #15524: Add pointer to Masonry (& similar) in the Thumbnail docs.
    #15560: Document that .form-inline & .form-horizontal work fine on non-<form>s too,
    #15569: Document usage of npm package.
    #15581: Add example of using .form-inline with visible <label>s.

Examples

    #15096: Fix navbar forms in the non-responsive example.

Browser bugs

    0445f23: The Chrome bug related to #14972 has been fixed on Linux. On Windows, it's still broken due to a different Chrome bug currently slated for Chrome 41.
    #15407: Add Wall of Browser Bugs entry for #15205.
    #15415: Add Wall of Browser Bugs entry for #11266 / #13098.
    #15576: Add Wall of Browser Bugs entry for #15298.

Accessibility

    #15320: Expanded advice on labels for inline forms, use of title and explanation for <abbr>, replaced use of sr-only text with aria-label for close buttons, wrapped sidebar navigation in a <nav>.
    #15327: Expanded advice for optional icons with hidden labels, replaced use of sr-only text with aria-label for pagination "previous"/"next" links, callout and examples for various labelling methods for input groups, made main button in segmented buttons in input groups keyboard-focusable, split out/clarified multiple attribute on <select> elements.

Customizer

    #15309: Catch and properly report compile errors that Less.js's toCSS() can throw.
    #15330: Tie help block to input with aria-describedby.
    #15395: Add warning message about intermittent Firefox-related bug.

Build tools / Packaging

    #15149: Upgraded OS X JS browser tests to OS X Yosemite
    #15150: Upgraded iOS JS browser tests to iOS 8.1
    #15269: Make HTML validator Grunt task ignore spurious errors about <li role="separator">...</li>
    #15355, #15356, #15357, #15451, #15452, #15453, #15454, #15455, #15462: Update to latest versions of various libraries & Grunt tasks.

Bots

    #15176, #15177, #15187: Launched @twbs-savage bot to automatically run Sauce cross-browser tests on JavaScript pull requests. GitHub repo: https://github.com/twbs/savage
    Launched @twbs-grunt bot to automatically keep our /dist/ files up-to-date. GitHub repo: https://github.com/twbs/gruntworker


v3.3.1 - Nov 12, 2014

Follow up patch release for bug fixes and documentation improvements.
CSS
Forms

    #14234: Drop the IE specific hacks for temporal inputs and replace with a Safari media query hack to avoid the IE problems altogether.

Button groups

    #15086: Don't remove focus outline from buttons in button groups.

Badges

    #14915: Properly color badges in .active item of <ul>-based list groups.
    #15052: Fix active styles when in non-anchor .list-group-item.

Jumbotron

    #14979: Override .jumbotron padding within .container-fluid to match .container.

Navbar

    #14965: Reset border-radius on top corners on dropdown menus in fixed bottom navbars.

Popovers and tooltips

    #14936, #15019: Fix some bugs in and deprecate diagonal placement classes for tooltips.
    #15046: Add full font overrides for popovers and tooltips.

Theme

    #14381: Correctly override active dropdown items in collapsed navbars in the theme.
    #15018: Correctly override active dropdown items in collapsed navbars.

JS

    #14925: Make button plugin's focus shim recognize focusin event in addition to focus event.
    #14931: Add workaround for seemingly spurious tooltip viewport unit test failures on iOS 8.
    #14927: Fix modal backdrop overlaying the modal's scrollbar.
    #14933: Center modal at all times.
    #14993: Have Carousel ignore keyboard events emited by <input>s or <textarea>s.
    #15088: Dropdown: Ignore keydown events coming from inputs and textareas.

Docs
Browser bugs

    #14920: Add Wall of Browser Bugs entry for #14868.
    #14922: Add Wall of Browser Bugs entry for #14708.
    #14958: Add Wall of Browser Bugs entry for #14409.
    #14985: Add Wall of Browser Bugs entry for #14972.

Accessibility

    #14951: Assorted accessibility (and some consistency) fixes.
    #15009, #15085: Glyphicon accessibility improvements.
    #15087: Wash-up of some stray dropdown examples' ARIA roles.

Contributing guidelines

    #14949: Explain issue bots & PR bots in CONTRIBUTING.md.
    #14959: Mention common contributor mistakes in CONTRIBUTING.md.

Components, examples, etc

    #14917: Use HTML5 <footer> tag in examples.
    #14945: Replace deprecated uses of .pull-left & .pull-right in .media docs.
    #14986: Mention Safari font size issues with fixed-width .containers in Printing docs.
    #14989: Add event.relatedTarget + data-* example of how to vary modal content based on which button activated the modal.
    #15015: Add initialization examples to tooltip and popover "Opt-in functionality" callouts.
    #15077: Document required .active class on one carousel slide.

Customizer

    #14954: Fix config.json file upload widget event listener.
    #14980: Integrate Autoprefixer into the Customizer.
    #15031: Remove file type check from config import.

Build tools / Packaging

    #15072: HTML validation: X-UA-Compatible now validates, so remove it from the list of ignored errors.
    Update devDependencies


v3.3.0 - Oct 29, 2014

CSS
Variables and mixins

    #13923: Add @gray-base variable to make @gray-* variables work better together.
    #14440: Remove unused @nav-open-link-hover-color variable.
    #14511: Add missing border-radius variables for small and large inputs.
    #14592: Add @progress-border-radius variable for progress bar.
    #14786: Add @link-hover-decoration variable.
    #14891: Add @cursor-disabled variable.

Code

    #14168: Make nested kbd elements bold so you can better identify combinators.

Type

    #13967: Don't reset the <cite> element's font-style.
    #14682: Remove the content: ""; reset on <blockquote> elements as it can cause rendering bugs.

Images

    #13996: Revert the IE backslash hack for .img-responsive on SVG images from #10073 as it stretches all image types unnecessarily in IE<11.

Tables

    #13202: Always use overflow: auto; on .table-responsive to prevent content breaking out of containers.
    #13920: Assign background-color to <tr> elements instead of <th>/<td> within the .table-striped to avoid broken backgrounds on responsive tables.
    #14095: Add basic styling for <caption>s.
    #14251: Remove the -webkit-overflow-scrolling on .table-responsive to prevent Safari from screwing up <body> width.
    #14838: Fix IE9 bug when .table-responsive is used with .table-hover

Forms

    #12669 (again): Redeclare the line-heights on date inputs in IE8+ to avoid cut off content.
    #13989: Don't extend the input sizes in small and large form groups. Instead, manually chain the selectors.
    #13997: Move min-height for radio/checkbox to their inner <label> given move from float to position: absolute; in v3.2.0.
    #14005: Only adjust the .has-feedback icons when needed.
    #14104: Remove pointer events on feedback icons.
    #14107: Lighten placeholder text back to #999.
    #14221: Make .form-control-static work in inline forms as well.
    #14234: Reset the IE8-10 temporal input line-height bug with another hack just for IE11.

Buttons

    #14029: Add touch-action: manipulation to buttons to remove the 300ms delay in IE10+.
    #14030: Remove superfluous cursor: pointer; on .btn-link since we already set it on .btn.
    #14310: Remove the box-shadow on .btn-link.active to match the existing :active override.

Button groups

    #14053: Don't show radio/checkbox in justified button groups.
    #14559: Properly hide checkbox and radio inputs in button groups.

Thumbnails

    #14443: Only transition what needs transitioning for thumbnails to avoid Safari/Chrome render bug.

Navbar

    #12738: Using landscape orientation media query for setting max-height on the .navbar-collapse content requires use of max-device-width, not max-width.
    #13325, #13464: Changed :last-child overrides in navbars to :first-child to prevent elements from overriding one another.
    #13943: Lighten the navbar inverse link and text color more since our text contrast change in v3.2.0.
    #14051: Improve margins on .navbar-right to further fix #13325 and #13464.
    #14557: Remove the margin-bottom on .form-group:last-child in xs .navbar-form.
    #14667: Remove translate3d from .navbar and switch to translate to prevent iOS dropdown rendering bugs and make the CSS more predictable.

Jumbotron

    #14337: Round .jumbotron corners within .container and .container-fluid.
    #14563: Prevent jumbotron reflow by changing the padding of .jumbotron so it doesn't interfere with the .container side padding.

List groups

    #13931: Set not-allowed cursor on disabled .list-group-items.
    #14711: Account for list groups in collapsing panels—just replace the .panel-body with a .list-group.

Progress bars

    #13953, #14736: Remove the progress bar min-width styles for low percentages to avoid jumping progress.

Media object

    #14801: Add vertical alignment of image in media component. Also deprecated the use of .pull-left and .pull-right in .media. They are replaced by the new .media-left and .media-right classes.

Panels

    #14142: Adding horizontal padding to captions in .tables in panels.
    #14253: Add borders for tables that follow panel bodies.
    #14329: Fix alignment, spacing, and borders for list groups nested within collapsing panels.
    #14437: Round the corners of table rows in panels as well as the cells.

Responsive embed

    #14687: Include <video> element support in responsive embed.

Popovers

    #14386: Reset font, text, and line-height properties in popovers. Moves the font-weight and line-height resets from .popover-title to the .popover, and adds font-size.
    #14465: Make @popover-arrow-color variable use the @popover-bg variable instead of regular #fff.

Affix

    #13974, #14123: Remove translate3d repaint performance enhancement for text rendering and position wonkiness.
    #14363: Make affix accept 0 as offsetTop or offsetBottom

Carousel

    #13074: Add WebKit CSS3 carousel transforms for supported devices.

Theme

    #14074: Make open dropdown nav links in navbars use gradients to match active links.
    #14814: Use @navbar-*-link-active-bg variables in background gradients on active/open navbar items.
    #14806: Reset the text-shadow on badges in the themed buttons.

Glyphicons

    #14869: Added .glyphicon-eur alias for .glyphicon-euro.

Print

    #14452: Update print.less from its H5BP source to consolidate styles and update source URL.
    #14790: Update to the latest H5BP.

Dependencies

    #14743: Updated normalize.css to v3.0.2.

JS

    #12815: Make zero-value offsets work on affix plugin via data attributes.
    #13814, #13815: Allow tabs to fade in if there are no initially active panes present.
    #13853: Major unit tests cleanup.
    #13907: Add .focus to focused radio and checkbox buttons with the button plugin.
    #13998: Namespace the affixed event
    #14000: When a modal is open, pressing the Esc key to close a native browser dialog or menu no longer also closes the modal
    #14015: Fix positioning of tooltips on SVG elements
    #14034: Deprecated the remote option of modals
    #14069: Carousel now skip over non-items when its next or prev methods are called
    #14090, #14091: Fix IE8 JS unit test problems
    #14244: Remove popover content with .children().detach() instead of .empty().
    #14273: Fix hover-triggered popover/tooltip flickering when mouse re-enters trigger element.
    #14282: Already visible collapse content no longer closes when .collapse('show') is called.
    #14316: Use closest .alert for alert dismissal.
    #14357: Recalculate scrollbar width for modal every time in case user resizes the window.
    #13928: Ensure that hidden event is sent when content is really hidden (collapsing class is removed).
    #14573: Make inDom check of tooltip cross document compatible.
    #14492: Handle lack of .width and .height from getBoundingClientRect() in IE8.
    #14353: Collapse: count .collapsing elements as actives.
    #14571: Properly fire hidden event when tooltip is destroyed.
    #13718: Correctly selects arrow placement for a tooltip.
    #14610: Remove unused (and undocumented) Tooltip#validate method.
    #14581: Fix tooltip misplacement with "auto top".
    #14570: Remove .modal-open class after backdrop is hidden.
    #14599: Tooltip: Rely on getBoundingClientRect for width and height.
    #14623: Use container instead of parent for tooltip/popover auto-placement calculations.
    #14626: Carousel: Only enable pause: hover for non-touch browsers.
    #14722: Escape key should only close Dropdown.
    #14723: Use translate instead of translate3d on modals to fix bug where sometimes modal wouldn't reappear in Safari.
    #14590: Add keyboard option to carousel.
    #14724: Modal no longer closes when dragging and releasing the mouse button outside the dialog.
    #14845: Collapse: Don't fire show event if show is prevented because other element is transitioning.
    #14767: Fixes tooltip misplacements in scrollable viewports with auto positioning.
    #14772: Implement hide and hidden events for tabs.
    #14852: Bump minimum required jQuery version to 1.9.1 and throw an error when Bootstrap's JS is used with outdated versions of jQuery.
    #13563: Clear scrollspy selection above first section.
    #14189: Handle multiple delegated selectors on tooltip and popover nodes.
    #14519: Fix tooltip occasionally not hiding when using a hide delay.
    #14457: Change value of stateful button after event loop.
    #14686: Handle collapsed class on triggers even when manually invoked.
    #14463: Independently delegate data-api selectors.

Accessibility

    #14070: Add role="tablist" to .nav-pills in examples to improve accessibility.
    #14071: Add role="listbox" to .carousel-inner to improve accessibility of Carousels.
    #14072: Add screenreader text to previous/next carousel buttons in examples to improve accessibility.
    #14085: Add role="presentation" to tab <li>s to improve accessibility.
    #14086: Add role="tabpanel" to .tab-pane <div>s to improve accessibility.
    #14088: Add role="tabpanel" to .panel-collapse to improve accessibility.
    #14089: Add role="tablist" & aria-multiselectable="true" to accordion .panel-group.
    #14208: Add ARIA attributes to dropdown plugin.
    #14242: Remove aria-describedby attribute from tootips later
    #14147: ARIA / screenreader support for collapse
    #14577: Wrap .pagination & .pager in <nav> so that AT can know they're for navigation
    #14578: add aria-labelledby to accordion example to improve accessibility
    #14579: add role="tab" to .panel-headings in accordion example to improve accessibility
    #14673: Add visibility styles to navbar and component animations (fade and collapse) for more screenreader friendly components.
    #14841: Add role="button" to a couple more non-link <a> buttons
    #14819: Add aria-pressed to single toggle buttons.
    #14154: Add aria-expanded toggling to tabs plugin. Also adds aria-labelledBy, aria-controls, and aria-expanded to the tabs docs.

Docs

    Moved from Pygments to Rouge for syntax highlighting in the docs. (For folks developing the docs locally, be sure to run gem install rouge before building.)
    #13746: Add docs section for swapping .navbar-brand for an image.
    #13835: More explicitly document mobile dropdown menu dismissing behavior.
    #13937: Fix broken live demos for popovers.
    #13940, #13954: Save "Preview theme" state with local storage.
    #13942: Fix link to Less compilation section of docs.
    #13968: Add missing input group code to inline form example.
    #13986: Use valid JSON in compound option value examples in tooltip & popover docs so that they can be safely copy-pasted for data-api usage too.
    #14011: Document radio and checkbox validation states.
    #14021: Add .collapsed default class to .navbar-collapse for consistency.
    #14036: Have Jekyll use non-minified assets for local, non-hosted docs, for easier testing/debugging.
    #14037: Add new Wall of Browser Bugs entry for Chrome regarding input[type="password"] and width of floated elements.
    #14047: Add missing example code code for kbd after #13351.
    #14111: Update JS Bin template in CONTRIBUTING.md.
    #14116: Use <button> elements over empty <a>s in dropdown docs.
    #14143: Add note about JS plugins and users who have JavaScript disabled.
    #14156: Fix dismiss-on-next-click popover example.
    #14192: Use HTTPS for CDN URLs.
    #14203: Document that form field feedback icons only work with <input class="form-control">.
    #14211: Add new Wall of Browser Bugs entry for IE regarding :hover and scrolling.
    #14256: Correctly document arguments passed to title & content options of tooltips & popovers when the option values are functions.
    #14257: Document that empty tooltips & popovers do not get displayed.
    #14258: Move Windows Phone 8 IE10 viewport bug workaround script from <head> to end of <body>.
    #14264: Document arguments passed to placement function option of tooltip/popover.
    #14332: Clarify that closing an Alert removes it from the DOM.
    #14406: Consistently use <nav> instead of <div> for .navbar in the docs.
    #14439: Add static tooltip example to docs.
    #14451: Bootstrap's IRC channel is now named ##bootstrap.
    #14516: Document that fieldset[disabled] is somewhat broken in IE11.
    #14527: Add Wall of Browser Bugs entry for #793.
    #14531: Add Wall of Browser Bugs entry for IE11 <select> cursor bug.
    #14709: Add default .collapsed class to accordion examples.
    #14745: Use https for Twitter links.
    #14858: Document .alert-dismissible .close button usage restrictions
    #14901: Add Wall of Browser Bugs entry for iOS Safari transform: translate3d(0, 0, 0) bug

Examples

    #13964: Fix markup of "Remember me" checkbox in Sign In example for accurate horizontal alignment.
    #14500: Replace nonexistent .col-6 classes in offcanvas example with .col-xs-6.

Build tools / Packaging

    #14050: Ensure that Bower installs include useful dotfiles (.jshintrc, .csscomb.json, etc.)
    #14290: Fix watch task to also watch files in subdirectories of /less/.
    #14336: Have watch task regenerate bootstrap.js when JS source files are modified.
    #14394: Adjust Gruntfile so that grunt dist works when Bootstrap has been downloaded via Bower.
    #14488: Simplify copy task.
    #14497: Set Travis's git clone depth to 10 to make it faster.
    #14852: Bump required minimum jQuery version to 1.9.1 in bower.json
    #13824: Added dist/js/npm.js so the npm module can be properly required.

Customizer

    #13790: Add feature to import customization config.json files via drag-and-drop.
    #14411: Fix Gist creation API call.


v3.2.0 - Jun 26, 2014

New features

    #12042: Responsive embeds, as seen in SUIT CSS.
    #12204: Visibility and hidden classes for block, inline-block, and inline elements.
    #12690: Added ZeroClipboard to provide a Flash-based copy button on all examples to quickly copy snippets of code.

CSS
Misc

    #12679: Add .sr-only-focusable class to provide a focus state for skip nav links.
    #13194: Update Normalize to v3.0.1.
    #13649: Add translate3d in a few instances to reduce repainting when scrolling.
    #13737: Reset the html font-size using pixels instead of percentages.

Mixins

    #12459: Refactor scale mixins to ensure both .scale(x) and .scale(x, y) work.
    #12855: Add .animation-fill-mode() mixin.
    #12993: Add a table of contents to mixins.less and reorganize things.
    #12998: Modularized the mixins into separate files. We now have a mixins directory in our less folder that @imports all the mixins into mixins.less (for backward compatibility).
    #13859: Update the .skew() mixin to use skewX(...) skewY(...) instead of old and deprecated skew(x,y) syntax.

Grid system

    #12854, #12863: Properly reset left values to auto instead of 0 in .col-*-push-0 and .col-*-pull-0 grid reset classes.
    #13616: Add custom grid gutter support to .container-fixed(). .make-row and .make-*-col mixins already had this ability, so this simply completes the package.

Images

    #10073: Add width: 100% \9; to .img-responsive to prevent IE10 and below from distorting<svg> elements.

Typography

    #12753, #12756: Ensure the .clearfix is applied on .dl-horizontal dd by moving it out of the media query (Less doesn't respect :extend() within media queries).
    #13449: Increase .lead font-weight for better readability on mobile.
    #13671: Add text-transform utility classes.
    #13854: Darken @gray-light and .lead to meet accessibility guidelines.
    #13860: Add a new variable for .dl-horizontal's offset.

Code

    #12824: Remove white-space: nowrap from <code> elements in favor of default pre-wrap value for better rendering on narrow viewports.
    #13351: Add support for nested kbd elements.

Tables

    #12722: Scope .table-responsive styles to screen devices only so they're not cut off when printing from Chrome (Safari is fine, unknown for IE and FF).
    #12742: Make .table-responsive more mixin-friendly.
    #13013: Ensure table cells with contextual states preserve their styles when used within a hover table.
    #13375: Remove bottom margin on tables within collapsible panels.
    #13670: Use overflow-x: auto; in responsive tables to hide the scrollbar when it's not needed.
    #13707: Remove unnecessary max-width: 100%; on <table>s and place it on .tables.

Forms

    #12669: Properly reset line-height on all date inputs to ensure Mobile Safari and IE8+ display them correctly.
    #12759: Make input groups in inline forms use display: table-cell so they are sized properly and appear on the same line as intended.
    #12794: Fix placement of browser-based form validation popovers for required attribute. Applies to Firefox and Chrome.
    #12801: Add padding to the bottom of .form-control-static to match height of standard form controls.
    #12843: Scope label styles for horizontal forms to a media query so their narrow viewport display looks just like a normal form.
    #12868: Vertically center form feedback icons for large and small inputs. Also reorders our bootstrap.less file to place glyphicons.less closer to the top of our imports to avoid specificity issues.
    #13003: Move padding on .radios and .checkboxs to their immediate <label>s to avoid the no-click deadzone caused by negative margin.
    #13066: Add z-index to the form control feedback icons so input groups don't render on top of them.
    #13099: Fix vertical alignment for all time-based inputs on iOS.
    #13141: Add a max-width: 100%; to <label> elements so IE8 wraps text properly.
    #13320: Fix .form-control-feedback position when labels have the .sr-only class applied. This makes it super easy to use optional feedback icons with no visible label.
    #13548: Use position: absolute; and an IE8-9 hack to fix checkbox and radio line-height problems (and the vertical alignment) that were introduced after #13003.
    #13651: Update explanatory comment about iOS date/time inputs bug.
    #13745: Add optional .disabled class to set not-allowed cursor on disabled radio and checkbox labels.
    #13856: Add .form-group-sm and .form-group-lg.
    #13872: Always apply padding to .form-control-static for proper vertical alignment.

Buttons

    #12937: Darken active button background colors just a bit.
    #13079: Scope .open button state in .button-variant() mixin to immediate children.
    #13549: Use .opacity() mixin on button group inputs for IE8 support.
    #13903: Restore side padding on .btn-block.

Panels

    #12683: Remove the overflow: hidden; from .panel-group > .panel because it apparently serves no purpose and cuts off nested dropdown menus.
    #12745: Add @panel-heading-padding and @panel-footer-padding variables for panels.
    #12822: Scope panel collapse styles to immediate .panel-bodys only.
    #13689: Fix double border in panel when a list group is followed by panel footer.
    #13735: Fix bug where a panel recieve extra top border when placed within a collapsible panel.

List groups

    #12490: Add support for disabled list items in list groups.
    #12739: Add @list-group-link-hover-color variable to customize the text color when hovering on linked list items.
    #13857: Properly color <small>/.small within active list group headings.

Progress bars

    #12848: Improve progress bars to better handle low to zero percentage values.
    #13861: Refactor striped and animated striped progress bars to deprecate the required parent class and add new modifier classes.

Badges

    #12969: Improve badge mixinability with better nesting.
    #13687: Colorize badges in panel headings.

Navbar

    #12738: Revamps navbar collapse functionality. Instead of setting a max-height on all .navbar-collapse elements, we only apply it to fixed top and bottom navbars. Also adds a shorter max-height for landscape views to ensure scrolling still works.
    #12694, #12813: Correctly reset .btn-link colors in a navbars.

Dropdowns

    #13037: Add text-align: left; to .dropdown-menu to avoid inheritance from any parent that might reset that property (e.g., our .modal-footer).
    #13369: Fix dropdown menu alignment in justified button groups in Firefox.
    #13851: Add white-space: nowrap; to .dropdown-header to match dropdown links.

Tooltips and popovers

    #12934, #12952: Base rounded corners on popover titles on the @border-radius-large variable.
    #13216, #13217: Increase z-index values on tooltips and popovers to always be in front of modals.

Modals

    #12803: Removed unnecessary top margin from .modal-footer. All spacing is addressed by padding on the .modal-body, and the .modal-header never had any margin on it.
    7e551ec: Update padding on modals to be 15px all around. Previously was 15px in the header and 20px everywhere else.
    #13609: Update modal CSS to prevent shifting before animation.

Collapse

    #12593: Add support to Collapse plugin for trs and tbodys.

Carousel

    #13242: Fix horizontal alignment of carousel controls by using appropriate margin for each side.

Theme

    #13093: Reset the background-color and background-image on disabled theme buttons.

Glyphicons

    #13542: Fixes #13478 by reverting #10941. This undoes the hardcoded some URL escaping around our icon paths as a way to fix broken assets when Bootstrap was included via Bower. Instead, folks implementing Bootstrap via Bower should use the relative URLs feature of Less.

JavaScript
Misc

    #11464: Improve the JavaScript noConflict() mode not working in 3.0.x.
    #11966: Fix .noConflict() mode.
    #12948: Use quotes around all element attribute values in selectors.

Dropdowns

    #11281: When opening a dropdown, focus the toggle before (instead of after) triggering the shown event.
    #13296, #13354: Don't let dropdown menus disappear with right-click in Firefox.

Buttons

    #13511: Fix button plugin to allow empty string as reset state.

Scrollspy

    #11453: Fix scrollspy for targets within tabs.
    #11937: Correctly determine scrollheight of <body> in IE10 and lower.
    #12337: Correct some internal event names in scrollspy plugin.
    #13220: Correct scrollspy offsets when scrollheight changes.
    #13589: Adjust for Scrollspy offset when calculating maxScroll.
    #13702: Minor scrollspy refactoring.

Modals

    #11958: Move Modal removeBackdrop() call from hideModal() into backdrop().
    #12761: Remove .focus() event aliases from modal and dropdown plugins.
    #12850: Stop passing argument of incorrect type to Modal.hide()
    #13103: Stop modals from shifting <body> content to the left.
    #13615: Add missing event namespacing in modal.js.
    #13627: Fix restoration of focus to the triggering element upon dismissal of a modal.

Alerts

    #13406: Fire closed.bs.alert event after (instead of before) alert has been detached from the DOM.

Affix

    #9342, #12982: Properly reset affix position when scrolling back to top.
    #12862: Improve flickering and simplify calculations in affix plugin.
    #13342: Add a target option to the Affix plugin.
    #13541: Improve affix plugin's affix-bottom positioning.

Tooltips and popovers

    #12328: Add tooltip viewport option, respect bounds of the viewport.
    #12377: Stop using document.body.scrollTop, because it's deprecated.
    #13060, #13481: Add role="tooltip" to tooltips & popovers by default to improve accessibility.
    #13165: Fix popover when using append.
    #13557: Add aria-describedby attribute to tooltips and popovers to improve accessibility
    #13593: Add reference to triggering element to tooltip/popover element's data.
    #13752: Avoid error when trying to show an auto-placed tooltip that gets removed from the DOM.

Carousel

    #9461, #13173: Make carousel ignore content that's not an .item.
    #12592: Change carousel indicators behavior to immediately move active classes from one indicator to the next.
    #13396: Add direction & relatedTarget properties to slid.bs.carousel event.
    #13787: Add left and right keyboard support to the carousel.

Collapse

    #9836, #12983: Prevent collapse animation from jumping when an input holds focus.
    #11099: Prevent $.collapse() from overriding original dimensions of the collapsed element when uncollapsing.
    #13157, #13176: Fix issues with transition end event bubbling in the collapse plugin.
    #13306: Don't override the original height/width of a collapsed element when uncollapsing it.
    #13330: Wait for the transition of the expected target to complete during a collapse.

Docs

    #12487: Document required use of position: relative; for Scrollspy plugin.
    #12697: Document support for input[readonly].
    #12744: Document ability to remove animation on modals.
    #12790: Add link to unofficial Italian translation (http://hackerstribe.com/guide/IT-bootstrap-3.1.1/).
    #12808: Correct grid column values listed in Grid Options.
    #12810: Document .container-fluid in the CSS overview docs.
    #12818: Small table tweak to browser support table.
    #12866: Add sitemap.xml and robots.txt files.
    #12748, #12956: Document missing examples for common inline typography tags.
    #12688: Document ability to dismiss popover via focus and next click.
    #13024: Add role="alert" to alert examples to improve accessibility.
    #13026: Document more Bootstrap components in the Theme and RTL examples.
    #13095: Generate translations list from YAML _data file.
    #13167: Use underscore prefix to ignore certain directories.
    #13184: Document the template option of tooltip & popover plugins.
    #13190: Document that a function for Popover's content parameter is called with the element as an argument.
    #13222: Explicitly document how to change the mobile navbar breakpoint.
    #13332: Document specificity collisions of well backgrounds and contextual background classes.
    #13337: Mention removal of .progress-* contextual classes in the migration guide.
    #13340: Document default assumption about icon font's location (and how to change it).
    #13362: Document that you shouldn't show() tooltips and popovers on hidden elements.
    #13367: Update gradient mixin docs to use percentage values instead of decimals for color stops.
    #13396: Document direction & relatedTarget properties of Carousel events.
    #13397: Document that invisible (non-jQuery-:visible) scrollspy targets are ignored.
    #13422: Warn about browsing the docs in IE when using an emulation mode to simulate older IE versions; these emulation modes can behave significantly differently than actual older IE versions.
    #13434: Explicitly document grid column wrapping behavior better.
    #13463: Add optional theme preview toggle to the docs sidebar on certain pages.
    #13493: Improve accessibility of .close buttons in docs examples.
    #13495: Mark Android Firefox (Fennec) as an officially supported OS+browser combination.
    #13700: Add missing role="menu" attrs to .dropdown-menus.
    #13768: Simpler and updated docs copy for icon font file paths given escaped path reversion.

Customizer

    #9951, #12865, #13205: Add Gist and Customizer URLs to customized files and config.json.
    #10632: Show an alert with links when customizer config is successfully saved as Gist
    #12617, #12666: Show proper browser support errors for the Customizer.
    #12773: Add feature detection to block Safari, since it doesn't fully support the necessary Blob API.
    #12719, #12875: Update to Less 1.7.x.
    #12966: Ensure icon font vars are loaded into Customizer.
    #13373: Make variable deprecation notices visible in the Customizer.
    #13151: Update the Customizer to use to UglifyJS 2.
    #13472: Disabled the v2.x customizer.
    #13543: Customizer: make utilities.less inclusion mandatory
    #13626: Show proper error message when viewing the Customizer in IE8

Examples

    #12735: Fix sidebar hover state in Dashboard example.
    #12894: Remove margin-bottom from last <p> of .blog-footer in the Blog example.
    #12897: Remove border-bottom from navbar in Dashboard example for easier customization of navbar content.
    #13390: Add IE10 viewport bug workaround to examples.
    #13905: Update the Cover example to move the box-shadow from the <body> to the .site-wrapper so it surrounds content of all lengths.

Build system

    #12670: Drop use of vendor prefix mixins and use autoprefixer as part of our Gruntfile. Mixins are still available and supported.
    #12672: Add logging to build-raw-files Grunt task.
    #12760: Misc Grunt improvements.
    #12798: Updated QUnit test reporting so Sauce Labs can report exact failing tests.
    #12949: Switch to grunt-css-flip Grunt plugin for RTL CSS generation.
    #12829: package.json cleanup.
    #12834: Update Sauce Labs config to use new name for Chrome browser for tests.
    #12853: Switch to JSCS to prepare for removal of style changes coming in JSHint 3.
    #12861: Add docs.css to the CSSComb task.
    #12989: Don't ignore every dot file in Bower installs, only the ones in the root directory.
    #13064: Add description field to bower.json
    #13065: Exclude /test-infra/ from Bower installs.
    #13328: Include a reference to bootstrap.less in Bower for easier installs.
    #13587: Switch to Kramdown for Jekyll.
    #13740: Add replace entry to composer.json.
    #13877: Switch to uber/npm-shrinkwrap for npm-shrinkwrap.json generation

Browser bugs

We've started tracking unresolved browser bugs that currently impact Bootstrap's development in some way. We call it the Wall of browser bugs. We've also documented a few new bugs with this release:

    #10690: Reported a bug in Firefox for responsive images (those with max-width: 100%) in table cells. No other browsers are affected. See https://bugzilla.mozilla.org/show_bug.cgi?id=975632. Until a fix is shipped, add width: 100%; to your responsive images in table cells.
    #12548: Reported a bug in Chrome where date inputs stop resizing when appearing with display: table-cell;. See https://code.google.com/p/chromium/issues/detail?id=346051.
    #12476: Document IE8's limitation of borders on buttons in a justified button group. Currently the only way to get borders on those buttons is to wrap each button in an additional .btn-group, just like the button groups using <button> elements.


v3.1.1 - Feb 13, 2014

General bug fix and documentation release.
CSS

    #11659, #12349, #12698: Always show the input above appended buttons in input groups for proper focus and disabled state borders.
    #12025: Ensure responsive utility classes can be combined with one another.
    #12195: Apply .btn:focused styles to .btn.active:focused for improved accessibility.
    #12412: Refactored and renamed our internal grid mixins for generating custom number of grid columns.
    #12433: Use negative margin on .list-inlines so we don't override the padding-left on the first list item.
    #12448: Use @navbar-height instead on .navbar-brand to prevent element from being shorter than navbar height. Corrects a change introduced in v3.1.0.
    #12462: Add border-radius to tables when in panels for proper rounding with all background settings.
    #12470: Scope large modal styles to minimum viewport width.
    #12486: Restore full width inputs for input groups in inline forms and navbars.
    #12502: Remove long deprecated :-moz-placeholder styles.
    #12532: Scope popover arrow styles to immediate children.
    #12552: Fixes two typos in carousel.less for the Glyphicon classes.
    #12620, #12621: Use :extend(.img-responsive) instead of mixin in thumbnail and carousel.
    #12625: Only remove top and bottom borders on list groups in panels if the list group is the first or last element.
    #12629: Override the default rounded corners in iOS's search input with -webkit-appearance: none;.
    #12633: Properly reset borders on table cells in panels.
    #12639: Drop the unsupported by Opera -o-user-select.
    #12659: Add @blockquote-font-size variable for calculated text size.
    #12673: Use @popover-arrow-width for popover offsets.
    #12674: Update popover border colors to use computed values rather than static ones.

Sass

    #523: Rails 3.2 compatibility
    #518: scale mixin Sass compatibility issue
    Updated Bower docs

JavaScript

    #12436: Update docs, examples, and tests to use jQuery v1.11.0.

Docs

    #12437: Note specific versions of IE where progress bar animation is supported.
    #12439: Correct docs error about available grid resets.
    #12477: Clarify supported versions of Internet Explorer (we do v8-11) in browser support docs.
    #12494: Update docs to reflect modal remote change from #11933.
    #12497: Remove manual full-width container callout now that there's .container-fluid.
    #12512: Improve alignment of the Dashboard example placeholder images.
    #12519: Add Bower badge to README.
    #12527: Clarify that dropdowns always require data-toggle="dropdown".
    #12543, #12544, #12545, #12546: Various fixes to the migration docs.
    #12555: Rearrange variables to place grids and containers closer together in Customizer.
    #12564: Distribution zip folder renamed to be more descriptive.
    #12589: Add "Back to top" link to bottom of sidenav.
    #12590: Add link to Korean translation.
    #12610: Better and more consistent prefixing of docs CSS with .bs-docs-.
    #12611: Mention limitation of one JavaScript plugin's data attributes per element.
    #12614: Add progress bar example with visible label.
    #12645: Omit semicolons consistently in JS examples.
    #12655: Upgrade holder.js to v2.3.1 so docs images are rendered properly in Internet Explorer >=9.

Examples

    #12455: Fix typo in Dashboard example's CSS.
    #12512: Improve alignment of the Dashboard example's placeholder images.
    #12526: Add scrollbars when necessary to the Dashboard example's sidebar.
    #12579: Improve sticky footer examples to avoid any wrappers and improve rendering in IE8.
    #12695: Fixed transitions on offcanvas example by adding initial left and right values.

Build tools

    #12466: Add the examples' CSS to the csslint task.
    #12531: Add /docs/dist/ to the clean task.
    #12534: Allow the bootstrap package in npm to directly expose CSS and Less files.
    #12568: Add the examples' CSS to the csscomb task.
    #12581, #12583: Reorganize all Grunt tasks into one directory so that grunt runs properly in Bower installations.
    #12605: Use license object instead of licenses array in Grunt.


v3.1.0 - Jan 30, 2014

New features

    Three new templates: Blog, Cover, and Dashboard.
    #10884: Add .info variant to contextual table classes.
    #11138: Add contextual styles to list groups.
    #11162: Add new sizes, .modal-lg and .modal-sm, to modals for quicker settings on modals. Only applies to modals above the small breakpoint.
    #11193: Add <kbd> element styles to indicate user input via keyboard.
    #11244: Add .animation() mixins.
    #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.
    #11286: Add @well-border variable.
    #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 switch to LESS compiler, 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.
    Updated <blockquote> to no longer thing text or modify line-height for improved readability.
    #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.
    #12406: Upgrade to Normalize v3.
    #12422: Reset height on select[multiple] in .input-size() mixin.
    #12424: Given Normalize v3 upgrade, account for change on <figure> element so that we don't cause backward compatibility issues.
    #12388: Apply a fixed height to .navbar-brand to ensure adding a Glyphicon doesn't increase it's height.

JavaScript changes

    #9318, #9459, #10105: Properly place remote content within the .modal-content instead of .modal-body (see note below).
    #10044: Check that href id's are followed by valid characters in dropdowns.
    #10134: Don't use jQuery offset directly because it uses sub pixel rendering.
    #10199: Correct hidden.bs and shown.bs events firing too early in tooltips and popovers.
    #10205: Enable support of Chinese characters in Scrollspy targets.
    #10236: Properly calculate offset positioning for affix plugin when reloading a scrolled window.
    #10260, #10568, #10740: Properly hide tooltips and popovers if no animation is set.
    #10283: Prevent IE8 from complaining about $.support.transition.end.
    #10327: Correctly reset carousel when the slide event is prevented.
    #10359: Pass $element to offset top/bottom calc funcs for better dynamic offsets.
    #10658: Don't let popover content lose bound events on second setContent call.
    #10675: Ensure scrollspy target in tab content works properly.
    #10709: Be consistent about type of quotes in our JS—switches double quotes to single quotes throughout.
    #10761: Don't create new tooltip/popover objects just to destroy them immediately.
    #10798: Modal namespacing.
    #10801: Restore .collapse to .in after collapsing animation finishes in collapse plugin.
    #10834: Only preventDefault on click on [data-toggle="modal"] when the element is a link.
    #10890: Calling $().button(state) shouldn't enable a disabled button.
    #10911: Add loaded event for use with modal's remote option.
    #10921: Input groups within button toolbars are now supported.
    #11203: Improve scrollspy's handling of hidden targets.
    #11288: Save vertical scroll position of modal between openings.
    #11362: Update affix and scrollspy on speedy scroll to top of page.
    #11373: Add related target to dropdown events.
    #11379: Fix carousel this.sliding not getting reset if $next.hasClass('active').
    #11416: Use the transition duration from the CSS for the carousel.
    #11496: Clear tooltip timeout on destroy.
    #11555: Add @tooltip-opacity variable.
    #11720: Add events (affix, affixed, affix-top, etc) to affix plugin.
    #11722: Use document scroll height instead of offset height in affix plugin.
    #11788: Use focusin/focusout instead of focus/blur for tooltip and popover focus trigger for Firefox and Safari.
    #11825: Add dropdown ARIA roles.
    #12270: Add namespace .bs also to the event dismiss.modal.

Remote modal content

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 one 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.
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.
    #12398: Deprecate .box-shadow() mixin.

Documentation

    #10486: Add note about data-toggle dropdown dependency.
    #10505: Document more of our LESS variables and mixins (not all, but the commonly used ones).
    #11158: Customizer's variables are now generated via Grunt task from the variables.less file.
    #11447: Document that modal remote URL is only loaded once.
    #11655: Normalize disabled inputs and buttons in iOS with opacity: 1;.
    #11723: Mention removal of .pill-content and .pill-pane in the migration guide.
    #11738, #11765: Load minified assets in the docs to improve performance.
    #11742: Add link to French translation in About page (v3.0.3 saw Ukrainian added as well).
    #11760: Remove mailing list links from readme and about pages.
    #11764: Add meta tags to docs for description, keywords, and authors.
    #11770: Move component-animations.less to the utility section of import list to match Customizer
    #11830, #11832: More help for Windows users installing Jekyll with requirement of Python and link to @juthilo's guide, Run Jekyll on Windows.
    #11876: Enable failHard grunt-html-validation option.
    #11977: Concatenate and minify all docs assets.
    #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.
    Updated browser and device support documentation:
        #11055: add mention of select menu styling on Android stock browsers with included optional fix.
        Update IDs and docs nav to include bookmark links to each section.
        Add callout to navbar docs about fixed position, inputs, and virtual keyboard.
    #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.
    #12380: Add link to unofficial German translation, http://holdirbootstrap.de.

Build system & packaging

    #11761: Add JavaScript Code Style checker integration.
    #11739: Lint docs-assets/js/application.js and docs-assets/js/customizer.js.
    #11780: Don't ignore Gruntfile.js or package.json in bower.json as they're required for compilation.
    #11790: Switch from Recess to LESS compiler.
        Dropped grunt-recess for grunt-contrib-less to get the latest version of LESS (v1.5.x) since Recess was still quite behind.
        Adds CSScomb to take place of Recess's CSS linting. Includes custom .csscomb.json in project root with basically the same property order as Recess.
        Fixes duplicate CSS generation from the nested .clearfix class and mixin by switching to &:extend(.mixin all) (also mentioned in changes section).
        Compiled CSS looks only slightly different—yay!
    #11804: Enable CSS source maps in grunt-contrib-less.
    #12003: Customizer now compiles theme.less with updated values.
    #12315: Add npm caching based on npm-shrinkwrap.canonical.json.


v3.0.3 - Dec 5, 2013

General patch release with dozens of bug fixes and more documentation improvements.
Key changes

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.
    #11299: Support .h1 in jumbotrons.
    #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.
    #11598: Remove line breaks in minified CSS.
    #11599: Explicitly call out font files in bower.json to avoid npm errors.
    #11610: Add @grid-float-breakpoint-max to better link navbar behavior across viewports and improve customization when setting @grid-float-breakpoint.
    #11614: Account for responsive tables within panels.
    #11617: Include jspm package configuration in package.json.
    #11623: Reset position to static for grid columns within tables to prevent borders from hiding in IE9, IE10, and Firefox.
    #11648: Restore twelfth column's float.
    #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.
    841da88: Remove browser default top margin from dls.

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.
    4cbc8d4: Remove mention of Chrome from Webkit rendering bug for justified nav.


v3.0.2 - Nov 6, 2013

An impromptu patch release to fix the version numbers in our JavaScript files, restore some missing grid classes, and general improvements to our documentation.

    #10039: Remove window.jQuery for jQuery.
    #11273: Add branch alias for composer.json.
    #11295: Restore offset, push, and pull zero classes (e.g., 1.col-md-offset-0`)
    #11315: Add navigation role to example navbars.
    #11327: Improve nesting of .thumbnail styles.
    #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.
    Update Node to v0.10.x (current stable)
    Fix links to same-page anchors
    Drop media type on basic template example
    Correct download links in readme


v3.0.1 - Oct 30, 2013

First patch release for v3, featuring dozens of documentation improvements, bug fixes, and small improvements.
Docs

    #9880: Use medium grid classes on jumbotron example
    #9887: Document .show and .hide classes
    #9908: Add type="submit" to Customizer compile button to prevent accidental submissions
    #9915: Fix inaccurate comment in media query docs
    #9917: Updated broken download link in README
    #9924: Removed non-ASCII character from non-responsive example CSS
    #9928, #9932: Update carousel example to work in IE10 and correctly display navbar in narrow viewports
    #9931: Add ARIA role="toolbar" to elements with .btn-toolbar in docs examples
    #9991: Better docs for tabbable tab markup and it's fade option
    #10011: Update Grunt instruction links and wording
    #10012: Add David to project readme to monitor dependency currentness
    #10034: Use npm-registered recent version of grunt-html-validation instead of its git repo
    #10040: Better cross referencing of default and navbar pull utilities
    #10042: Updated JS Fiddle tooltip delegation example linked in docs
    #10045: Use v2.3.2 release ZIP instead of master zip for downloads from old docs
    #10081: Documents workaround for tooltips+popovers on disabled elements
    #10082: Documents .navbar-form
    #10087: Add version number to all docs pages (in the footer)
    #10088: Updates accessibility docs regarding nesting heading elements
    #10112: More role attributes in the docs, this time on link buttons
    #10131: Corrects button group selector in JavaScript docs
    #10136: Broken image link in Carousel example
    #10146: Document data-ride carousel feature
    #10209: Fixed broken dismissable alert example
    #10215: More compressed touch icons, updates Respond.js to v1.3.0 and html5shiv.js to v3.6.2, adds bugs to package.json
    #10249: Correct component name of jumbotron component in Jumbotron example
    #10272: Removed unused link for nav alignment in Components page
    #10277: Mention removal of navbar vertical dividers in migration docs
    #10278: Change Google Maps compatibility warning to a general box-sizing warning with optional reset
    #10282: Cross reference tabs and tabs plugin
    #10298: Add progress bar to migration docs
    #10299, #10323: Getting Started wording changes
    #10316: Document .active and :active for buttons
    #10324, 10338: Restore opt-in warning for tooltips and popovers
    #10342: Update affix docs to better communicate plugin behavior
    #10344: Update IE8-9 support section with table of specific CSS3 and HTML5 features and their support in Bootstrap
    #10372: Homepage now shows two download buttons, one for our assets (CSS, JS, and fonts) and one for the source code (the entire repo)
    #10382: Update Disabling responsiveness docs section for brevity
    #10411: Color coded IE8-9 browser support table
    #10414: Carousel now uses Glyphicons as default left/right chevron icons (text icons are still supported)
    #10417: Document .hidden in the Helper classes Screen reader content section
    #10419: Add nav lists to migration guide
    #10453: Add additional screen reader text to button group dropdown toggles
    #10459: Update Customization section in Getting started page
    #10492: Account for responsive tables in panels
    #10497, #10584: Fix Windows 8 and Windows Phone 8 behavior in Internet Explorer 10 and applies "bug fix" to docs
    #10528: Add new About page to the docs with backstory, core team, community links, and translations
    #10573: Un-hardcode tooltip arrow widths and padding for easier customization
    #10591: Add modal remote option semantics change to migration docs
    #10693; Include a copy of the docs license as a file in the repo
    #10711: Address 100% fluid layouts in grid docs and the required padding
    #10768: Fix mention of renamed .img-polaroid class in Migration docs
    #10770: Rename /assets to /docs-assets to reduce confusion between /dist and docs dependencies
    #10790: Disable IE compatibility mode in all docs pages and examples
    #10856: Update grid docs to better explain the sizing and interactions when using multiple grid tier classes
    #11013: Use CDNs for jQuery and HTML5 shiv
    3318a98: Add blog link back to docs homepage
    8df05b9: Remove links to navbar examples from example navbars in Theme example
    022e404: Delete smaller touch icons and only include one
    5d1707a: Remove unused mention of .prettyprint styles from code.less (we no longer use that plugin and the class is undocumented, so we're nuking it)
    6e06489: Remove unnecessary left and right properties from .modal-dialog since we use margin to center the modal
    19db69c: Add Linux Firefox to supported browsers list
    99b3515: update outdated JSFiddle example

Bug fixes and changes

    #9855: Partial fix for open modal content shifting: removed all margin settings to prevent some of the content shifting. Still needs JS love to detect scrollbars and adjust content accordingly (will address in v3.0.2).
    #9877: Add improved .active state to navbar nav in theme
    #9879: Add hover state (move gradient up 15px) to theme buttons]
    #9909: Add @component-active-color variable to complement @component-active-bg (and apply it to dropdowns, nav pills, and list group items)
    #9964: Add fonts directory to bower.json main files list
    #9968: Simplify striped progress bar mixin to remove unused color
    #9969: Add support for output element by styling it more like our .form-control
    #9973: Removed unnecessary -ms-linear-gradient prefix
    #9981: Account for hover and focus states on pagination disabled items
    #9989: Set monospace font-family on <kbd> and <samp> to match browser defaults
    #9999: Make .table-hover styling apply to <th> within contextual table rows too
    #10013: Position carousel left and right controls from the left and right, respectively
    #10014, #10406: Update grid to use width on .containers instead of max-width as IE8 doesn't fully support box-sizing: border-box when combined with min/max width/height
    #10022: Add width: 1em; to all empty Glyphicons to prevent loading flicker
    #10024: Use negative margin to fix the border between button and input in input groups
    #10025: Add additional transform mixins
    #10057: Autohiding scrollbars in responsive tables for Windows Phone 8
    #10059: Add .transition-property() mixin
    #10079: Native-style scrolling in responsive tables for iOS
    #10101, #10541, #10565: Generate CSS file banners via Gruntfile
    #10111: Use different colors for dropdown link hover and active states
    #10115: Default carousel controls and Glyphicon controls should behave the same on small devices and up
    #10126: Update responsive test cases to properly highlight hidden class examples
    #10153: Restore @headings-color variable
    #10154: Add .small to pair with our heading classes (e.g., h1 and .h1)
    #10164: Document .center-block() mixin and update CSS to include it as a class
    #10169: Remove old @navbar-inverse-search-* variables
    #10223: Add @input-color to .input-group-addon to match the form controls
    #10227: Use correct max-width on Offcanvas example media query and add overflow-x: hidden to prevent scrollbar on narrow devices
    #10232: Scope .table styles to immediate thead, tbody, and tfoot elements
    #10245: Add @breadcrumb-separator variable for customizing breadcrumbs
    #10246: Use correct variable for link hover color in Customizer
    #10256: Use @navbar-default-brand-color within the @navbar-default-brand-hover-color variable
    #10257: Remove filter on navbars in theme.less so that dropdowns can be triggered in IE<10
    #10265: Scope background-image reset to Bootstrap buttons and form controls only to avoid Android Firefox bug
    #10336: Replace non-ASCII dash in LESS source file
    #10341: Don't change border color on contextual table classes
    #10399: Add hover styles to text emphasis classes
    #10407: Add line-height to progress bar for proper text alignment within
    #10436: Use @screen-sm variable instead of hardcoded pixel value in type.less
    #10484: Allow for .table-bordered in panels by removing side and bottom margins
    #10516: Use auto positioning for dropdowns in justified nav to fix Firefox rendering
    #10521: Only remove bottom-border from last row of cells in tbody and tfoot within responsive tables
    #10522: Enable use of form validation class on .radio, .checkbox, .radio-inline, and .checkbox-inline
    #10526: Remove custom background on responsive tables and set it in the docs where it should've been originally
    #10560: Remove display: block; from address element since browsers set that to start
    #10590: Mention required jQuery version in docs
    #10601: Use overflow-y: auto; for .navbar-collapse instead of visible to better enable scrolling on Android 4.x devices (see issue for more details on support and gotchas)
    #10620: Remove filter on buttons for IE9 in theme.less due to bleed-through with rounded corners (matches behavior and style of Bootstrap 2.x)
    #10641: Remove unused .accordion-toggle class from docs example
    #10656: Inherit link and caret colors for textual dropdowns in panel headers
    #10694: Remove unnecessary content property from .caret
    #10695: Ensure carets in .nav-pills dropdown links inherit active color
    #10729: Removed the unnecessary override and the !important from .wrap in the sticky footer examples
    #10755: Don't remove quotes around q element by default
    #10778: Use newly-updated Glyphicons to workaround old Android WebKit bug
    #10763: Update html5shiv to v3.7.0
    #10863: Fix check for presence of jQuery
    #10893: Remove comma separating the color and the color-stop in -webkit-linear-gradient in #gradient > .vertical mixin
    #10927: Scope padding-top on .form-control-static to horizontal forms only
    #10949: Use variable for jumbotron font-size instead of hard-coded value
    #10959: Round .lead font-size to nearest whole pixel
    #10997: Move .hidden from responsive utilities to utilities (where it belongs, especially on account of deprecated .hide per #10769)
    #11050: Restore grid mixins
    #11126: Remove box-shadow from .btn-link.dropdown-toggle
    #11127: .navbar-fixed-bottom should have a top border, not a bottom border
    #11139: Add position: relative; to .modal-dialog so that the z-index takes effect
    #11151: Remove rogue H5BP .ir class from print styles
    #11186: Add background-color hacks so that clicking carousel indicators in IE8-9 works as intended
    #11188: Refactor z-index on navbars. Removes the default z-index: 1000; and instead only applies it to static-top, fixed-top, and fixed-bottom. Also fixes up the broken default navbar example's fubared padding.
    #11206: Remove padding-left from first list item within .list-inline
    #11244: Adds .animation() mixin to replace .progress-bar's regular CSS animation properties (and drops the -moz, -ms, and -o prefies as they are not needed per http://caniuse.com/#feat=css-animation).
    #11248: Apply background-color: #fff; to selects in print styles to fix Chrome bug
    291a23a: Audited Customizer variables section and rearranged content

Deprecated

    #9963, #10567: Deprecate @screen-* classes for @screen-*-min to better match the @screen-*-max variables and provide more context to their actual uses.
    #10005: Finish removing uses of @screen-{device} variables by deprecating them for @screen-*-min wherever possible.
    #10100: Deprecate .hide-text mixin for .text-hide. This matches our class-mixin strategy elsewhere (e.g., .clearfix) and ensures the class and mixin use the same name to avoid confusion.
    #10125: Deprecate inconsistent container variables for new @container-{screen-size} variables (e.g., use @container-sm instead of @container-tablet)
    #10769: Deprecate .hide for .hidden so we don't duplicate functionality.


v3.0.0 - Aug 19, 2013

For those who haven't been following along too closely, here's a recap of all the biggest changes shipping with Bootstrap 3:

    New design and an optional theme! With v3, we've gone flat. Don't call it a trend—it's all about customization, folks. Since we simplified the aesthetics though, we thought it'd help to have an optional theme. To use it, check out the Bootstrap theme example.
    Mobile first and always responsive! Nearly everything has been redesigned and rebuilt to start from your handheld devices and scale up.
    Brand new Customizer! It's been redesigned, is now compiled in the browser instead of Heroku, has better dependency support, and even has built-in error handling. Better yet, we now save your customizations to an anonymous Gist for easy reuse, sharing, and modifications.
    Better box model by default. Everything in Bootstrap gets box-sizing: border-box, making for easier sizing options and an enhanced grid system.
    Super-powered grid system. With four tiers of grid classes—phones, tablets, desktops, and large desktops—you can do some super crazy awesome layouts.
    Rewritten JavaScript plugins. All events are now namespaced, no-conflict stuff works way better, and more.
    New Glyphicons icon font! While they were gone for a while, we've since restored the Glyphicons to the main repo. In 2.x, they were images, but now they're in font format and include 40 new glyphs.
    Overhauled navbar. It's now always responsive and comes with some super handy and re-arrangable subcomponents.
    Modals are way more responsive. We've overhauled the modal code to make it way more responsive on mobile devices. They now scroll the entire viewport instead of having a max-height.
    Added some components! New to the mix are panels and list groups.
    Removed some components! We've dropped the accordion (replaced with collapsible panels), submenus, typeahead, and a few more small items. (Worth celebrating as much as adding new ones.)
    More consistent base and sizing classes. Buttons, tables, forms, alerts, and more have been updated to have more consistent classes for easier customizer and extensibility.
    Docs have been blown up, yo. We've added a lot of new documentation, not only for our components, but for browser support (including gotchas and bugs), license FAQs, third party support (and workarounds), accessibility, and more.
    Dropped Internet Explorer 7 and Firefox 3.6 support. For Internet Explorer 8, you'll need to include Respond.js for all the media queries to work correctly. You can read more about browser support in the docs.

For our pre-release testers and others who have been following along with the RCs, here's a list of some of the more prominent changes made since RC2:

    Hella bugs have been fixed (duh, right?).
    Restored the Glyphicons icon font.
    Navbars now require a .navbar-default for the standard version.
    Panels now require a .panel-default for the standard gray variation.
    Alerts now require a modifier class (e.g., .alert.alert-warning for the previously default yellow alert).
    Multiple responsive utilities can now be applied to the same element.
    Examples are back in the main repo and have been fully updated.
    Docs have been updated for more consistent placement, naming, etc.
    Customizer compiling bugs have all been fixed.
    The optional theme has been added and is demonstrated in an example.
    Jumbotrons are now made to extend the full width of the viewport with a container inside, but if you reverse that, the jumbotron in a container will be rounded and padded.
    The navbar components have been updated to better account for the presence of containers and more. You'll see some new margin and padding changes, but no markup changes should be required.


v3.0.0 RC2 - Aug 13, 2013

Second release candidate for the upcoming Bootstrap 3. For a complete set of changes between RC1 and RC1, see the commit logs. Key changes are summarized below. To check it out, visit http://getbootstrap.com or use one of the download options below.

There's no dedicated ZIP file for the compiled CSS and JS—that falls out of date too quickly.

To stay up to date, download the latest 3.0.0-wip instead of the download options below.
Key changes

    Docs changes:
        The Customizer is back! Still needs some work, but functionality has been rewritten and will be improved as we head to final release.
        Added new mention to our browser compatibility docs to highlight the workaround for Internet Explorer 10 in Windows Phone 8 not picking up media queries. See #9171.
        Added new section to the Getting Started page for documenting third party and addon compatibility issues. See #9175.
        Added new Accessibility section, lots of new aria and role attributes, and more for improved 508 and WCAG compliancy. See #9186. Also improved used of more semantic HTML5 elements in docs per #9332, #9347, and #9352.
        Added HTML validation tests, and made any existing failures pass. See #9396.

    Global CSS changes:
        Update vertical and horizontal gradients to make start and end color parameters come first, then start and end positions. Fixes #9049.
        Make .pull-right and .pull-left classes use !important to avoid needing overrides due to specificity (like in navbar, button groups, etc). See #8697.
        Lots of variable additions to components.
        Updated gradients to not include background-color for improved use of rgba() colors within mixins. See #8877

    Grid system:
        Overhauled grid system to include four tiers instead of the original three of RC1. We now have .col-xs (phones), .col-sm (tablets), .col-md (desktops), and .col-lg (large desktops). Responsive utilities have been updated to match these new tiers as well. See relevant commit.
        .rows only have negative left and right margins if they sit within a .container. This resolves the horizontal scrollbar issue for folks with full page containers (restoring the full behavior of the old fluid container from 2.x). See #8959.
        Grid now includes offset, push, and pull classes for each break point See #8974.
        Updated mixins to include ability to specify gutter width as a second parameter. See #8935.

    Buttons:
        Buttons and inputs, and their large counterparts, are now a bit shorter.
        New default button styles and higher contrast on :hover and :active states. Fixes #8786.
        New classes for size modifier classes—instead of .btn-mini, .btn-small, or .btn-large, we now have .btn-xs, .btn-sm, and .btn-lg. See #9056.
        New button group sizing classes: just add .btn-group-xs, .btn-group-sm, or .btn-group-lg to any .btn-group and you're good to go. See #9295.

    Forms:
        Similar to the new button classes, we have new input size classes: .input-sm and .input-lg. See #9056.
        Input focus states now generated via variable and mixin. Use the @input-focus-border variable and .form-control-focus mixin to generate a custom border-color and box-shadow. See commit . * Size modifier classes for large and small components—including buttons, form inputs, pagination, and wells—have all been standardized to use -sm or -lg. See #9056.
        Inline forms now require the use of .form-group, per #9382, to properly align and size all (native and custom) form controls. This also helps make form markup more consistent and flexible (just swap a class), so woohoo!
        Added .static-form-control to account for static, placeholder text in horizontal form layouts. Fixes #8150.
        New input group sizing classes: just add .input-group-sm or .input-group-lg to any .input-group and you're good to go. See #9295.

    Dropped accordion for updated panel.
        We've removed the accordion and instead chosen to extend the panel component to provide the same functionality. See #9404.

    Navbar:
        Overhauled navbar to always be responsive and mobile first.
            Navbars now require a .navbar-header to wrap up brand and toggle.
            .nav-collapse has been renamed to .navbar-collapse and automatically hits a max-height and will overflow to keep your nav content in the same viewport.
            See details in #9403.
        Navbar's no longer use .pull-left or .pull-right, but rather .navbar-left and .navbar-right. This avoids issues with specificity due to chaining classes and enables easier styling.

    Miscellaneous component changes:
        Alerts that are to be dismissed now require .alert-dismissable to properly pad the alert and align the close button. See #9310.
        Responsive utilities are now mixin-able thanks to #9211.
        Dropped .alert-block for a simpler .alert.
        Linked panel titles now inherit their color. Fixes #9061.
        List groups in panels no longer require .list-group-flush.
        Labels now require .label-default for the "default" gray option. See #9123.
        Labels now collapse automatically (not in IE8) when empty. See #9241.


v3.0.0 RC1 - Jul 27, 2013

First release candidate for the upcoming Bootstrap 3. For a complete set of changes and migration help, visit the BS3 pull request and read through the opening comment.


v2.3.2 - Jul 27, 2013

Updated tag to bump the jQuery dependency in Bower and bump Recess to 1.1.9.

Original 2.3.2 tag fixed dropdown for firefox (middleclick) and mobile. (May 17, 2013)


v2.3.1 - Mar 1, 2013

Patch release for @fat's n00bery

    fix missing event type in dropdown
    fix delegated data-attrs for popover/tooltip
    make carousel actually pause when you click cycle
    fix jshint ref in makefile
    fix trying to remove backdrop when no backdrop


v2.3.0 - Feb 8, 2013

Minor release to add carousel indicators, improve tooltips, improve dev setup, and fix hella bugs.

    Repository changes:
        Local instead of global dependencies for our makefile and install process. Now getting started is way easier—just run npm install.
        Upgraded to jQuery 1.9. No changes were needed, but we did upgrade the included jQuery file to the latest release.
        Moved changelog to be within the repo instead of as a wiki page.
    New and improved features:
        Added carousel indicators! Add the HTML and it automagically works.
        Added container option to tooltips. The default option is still insertAfter, but now you may specify where to insert tooltips (and by extension, popovers) with the optional container parameter.
        Improved popovers now utilize max-width instead of width, have been widened from 240px to 280px, and will automatically hide the title if one has not been set via CSS :empty selector.
        Improved tooltip alignment on edges with #6713.
        Improved accessibility for links in all components. After merging #6441, link hover states now apply to the :focus state as well. This goes for basic <a> tags, as well as buttons, navs, dropdowns, and more.
        Added print utility classes to show and hide content between screen and print via CSS.
        Updated input groups to make them behave more like default form controls. Added display: inline-block;, increased margin-bottom, and added vertical-align: middle; to match <input> styles.
        Added .horizontal-three-colors() gradient mixin (with example in the CSS tests file).
        Added .text-left, .text-center, and .text-right utility classes for easy typographic alignment.
        Added @ms-viewport so IE10 can use responsive CSS when in split-screen mode.
    Docs changes:
        Added new justified navigation example.
        Added sticky footer with fixed navbar example.


v2.2.2 - Dec 8, 2012

Bugfix release addressing docs, CSS, and some JavaScript issues. Key changes include:

    Docs:
        Assets (illustrations and examples) are now retina-ready.
        Replaced Placehold.it with Holder.js, a client-side and retina-ready placeholder image tool.
    Dropdowns: Temporary fix added for dropdowns on mobile to prevent them from closing early.
    Popovers:
        No longer inherits font-size: 0; when placed in button groups.
        Arrows refactored to work in IE8, and use less code.
        Plugin no longer inserts popover content into a <p>, but rather directly into .popover-content.
    Labels and badges: Now automatically collapse if they have no content.
    Tables: Nesting support with .table-bordered and .table-striped greatly improved.
    Typeahead:
        Now inserts dropdown menu after the input instead of at the close of the document.
        Hitting escape will place focus back on the <input>.
    Print styles, from HTML5 Boilerplate, have been added.


v2.2.1 - Oct 31, 2012

Hotfix release to address the carousel bug reports.


v2.2.0 - Oct 30, 2012

2.1.2 is now 2.2.0: four new example templates, added media component, new typographic scale, fixed that box-shadow mixin bug, fixed z-index issues, and more.

Highlights

    Added four new example templates to the docs, including a narrow marketing page, sign in form, sticky footer, and a fancy carousel (created for an upcoming .net magazine article).
    Added the media component, to create larger common components like comments, Tweets, etc.
    New variable-driven typographic scale based on @baseFontSize and @baseLineHeight.
    Revamped mini, small, and large padding via new variables for inputs and buttons so everything is the same size.
    Reverted 2.1.1's .box-shadow(); mixin change that caused compiler errors.
    Improved dropdown submenus to support dropups and left-aligned submenus.
    Fixed z-index issues with tooltips and popovers in modals.
    Hero unit now sets basic type styles for the entire component, rather than on .hero-unit p { ... }.
    Updated JavaScript plugins and docs to jQuery 1.8.1.
    Added Contributing.md file.
    Added support for installing Bootstrap via Bower.
    Miscellaneous variable improvements across the board.
    Miscellaneous documentation typos fixed.


v2.1.1 - Sep 5, 2012

    New feature: alert text. We documented these new classes, like .text-success, at the bottom of the Typography section along with the long undocumented .muted.
    Fixed a lot of typos in the docs. Spelling is hard.
    Made the .box-shadow() mixin more durable. It no longer requires escaping for multiple shadows, meaning you can easily use variables and functions in them once again.
    Widened .dl-horizontal dt and .horizontal-form .control-group to better handle the increased font-size.
    Dropdown submenus improved: now you only see the next level, not all levels, on hover of the submenu toggle.
    Clarified jQuery and Bootstrap template requirements in Getting Started section.
    select now utilizes @inputBorder.
    .lead now scales up from @baseFontSize instead of being a fixed font-size and line-height.
    Fixed the vertical three color gradient in latest Firefox.
    Reordered some variables that caused errors in certain Less compilers.


v2.1.0 - Aug 20, 2012

    Submenu support on dropdowns
    Affix JavaScript plugin
    Block level buttons
    State classes on table rows
    Improved disabled states on navs and dropdowns
    The navbar component is now white by default, with an optional class to darken it
    Improved prepended and appended inputs
    New base font-size and line-height
    Added variable for navbar collapse trigger point
    Fluid grid offsets
    Fluid grid system variables are no longer fixed percentages
    Removed LESS docs page


v2.0.4 - Jun 1, 2012

Docs

    Added 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 .lead.
    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.

CSS

    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 input[type="text"], input[type="password"], etc.
    Form field state (e.g., success or error) now applies to checkbox and radio labels.
    Removed redundant CSS on <p> for font-family, font-size, and line-height.
    Removed redundant color declaration from the <label> element.
    Added variables for dropdown dividers border colors.
    legend and .form-actions share the same border-color, #e5e5e5.
    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.
    Updated .placeholder() mixin to use & operator in Less for proper output when compiling.
    Added -ms-input-placeholder to .placeholder() mixin.
    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.


v2.0.3 - Apr 25, 2012
HTML and CSS

    Overhauled the responsive utility classes to simplify required CSS, add !important to all declarations, and use display: inherit in place of display: block to account for different types of elements.
    Removed > from fluid grid column selectors, meaning every element with a .span* class within a .row-fluid will use percentage widths instead of fixed-pixels.
    Fixed regression in responsive images support as of 2.0.1. We've re-added max-width: 100%; to images by default. We removed it in our last release since we had folks complaining about Google Maps integration and other projects, but we're taking a different stance now on these things and will require developers to make these tweaks on their end.
    Added variable @navbarBrandColor for the brand element in navbars, which defaults to @navbarLinkColor.
    Font-family mixins now use variables for their stacks.
    Fixed an unescaped filter on the .reset-filter() mixin that was causing some errors depending on your compiler.
    Fixed regression in .form-actions background, which was too dark, by adding a new variable @formActionsBackground and changing the color to #f5f5f5 instead of #eee.
    Fixed an issue on button group dropdowns where the background color was not using the button's darker color when the dropdown is open.
    Generalized and simplified the open dropdown classes while adding smarter defaults. Instead of .dropdown.open, we now use just .open. On the defaults side, all dropdown menus now have rounded corners to start.
    Improved active .dropdown-toggle styles (for dropdown buttons) by darkening the background and sharpening the inset shadow to match the active state of buttons.
    Direction of animation on progress bars reversed.
    Fixed input-prepend/append issue with uneditable inputs: .uneditable-input was being floated and a missing comma meant its border-radius for the append option wasn't being applied properly.
    Removed height: auto; from img since it was overriding dimensions set via HTML attributes.
    Fixed an issue of double borders on the top of tables with captions or colgroups.
    Fixed issue with anchor buttons in the .navbar-text. Instead of a general styling on all anchors within an element with that class, we now have a new class to specifically apply appropriate link color.
    Added support for @navbarHeight on the brand/project name and nav links for complete navbar height customization.
    Fixed the black borders on buttons problem in IE7 by removing the border, increasing the line-height, and providing darker background colors.
    Removed excess padding on .search-query inputs in IE7 since it doesn't have border-radius.
    Updated alert messages in Components to use button elements as close icons instead of a. Both can be used, but an a will require href="#" for dismissal on iOS devices.
    Fixed an issue with prepended/appended inputs in Firefox where select elements required two clicks to toggle the dropdown. Resolved by moving the position: relative to the select by default instead of on :focus.
    Added a new mixin, .backface-visibility, to help refine CSS 3D tranforms. Examples and explanation of usage can be found on CSS Tricks.
    Changed specificity of grid classes in responsive layouts under 767px to accurately target input, select, and textarea elements that use .span* classes.
    Horizontal description lists, .dl-horizontal, now truncate terms that are too long to fit in their fixed-width column. In the < 767px responsive layout, they change to their default stacked layout.
    Changed tabbable tabs to prevent issues in left and right aligned tabs. .tab-content would not growing to its parent's full width due to display: table. We removed that and the width: 100% and instead just set overflow: auto to clear the left and right aligned tabs.
    Updated thumbnails to support fluid grid column sizing.
    Added > to most of the button group selectors
    Added new variable, @inputBorderRadius, to all form controls that previously made use of the static 3px value everywhere.
    Changed the way we do border-radius for tables. Instead of the regular mixin that zeros out all other corners, we specify one corner only so they can be combined for use on single column table headers.
    Updated Glyphicons Halflings from 1.5 to 1.6, introducing 20 new icons.
    Added an offset paramater to the .makeColumn.
    Increased the specificity of all tabbable nav selectors to include .nav-collapse to appropriately scope the responsive navbar behavior.
    Fixed uneditable inputs: text now cuts off and does not wrap, making it behave just like a default input.
    Labels and badges are now vertical-align: baseline; so they line up with surrounding text.

Javascript

    Add jshint support
    Add travis-ci support w/ headless phantom integration
    Replace UA sniffing in bootstrap-transitions.js
    Add MSTransitionEnd event to transition plugin
    Fix pause method in carousel (shouldn't restart when hovering over controls)
    Fix crazy opera bug #1776
    Don't open dropdown if target element is disabled
    Always select last item in scrollspy if you've reached the bottom of the document or element
    Typeahead should escape regexp special chars
    If interval is false on carousel, do not auto-cycle
    Add preventDefault support for all initial event types (show, close, hide, etc.)
    Fix collapse bug in ie7+ for initial collapse in
    Fix nested collapse bug
    If transitioning collapse, don't start new transition
    Try to autodetect when to use html/text method in tooltip/popovers to help prevent xss
    Add bootstrap + bootstrap.min.js to gh-pages for @remy and jsbin support

Documentation and repo

    Combined badges and labels into a single LESS file, labels-badges.less, to reduce repeated CSS.
    Separated responsive features into multiple files. We now have a file for each grouping of media queries (tablets and down, tablets to desktops, and large desktops). Additionally, the visible/hidden utility classes and the responsive navbar are in their own files. The output is the same in the compiled CSS, but this should give folks a bit more flexibility.
    Added a new CSS Tests page in the docs (not in the top nav) for better testing of edge cases and extending the use of standard components.
    Removed the bootstrap.zip file from the repo and the make process for faster building and a lighter repo. From now on, the zip will only be in the documentation branch.
    Fixed incorrect use of class instead of ID for tabs example and added documentation for multiple ways of toggling tabs.
    Fixed required markup listed for the specialized navbar search field.
    Removed all mention of @siteWidth, a variable no longer in use.
    Removed mentions of unused @buttonPrimaryBackground variable, which is no longer in use.
    Updated LESS docs page to include all the new variables we added in previous releases.
    Removed broken "dropup" menus from tabs and pills examples (shouldn't have been there in the first place).
    Replaced .badge-error with .badge-important. The error option is not a valid class and was a typo in the docs.
    Fixed mention of how to add plain text to the navbar. Previously the docs stated you only needed a p tag, but the required HTML is any element with class .navbar-text.
    Clarified the use of .tabbable for tabs. The wrapping class is only required for left and right tabs to clear their floats. Also added mention of .fade to fade in tabs.
    Updated forms documentation:
        Remove unnecessary duplicate help text in first example
        Added mention of required input class, .search-query, for the search form variation
        Removed incorrect mention of form fields being display: block; to start as fields are inline-block to start.
    Added mention of data-target attribute for the dropdowns javascript plugin to show how to keep custom URLs intact on links with .dropdown-toggle class.
    Updated the Kippt screenshot on the homepage to reflect their recent responsive redesign and upgrade to 2.0.2.


v2.0.2 - Mar 12, 2012

Documentation updates

    All docs pages now have distinct titles, such as Scaffolding · Twitter Bootstrap.
    Updated the Apple touch icons (now black on black instead of the blue grid) and fixed the links to them in the docs.
    Added new global styles docs section to the Scaffolding page.
        Required use of HTML5 doctype
        Overview of global typographic and links details
        Mention of our embedded CSS reset via Normalize.css
    Added version number to the download button on the docs homepage.
    Updated progress bars section to simplify how the classes stack and more clearly indicate the available optional classes and styles.
    Added a new example, SoundReady.fm, to the homepage
    Added various sizes to the docs for button groups

Resolved bugs

    Removed all IE7 hacks and floats from .input-prepend and .input-append, however, this requires you to ensure there is no whitespace in your code between .add-on and the input.
    In .input-prepend and .input-append, added ability to use add-ons on both sides when you chain the selectors.
    Updated lingering .btn-dark reference to .btn-inverse.
    Fixed issue with content being cut off in .tab-content for tabbable sections.
    Updated .navbar .container to use width: auto; to start and then reset the fixed widths via the #gridSystem mixin (it's a little dirty, but required to avoid adding another class).
    Modal footer buttons are now aligned by their parent via text-align: right; instead of float: right on the button level. This was changed to allow the use of .pull-left and .pull-right to align buttons easily. Double check your button order with this change!
    Fixed problem where default striped progress bar was green instead of blue.
    Fixed CSS selector used for input and textarea grid sizes to properly apply the CSS (was input > .span* and now is input.span*).

New features

    Horizontal dividers support added to nav lists
    Added basic version of badges
    Added visible/hidden classes for devices
    Added support for buttons in input-prepend/append component
    Added .navbar-fixed-bottom support
    Added .dropup support for dropdown menus to pop them upward instead of downward (this is automatically done for the newly added fixed bottom navbar).
    Added mixin for new image replacement technique
    Added pause on hover for the carousel
    Added tons of new variables for typography, buttons, forms, dropdowns, navbar, and more for the LESS pros out there. These variables have also been reflected on the Customize page.
    Added new horizontal description list variation
    Added .disabled class support to the pager component (also added a mention of this to the docs)
    Added .well-large and .well-small classes for extending the well component


v2.0.1 - Feb 17, 2012

    Previously the docs called for use of .control-label in the examples, but the CSS didn't make clear use of it. This class is required for horizontal forms and has been reflected in the CSS.
    We've tried our best to improve rendering of buttons and icons across all browsers. Some issues remain; Firefox throws an !importanton line-height for inputs, so that's the big one.
    We refined the label component style to move away from uppercase.
    Added the black button option, .btn-inverse.
    Added a mini button class, .btn-mini.
    We had to re-add the protocol, http: to the HTML5 schim because IE7-8 wouldn't recognize it, dropping some HTML5 support for those browsers and introducing major performance issues.
    Resolved some issues with responsive layouts where media queries would overlap at 768px and 980px.
    Rearranged Scaffolding docs page to split fixed and fluid grid systems.
    Tons of docs updates for typos and language changes.


v2.0.0 - Feb 1, 2012

Essentially an entire rewrite of the library—docs, CSS, and JavaScript. Adds optional responsive CSS for nearly all components.
Project changes

    Docs: major updates across the board to general structure, examples, and code snippets. Also made responsive with new media queries.
    Docs: all docs pages are now powered by Mustache templates and strings are wrapped in i18n tags for translation by the Twitter Translation Center. All changes to documentation must be done here and then compiled (similar to our CSS and LESS).
    Repo directory structure: removed the compiled CSS from the root in favor of a large direct download link on the docs homepage. Compiled CSS is in /docs/assets/css/.
    Docs and repo: one makefile, just type make in the Terminal and get updated docs and CSS.

Scaffolding
Grid system

    Updated grid system, now only 12 columns instead of 16
    Responsive approach means your projects virtually work out of the box on smartphones, tablets, and more
    Removed unused (by default) grid columns support for 17-24 columns

Responsive (media queries)

    Media queries added for basic support across mobile and tablet devices
    Responsive CSS is compiled separately, as bootstrap-responsive.css

Base CSS
Typography

    h4 elements were dropped from 16px to 14px with a default line-height of 18px
    h5 elements were dropped from 14px to 12px
    h6 elements were dropped from 13px to 11px
    Right-aligned option for blockquotes if float: right;

Code

    New graphical style for &lt;code&gt;
    Google Code Prettify styles updated (based on GitHub's gists)

Tables

    Improved support for colspan and rowspan
    Styles now restricted to new base class, .table
    Table classes standardized with .table- required as a prefix
    Removed unused table color options (too much code for such little impact)
    Dropped support for TableSorter

Buttons

    New classes for colors and sizes, all prefixed with .btn-
    IE9: removed gradients and added rounded corners
    Updated active state to make styling clearer in button groups (new) and look better with custom transition
    New mixin, .buttonBackground, to set button gradients

Forms

    Default form style is now vertical (stacked) to use less CSS and add greater flexibility
    Form classes standardized with .form- required as a prefix
    New built-in form defaults for search, inline, and horizontal forms
    More flexible horizontal form markup with classes for all styling, including new optional class for the label
    Form states: colors updated and customizable via new LESS variables

Icons, by Glyphicons

    New Glyphicons Halflings icon set added in sprite form, in black and white
    Simple markup required for an icon in tons of contexts: &lt;i class="icon-cog"&gt;&lt;/&gt;
    Add another class, .icon-white, for white variation of the same icon

Components
Button groups and dropdowns

    Two brand new components in 2.0: button groups and button dropdowns
    Dependency: button dropdowns are built on button groups, and therefore require all their styles
    Button groups, .btn-group, can be grouped one level higher with a button toolbar, .btn-toolbar

Navigation

    Tabs and pills now require the use of a new base class, .nav, on their &lt;ul&gt;
    New nav list variation added that uses the same base class, .nav
    Vertical tabs and pills have been added—just add .nav-stacked to the &lt;ul&gt;
    Pills were restyled to be less rounded by default
    Pills now have dropdown menu support (they share the same markup and styles as tabs)

Navbar (formerly topbar)

    Base class changed from .topbar to .navbar
    Now supports static position (default behavior, not fixed) and fixed to the top of viewport via .navbar-fixed-top (previously only supported fixed)
    Added vertical dividers to top-level nav
    Improved support for inline forms in the navbar, which now require .navbar-form to properly scope styles to only the intended forms.
    Navbar search form now requires use of the .navbar-search class and its input the use of .search-query. To position the search form, you must use .pull-left or .pull-right.
    Added optional responsive markup for collapsing navbar contents for smaller resolutions and devices.

Dropdown menus

    Updated the .dropdown-menu to tighten up spacing
    Now requires you to add a &lt;span class="caret"&gt;&lt;/span&gt; to show the dropdown arrow
    The navbar (fixed topbar) has brand new dropdowns. Gone are the dark versions and in their place are the standard white ones with an additional caret at their tops for clarity of position.

Labels

    Label colors updated to match form state colors
    Not only do they match graphically, but they are powered by the same new variables

Thumbnails

    Formerly .media-grid, now just .thumbnails, we've thoroughly extended this component for more uses while maintaining overall simplicity out of the box.
    Individual thumbnails now require .thumbnail class

Alerts

    New base class: .alert instead of .alert-message
    Class names standardized for other options, now all starting with .alert-
    Redesigned base alert styles to combine the deafult alerts and block-level alerts into one
    Block level alert class changed: .alert-block instead of .block-message

Progress bars

    New in 2.0
    Features multiple styles via classes, including striped and animated variations via CSS3

Miscellaneous components

    Added documentation for the well component and the close icon (used in modals and alerts)

Javascript plugins

We're rewritten just about everything for our plugins, so head on over to the Javascript page to learn more.
Popovers

    Child elements now properly namespaced: .title to .popover-title, .inner to .popover-inner, and .content to .popover-content.

New plugins

    Collapse
    Carousel
    Typeahead


v1.4.0 - Nov 4, 2011

    Updated tables to make no border the default and add options for condensed and bordered versions
    Updated form states to expand on error styles and provide warning and success variations
    New javascript plugin for button states
    Switched to strict mode for Javascript plugins
    Added more data attribute controls to our plugins
    Full list of 25+ issues fixed: https://github.com/twitter/bootstrap/issues?milestone=6&state=closed


v1.3.0 - Sep 16, 2011

New features

    Javascript plugins for modals, alerts, dropdowns, scrollspy, tabs, tooltips, and popovers that work with jQuery and Ender
    Massively updated docs for both the main page and for the new javascript plugins
    Inline labels for marking inline content with key visual flags
    Media thumbnails
    Breadcrumbs

Updated docs

    Added complete javascript page with detailed documentation for how to use plugins
    Three complete example pages of using Bootstrap, linked from main docs page with thumbnails
    Added section for compiling Less, for guidelines on how to recompile Bootstrap with Less
    Added section for customizing grid variables in Less to roll your own grid system
    Added section for code for using pre and code tags
    Added section for form field sizes that match grid column sizes

Key bug fixes and changes

    Updated table styles to be just a tad bit more refined
    Added new form input sizes based on the Bootstrap grid system (meaning now you can do input.span5 for a 280px-wide input)
    Removed :focus states from :active links in Firefox
    Fixed unqualified .clearfix in forms.less that added bottom margin to all containers
    Updated .container() mixing to be .fixed-container() to prevent conflicts when compiling
    Added focus states (either box-shadow or outline on :focus) to all buttons, links, and inputs
    No longer require h3 in topbar, but still support for backwards compatibility


v1.2.0 - Sep 3, 2011

    Dropdowns refactored to be extensible (now work in ul.tabs)
    Added HTML5 form support by generalizing the form selectors (e.g., input instead of input[type=text|password])
    Gradients back in IE, but removed rounded corners in IE9 to prevent background bleed on buttons and alert messages
    Simplified the grid CSS by removing the static .span1-16 classes in favor of CSS-style regex for column styles in the grid
    Added .one-third and .two-thirds columns to the grid system
    Fixed bug in disabled buttons where they received :active styles
    Bug fixes


v1.1.1 - Aug 26, 2011

    Redesigned alerts to be more readable
    Refactored buttons and alerts CSS to be simpler
    Updated grid system to be more specific and not require .column or columns
    Improved on specificity of CSS selectors by removing unnecessary tag and parent selectors
    Miscellaneous updates to docs
    Bug fixes


v1.1.0 - Aug 22, 2011

    Added support for IE7 and IE8
    Added examples directory with first example usage of Bootstrap for a simple website
    Syntax fixes for gradients and color-stops
    Miscellaneous updates to docs
    Bug fixes


v1.0.0 - Aug 18, 2011

Initial release of Bootstrap! Includes only CSS and docs (JavaScript plugins not added until v1.3).
