Releases: twbs/bootstrap
v4.0.0 alpha
First alpha release!
See the pull request or the blog post for more details.
v3.3.5
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-indexto avoid border overlapping in input groups - #15956: Properly position
.form-control-feedbackacross within input groups - #15976, #15978: Fix overlapped
borderon pagination links on hover - #16047: Make
.text-emphasis-variantadjusta:focuscolor in addition toa:hovercolor - #16086: Reset text/font properties more thoroughly for tooltips+popovers
- #16089: Add
@jumbotron-heading-font-sizevariable - #16092: Only disable
pointer-eventson disabled<a>.btns - #16120, #16350: Add
max-width: noneto.media > .img-thumbnailto prevent malformed images - #16160: Make
.bg-variantmixin adjust:focuscolor in addition to:hovercolor - #16166, #16174: Update
.visible*mixin to use!importanton<table>elements - #16175: Fix
border-radiuson 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
pxunit to perspective property value - #16258: Fix regression that made
.caretnot display in IE8 - #16259: Remove workaround for OS X
<select>printing bug that's been fixed in recent Chrome - #16271, #16373: Add
@btn-border-radiusvariables 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
paddingandmargin - #16333: Ensure proper sizing of
.form-control-feedbackin.form-group-*size variations. - #16346, #16472: Update iOS temporal input overrides to be limited to
.form-controluses. - #16371, #16405: Vertically center carousel controls in small viewports.
- #16374, #16477: Redo jumbotron
paddingto prevent double negative spacing and overflowing containers. - #16457, #16447: Add the license banner to the top of
bootstrap.less. - #16460: Fix inaccurate
.pagination-smheight by specifyingline-height. - #16482, #16485: Add
border-radiusvariable to theme's inverse navbar. - #16614: Fix asymmetry between dropup and dropdown carets.
Accessibility
- #16154: Darker style
.focusand:focus:hoveron.activebuttons - #16226, #16404: Fix radio and checkbox keyboard handling in
.btn-group(plus removal of obsolete unit test) - #16571: Generalize dropdowns / drop
role="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/popoverevent fired after tooltip/popover DOM is inserted into the document - #16151: Tooltip/popover: Allow
viewportoption to be a function - #16152: Fix auto placement to use viewport on tooltips and popovers
- #16158: Modals: Remove
aria-hiddenusage that's redundant todisplay: none - #16263: Use
.dropdown-menuinstead 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"toa[data-toggle="collapse"] - #16107: Add
.alertchange 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-expandedto 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
paddingin.bs-docs-headerthat 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-alignon badges frombaselinetomiddlefor 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-inlinein non-responsive example doesn't stack - #16369: Separate the docs for
.dropdownand.dropupfor more accurate examples - #16398: Remove
role="button"from download links - #16409: Document Affix plugin's
checkPositionmethod - #16411: Document that
'manual'trigger is mutually exclusive of other tooltip/popover triggers - #16417: Added
#panels-footerto 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
heightandoverflow. - #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.jsonto comply with Bower's new spec for themainfield - #16378: Set
"moduleType": "globals"inbower.json - #16379: Remove moot
versionfield from and addlicensefield tobower.json - #16408: Include entire
/grunt/folder in npm package so thatgrunt distworks
Grunt
v3.3.4
CSS
- #15561, #15628: Properly resize
.badges inside.btn-group-xs - #15620: Add
.glyphicon-*aliases for other ISO 4217-ish currency codes:.glyphicon-btcand.glyphicon-xbtfor.glyphicon-bitcoin.glyphicon-jpyfor.glyphicon-yen.glyphicon-rubfor.glyphicon-ruble
- #15656: Improve positioning of inline checkboxes and radio buttons by setting
position: relative - #15682, #15697: Ensure
.caretis the same size in Firefox - #15699: Ensure
.form-control-staticdoesn't change height when it's empty - #15719, #15728: Add a variable for
.form-group'smargin-bottom - #15726: Remove unnecessary nesting of
.embed-responsive-*classes - #15755: Removed unnecessary
visibility: hidden !importantfrom.hiddenclass per upstream H5BP change - #15825: Use a utility mixing for
.initialismtext transformation - #15947, #15974: iOS fix for
role="button"elements - #16021: Remove
visibilityproperties where they are redundant to existingdisplayproperties
JS
- #15378: Modal: Work around IE scrollbars not taking up page width
- #15496: Make
$(document).tooltip({...})without theselectoroption throw an error - #15520: Dropdown: Properly ignore
.disabledelements when using keyboard navigation - #15557: Tooltip: Avoid creating an unnecessary tooltip when
Tooltip#hideis 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()'sisHorizontalparameter toisVerticalfor accuracy - #15693: Remove duplicate implementation of
tip()method inpopover.js - #15930: Modal: Apply any preexisting inline body padding again after closing
- #15941: Update the
.collapsedclass andaria-expandedattribute 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
:hoveron mobile browsers - #15648: Improve image layout in the Carousel example and document image alignment via
.center-block - #15662: Mention
dropupvariation in dropdown docs - #15683, #15703: Clarify usage and effects of
readonlyanddisabledinputs - #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
destroyworks 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
mainfield - #15716: Integrate with Meteor's package manager
- #15809: Specify the files to install via npm
Grunt/Travis
v3.3.2
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-objectthat was removed in #14801. - #15140: Restore
.mediaand.media-bodystyles that were removed in #14801. - #15142: Add
position: relative;to.dropupfor proper menu placement. - #15148, #15307: Use same value for
margins on default.dropdown-menuas.dropup .dropdown-menus. - #15244: Vertically center
.icon-prevand.icon-nextin carousel controls withline-height: 1. - #15278: Fix
border-radiuson nested button groups with only one child. - #15413, #15422: Fixes
.input-group-smand.input-group-lgfor temporal date inputs. - #15428: Update browser bug references in Less comments.
- #15482: Add
.disabledclass to the.btn-stylesmixin in the theme. - #15497: Increase decimals on
@line-height-largefrom1.33to1.3333333to fix button sizing in Chrome for Windows 8.1. - #15536, #15559: Apply form group size variations to
.form-control-static. - #15551: Fix
.table-stripedto work with tooltips on rows by usingnth-of-typeinstead ofnth-child. - #15565, #15567: Use
@link-hover-decorationfor.btn-linkto match defaulta:hoverstyles. - #15594: Reset the
coloron<small>and.smallelements 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.childreninstead of>in selector. - #15241: Add basic collapse plugin example for toggling another element.
Carousel
- #15152: Make
wrap: falsework again (fixes regression)
Affix
- #15154: Fix bug where
.affix-topwas 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-inlineexample in CSS docs. - #15125: Clean up ARIA role usage.
- #15129: Specify
imgalternative text. - #15133: Fix up use of
scopeandth/tdelements 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/hidemethod qualifies as manual triggering. - #15470: Document the
VERSIONproperty 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-horizontalwork fine on non-<form>s too, - #15569: Document usage of npm package.
- #15581: Add example of using
.form-inlinewith 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
titleand explanation for<abbr>, replaced use ofsr-onlytext witharia-labelfor close buttons, wrapped sidebar navigation in a<nav>. - #15327: Expanded advice for optional icons with hidden labels, replaced use of
sr-onlytext witharia-labelfor 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/clarifiedmultipleattribute 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
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
.activeitem of<ul>-based list groups. - #15052: Fix active styles when in non-anchor
.list-group-item.
Jumbotron
- #14979: Override
.jumbotronpadding within.container-fluidto match.container.
Navbar
- #14965: Reset
border-radiuson 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
focusinevent in addition tofocusevent. - #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 andtextareas.
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-rightin.mediadocs. - #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
.activeclass on one carousel slide.
Customizer
- #14954: Fix
config.jsonfile 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-Compatiblenow validates, so remove it from the list of ignored errors. - Update devDependencies
v3.3.0
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. - #1...
v3.2.0
Be sure to read the blog post for the highlights.
New features
- #12042: Responsive embeds, as seen in SUIT CSS.
- #12204: Visibility and hidden classes for
block,inline-block, andinlineelements. - #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-focusableclass to provide a focus state for skip nav links. - #13194: Update Normalize to v3.0.1.
- #13649: Add
translate3din a few instances to reduce repainting when scrolling. - #13737: Reset the
htmlfont-sizeusing 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.lessand reorganize things. - #12998: Modularized the mixins into separate files. We now have a
mixinsdirectory in ourlessfolder that@imports all the mixins intomixins.less(for backward compatibility). - #13859: Update the
.skew()mixin to useskewX(...) skewY(...)instead of old and deprecatedskew(x,y)syntax.
Grid system
- #12854, #12863: Properly reset
leftvalues toautoinstead of0in.col-*-push-0and.col-*-pull-0grid reset classes. - #13616: Add custom grid gutter support to
.container-fixed()..make-rowand.make-*-colmixins already had this ability, so this simply completes the package.
Images
- #10073: Add
width: 100% \9;to.img-responsiveto prevent IE10 and below from distorting<svg>elements.
Typography
- #12753, #12756: Ensure the
.clearfixis applied on.dl-horizontal ddby moving it out of the media query (Less doesn't respect:extend()within media queries). - #13449: Increase
.leadfont-weightfor better readability on mobile. - #13671: Add
text-transformutility classes. - #13854: Darken
@gray-lightand.leadto meet accessibility guidelines. - #13860: Add a new variable for
.dl-horizontal's offset.
Code
- #12824: Remove
white-space: nowrapfrom<code>elements in favor of defaultpre-wrapvalue for better rendering on narrow viewports. - #13351: Add support for nested
kbdelements.
Tables
- #12722: Scope
.table-responsivestyles toscreendevices only so they're not cut off when printing from Chrome (Safari is fine, unknown for IE and FF). - #12742: Make
.table-responsivemore 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-heighton all date inputs to ensure Mobile Safari and IE8+ display them correctly. - #12759: Make input groups in inline forms use
display: table-cellso they are sized properly and appear on the same line as intended. - #12794: Fix placement of browser-based form validation popovers for
requiredattribute. Applies to Firefox and Chrome. - #12801: Add padding to the bottom of
.form-control-staticto 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.lessfile to placeglyphicons.lesscloser to the top of our imports to avoid specificity issues. - #13003: Move
paddingon.radios and.checkboxs to their immediate<label>s to avoid the no-click deadzone caused by negative margin. - #13066: Add
z-indexto 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-feedbackposition when labels have the.sr-onlyclass 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 radioline-heightproblems (and the vertical alignment) that were introduced after #13003. - #13651: Update explanatory comment about iOS date/time inputs bug.
- #13745: Add optional
.disabledclass to set not-allowed cursor on disabled radio and checkbox labels. - #13856: Add
.form-group-smand.form-group-lg. - #13872: Always apply padding to
.form-control-staticfor proper vertical alignment.
Buttons
- #12937: Darken active button background colors just a bit.
- #13079: Scope
.openbutton 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 > .panelbecause it apparently serves no purpose and cuts off nested dropdown menus. - #12745: Add
@panel-heading-paddingand@panel-footer-paddingvariables 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-colorvariable to customize the text color when hovering on linked list items. - #13857: Properly color
<small>/.smallwithin 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
Navbar
- #12738: Revamps navbar collapse functionality. Instead of setting a
max-heighton all.navbar-collapseelements, we only apply it to fixed top and bottom navbars. Also adds a shortermax-heightfor landscape views to ensure scrolling still works. - #12694, #12813: Correctly reset
.btn-linkcolors in a navbars.
Dropdowns
- #13037: Add
text-align: left;to.dropdown-menuto 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-headerto match dropdown links.
Tooltips and popovers
- #12934, #12952: Base rounded corners on popover titles on the
@border-radius-largevariable. - #13216, #13217: Increase
z-indexvalues on tooltips and popovers to always be in front of modals.
Modals
- #12803: Removed unnecessary top margin from
.modal-footer. All spacing is addressed bypaddingon the.modal-body, and the.modal-headernever had anymarginon it. - 7e551ec: Update padding on modals to be
15pxall around. Previously was15pxin the header and20pxeverywhere else. - #13609: Update modal CSS to prevent shifting before animation.
Collapse
- #12593: Add support to Collapse plugin for
trs andtbodys.
Carousel
- #13242: Fix horizontal alignment of carousel controls by using appropriate margin for each side.
Theme
- #13093: Reset the
background-colorandbackground-imageon 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
shownevent. - #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
scrollheightof<body>in IE10 and lower. - #12337: Correct some internal event names in scrollspy plugin.
- #13220: Correct scrollspy offsets when
scrollheightchanges. - #13589: Adjust for Scrollspy offset when calculating
maxScroll. - #13702: Minor scrollspy refactoring.
Modals
- #11958: Move Modal
removeBackdrop()call fromhideModal()intobackdrop(). - #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.alertevent 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
targetoption to the Affix plugin. - #13541: Improve affix plugin's
affix-bottompositioning.
Tooltips and popovers
v3.1.1
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:focusedstyles to.btn.active:focusedfor improved accessibility. - #12412: Refactored and renamed our internal grid mixins for generating custom number of grid columns.
- #12433: Use negative
marginon.list-inlines so we don't override thepadding-lefton the first list item. - #12448: Use
@navbar-heightinstead on.navbar-brandto prevent element from being shorter than navbar height. Corrects a change introduced in v3.1.0. - #12462: Add
border-radiusto 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-placeholderstyles. - #12532: Scope popover arrow styles to immediate children.
- #12552: Fixes two typos in
carousel.lessfor 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-sizevariable for calculated text size. - #12673: Use
@popover-arrow-widthfor popover offsets. - #12674: Update popover
bordercolors to use computed values rather than static ones.
Sass
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
csslinttask. - #12531: Add
/docs/dist/to thecleantask. - #12534: Allow the bootstrap package in npm to directly expose CSS and Less files.
- #12568: Add the examples' CSS to the
csscombtask. - #12581, #12583: Reorganize all Grunt tasks into one directory so that
gruntruns properly in Bower installations. - #12605: Use license object instead of licenses array in Grunt.
v3.1.0
New features
- Three new templates: Blog, Cover, and Dashboard.
- #10884: Add
.infovariant to contextual table classes. - #11138: Add contextual styles to list groups.
- #11162: Add new sizes,
.modal-lgand.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-colorclasses 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-justifyclass 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: 0to.modalto prevent a focus outline from appearing in Chrome for Windows. - #11107: Add
@modal-backdrop-opacityvariable for customizable modal backdrop. - #11266: Apply a pixel-based
line-heightthat matches theheightto date inputs for iOS 7 for proper vertical alignment of text in the form control. - #11286: Add
@well-bordervariable. - #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-sizeto only<p>elements in.jumbotrons and remove the super-sizedline-heightfrom 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 receivevertical-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
@colorvariable in.button-variant()mixin to setbackground-coloron.badges in buttons for proper default button badge styles. - #11741: Don't set
@headings-font-familyto the same font stack as the<body>; instead, just useinheritfor 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
.clearfixclass 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;andwhite-space: nowraphack for a more durable component with regards to code formatting and custom font size changes. - #11829: Add
.make-xs-columnmixins 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 towidth: auto;to prevent stacking of.form-labelwithin a.form-group. - Removes all
select.form-controlsettings since those are now inherited by the above change - Removes the
width: 1em;from the Glyphicons because it was virtually impossible to override.
- All
- #11841: Breadcrumb padding values now use variables.
- #11859: Restore
@dropdown-caret-colorvariable, but deprecate it. - #11861: Add
@list-group-active-text-colorvariable for improved customization on active list group items. - #11868: Cleanup modal
z-indexvalues inmodals.less. - Updated
<blockquote>to no longer thing text or modifyline-heightfor 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:hoverstyles to linked content. - #12248: Add and use
.bg-variant()mixin to generate background classes. - #12249: Add and use
@modal-mdLess 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-radiusfrom first and last tables or list groups in panels. - #12353: Scope table border reset in panels to first-child rows.
- #12359: Reset
min-widthon<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
heightto.navbar-brandto ensure adding a Glyphicon doesn't increase it's height.
JavaScript changes
- #9318, #9459, #10105: Properly place remote content within the
.modal-contentinstead of.modal-body(see note below). - #10044: Check that
hrefid's are followed by valid characters in dropdowns. - #10134: Don't use jQuery
offsetdirectly because it uses sub pixel rendering. - #10199: Correct
hidden.bsandshown.bsevents 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
$elementto offset top/bottom calc funcs for better dynamic offsets. - #10658: Don't let popover content lose bound events on second
setContentcall. - #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
.collapseto.inafter collapsing animation finishes in collapse plugin. - #10834: Only
preventDefaulton click on[data-toggle="modal"]when the element is a link. - #10890: Calling
$().button(state)shouldn't enable a disabled button. - #10911: Add
loadedevent for use with modal'sremoteoption. - #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.slidingnot 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-opacityvariable. - #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/focusoutinstead offocus/blurfor tooltip and popover focus trigger for Firefox and Safari. - #11825: Add dropdown ARIA roles.
- #12270: Add namespace
.bsalso to the eventdismiss.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-rightmethod 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-rightalignment in favor of a more specific and unique class name. - Adds
.dropdown-menu-rightas the new alignment class. This is then mixin-ed into the.navbar-right.navbar-navdropdown 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-navcomponents.
- #11660: Deprecate
smalland.smallinblockquotecitation in favor offooterelement. - #12398: Deprecate
.box-shadow()mixin.
Documentation
- #10486: Add note about
data-toggledropdown 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.lessfile. - #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-contentand.pill-panein the migration guide. - #11738, #11765: Load minified assets in the doc...
v3.0.3
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-collapseand alignment of.navbar-right:last-childelements 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-collapseborder 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 offloor(). - #10941: Fix Glyphicons path for those importing
bootstrap.lessfrom another directory. - #10979: Don't use
.img-thumbnailas a mixin for.thumbnailto 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
abbrelement from the.initialismselector. - #11299: Support
.h1in jumbotrons. - #11351: Correct grid class reset on input groups by using attribute selector, not an old class from v3 betas.
- #11357: Vertically center
.btn-smand.btn-xsvariations 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
borderparameter since we longer apply that anyway). - #11390: Add
max-width: 100%;to containers within jumbotrons to avoid horizontal scrollbar. - #11402: Set
width: auto;onselect.form-controlwithin.form-inline. - #11414: Add
.smallsupport to blockquote citations. - #11425: Use
margininstead ofpaddingon.modal-dialogto 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-verticalfor nav links vertical padding. - #11449: Prefer Menlo over Monaco for monospaced fonts.
- #11468: Prevent default gradient
background-imageon.navbar-togglein 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;tooverflow-y: visible;to prevent vertical scrollbar in some navbar situations. - #11502: Add missing data namespace for dropdown plugin.
- #11513: Float
navbar-textelements 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
paddingon.navbar-collapseand negativemarginfor 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-titleto ensure proper text color when customizing@headings-color. - #11551: Remove color from
outlinereset for improved outlines on focus. - #11553: Prevent double border on tables in panels without
theadcontent. - #11598: Remove line breaks in minified CSS.
- #11599: Explicitly call out font files in
bower.jsonto avoid npm errors. - #11610: Add
@grid-float-breakpoint-maxto 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
positiontostaticfor grid columns within tables to prevent borders from hiding in IE9, IE10, and Firefox. - #11648: Restore twelfth column's float.
- #11658: Increase
min-heightof.radio/.checkboxfor horizontal forms to ensure alignment of content below. - #11693: Adds
.tableto 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;tobodyin 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()andhide()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.