Breaking changes
As mentioned in our Beta 2 release, we needed to make a few more breaking changes in Beta 3. We've summarized them here and in our migration docs—be sure to read them!
-
Rewrote native and custom check controls. Both browser default and custom checkboxes and radios now have simpler markup after removing the
<input>from the<label>. Now, all checkboxes and radios have a parent<div>and sibling<input>and<label>pair. This is essential for form validation and disabled inputs because we can use the input's state to style the label.In addition, custom checkbox and radio elements no longer have a
.custom-control-indicator. This is generated from the new.custom-control-label. -
Input groups were rewritten with specific
.input-group-{prepend|append}classes. The new approach allows us to support validation styles and messages within input groups, while also adding support for custom selects, custom file inputs, and multiple.form-controls. -
Responsive tables are once again parent classes to avoid accessiblity issues with changing a
<table>'sdisplay. -
Deleted the
.col-form-legendclass, consolidating it's styles into the.col-form-labelclass.
Read the Migration page for further details.
More highlights
In addition to the breaking changes, we've addressed a few more general issues that may impact your project.
-
Restored
cursor: pointerto non-disabled links, buttons,.close, navbar toggler, and pagination links. -
Added a new vertically centered modal option with
.modal-dialog-centered. -
Added new dropleft and dropright variants for dropdowns in #23860.
-
Our npm package no longer includes any files other than our source and dist JavaScript and CSS files. If you previously relied on our running our scripts via the
node_modulesfolder, you'll need to update your build tools. -
Print styles have moved to bottom of the import stack to properly override styles.
For more details on this release's changes, take a look at the Beta 3 ship list issue, as well as the Beta 3 project.