v3.3.0
Be sure to read the blog post for more details!
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'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-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 fromfloat
toposition: 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 ofmax-device-width
, notmax-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
margin
s 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 totranslate
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-item
s. - #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
caption
s in.table
s 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 thefont-weight
andline-height
resets from.popover-title
to the.popover
, and addsfont-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
transform
s 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
.
- #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
orprev
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
forwidth
andheight
. - #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 oftranslate3d
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
andhidden
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-heading
s 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 addsaria-labelledBy
,aria-controls
, andaria-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 regeneratebootstrap.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.