Be sure to read the blog post for more details!
CSS
Variables and mixins
- #13923: Add
@gray-basevariable to make@gray-*variables work better together. -
#14440: Remove unused
@nav-open-link-hover-colorvariable. -
#14511: Add missing
border-radiusvariables for small and large inputs. -
#14592: Add
@progress-border-radiusvariable for progress bar. - #14786: Add
@link-hover-decorationvariable. - #14891: Add
@cursor-disabledvariable.
Code
- #14168: Make nested kbd elements bold so you can better identify combinators.
Type
-
#13967: Don't reset the
<cite>element'sfont-style. -
#14682: Remove the
content: "";reset on<blockquote>elements as it can cause rendering bugs.
Images
-
#13996: Revert the IE backslash hack for
.img-responsiveon SVG images from #10073 as it stretches all image types unnecessarily in IE<11.
Tables
-
#13202: Always use
overflow: auto;on.table-responsiveto prevent content breaking out of containers. - #13920: Assign
background-colorto<tr>elements instead of<th>/<td>within the.table-stripedto avoid broken backgrounds on responsive tables. - #14095: Add basic styling for
<caption>s. -
#14251: Remove the
-webkit-overflow-scrollingon.table-responsiveto prevent Safari from screwing up<body>width. - #14838: Fix IE9 bug when
.table-responsiveis 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-heightfor radio/checkbox to their inner<label>given move fromfloattoposition: absolute;in v3.2.0. - #14005: Only adjust the
.has-feedbackicons when needed. - #14104: Remove pointer events on feedback icons.
-
#14107: Lighten placeholder text back to
#999. -
#14221: Make
.form-control-staticwork in inline forms as well. -
#14234: Reset the IE8-10 temporal input
line-heightbug with another hack just for IE11.
Buttons
- #14029: Add
touch-action: manipulationto buttons to remove the 300ms delay in IE10+. - #14030: Remove superfluous
cursor: pointer;on.btn-linksince we already set it on.btn. -
#14310: Remove the
box-shadowon.btn-link.activeto match the existing:activeoverride.
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-heighton the.navbar-collapsecontent requires use ofmax-device-width, notmax-width. -
#13325, #13464: Changed
:last-childoverrides in navbars to:first-childto 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-rightto further fix #13325 and #13464. -
#14557: Remove the
margin-bottomon.form-group:last-childin xs.navbar-form. - #14667: Remove
translate3dfrom.navbarand switch totranslateto prevent iOS dropdown rendering bugs and make the CSS more predictable.
Jumbotron
-
#14337: Round
.jumbotroncorners within.containerand.container-fluid. - #14563: Prevent jumbotron reflow by changing the
paddingof.jumbotronso it doesn't interfere with the.containerside padding.
List groups
- #13931: Set
not-allowedcursor on disabled.list-group-items. -
#14711: Account for list groups in collapsing panels—just replace the
.panel-bodywith a.list-group.
Progress bars
-
#13953, #14736: Remove the progress bar
min-widthstyles for low percentages to avoid jumping progress.
Media object
- #14801: Add vertical alignment of image in media component. Also deprecated the use of
.pull-leftand.pull-rightin.media. They are replaced by the new.media-leftand.media-rightclasses.
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-heightproperties in popovers. Moves thefont-weightandline-heightresets from.popover-titleto the.popover, and addsfont-size. - #14465: Make
@popover-arrow-colorvariable use the@popover-bgvariable instead of regular#fff.
Affix
- #13974, #14123: Remove translate3d repaint performance enhancement for text rendering and position wonkiness.
- #14363: Make affix accept
0as 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-bgvariables in background gradients on active/open navbar items. -
#14806: Reset the
text-shadowon badges in the themed buttons.
Glyphicons
- #14869: Added
.glyphicon-euralias for.glyphicon-euro.
- #14452: Update
print.lessfrom 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
.focusto focused radio and checkbox buttons with the button plugin. - #13998: Namespace the
affixedevent - #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
remoteoption of modals - #14069: Carousel now skip over non-items when its
nextorprevmethods 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
.alertfor 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 (
collapsingclass is removed). - #14573: Make
inDomcheck of tooltip cross document compatible. - #14492: Handle lack of .width and .height from getBoundingClientRect() in IE8.
- #14353: Collapse: count
.collapsingelements 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-openclass after backdrop is hidden. - #14599: Tooltip: Rely on
getBoundingClientRectforwidthandheight. - #14623: Use container instead of parent for tooltip/popover auto-placement calculations.
- #14626: Carousel: Only enable
pause: hoverfor non-touch browsers. - #14722: Escape key should only close Dropdown.
- #14723: Use
translateinstead oftranslate3don modals to fix bug where sometimes modal wouldn't reappear in Safari. - #14590: Add
keyboardoption 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
hideandhiddenevents 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
collapsedclass on triggers even when manually invoked. - #14463: Independently delegate data-api selectors.
Accessibility
- #14070: Add
role="tablist"to.nav-pillsin examples to improve accessibility. - #14071: Add
role="listbox"to.carousel-innerto 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-collapseto improve accessibility. - #14089: Add
role="tablist"&aria-multiselectable="true"to accordion.panel-group. - #14208: Add ARIA attributes to dropdown plugin.
- #14242: Remove
aria-describedbyattribute from tootips later - #14147: ARIA / screenreader support for collapse
- #14577: Wrap
.pagination&.pagerin<nav>so that AT can know they're for navigation - #14578: add
aria-labelledbyto accordion example to improve accessibility - #14579: add
role="tab"to.panel-headings in accordion example to improve accessibility - #14673: Add
visibilitystyles 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-pressedto single toggle buttons. - #14154: Add
aria-expandedtoggling to tabs plugin. Also addsaria-labelledBy,aria-controls, andaria-expandedto 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 rougebefore building.) -
#13746: Add docs section for swapping
.navbar-brandfor 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
.collapseddefault class to.navbar-collapsefor 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
kbdafter #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
:hoverand scrolling. - #14256: Correctly document arguments passed to
title&contentoptions 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
placementfunction option of tooltip/popover. - #14332: Clarify that closing an Alert removes it from the DOM.
- #14406: Consistently use
<nav>instead of<div>for.navbarin 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
.collapsedclass to accordion examples. - #14745: Use
httpsfor Twitter links. - #14858: Document
.alert-dismissible.closebutton 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-6classes in offcanvas example with.col-xs-6.
Build tools / Packaging
- #14050: Ensure that Bower installs include useful dotfiles (
.jshintrc,.csscomb.json, etc.) - #14290: Fix
watchtask to also watch files in subdirectories of/less/. - #14336: Have
watchtask regeneratebootstrap.jswhen JS source files are modified. - #14394: Adjust Gruntfile so that
grunt distworks when Bootstrap has been downloaded via Bower. - #14488: Simplify
copytask. - #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.jsso the npm module can be properly required.
Customizer
- #13790: Add feature to import customization
config.jsonfiles via drag-and-drop. - #14411: Fix Gist creation API call.