Please check our migration guide for more info!

🚀 Features

  • #32280: Add toast positioning
  • #30980: Add RTL support
  • #32217: Ability to add custom class in tooltip/popover
  • #31643: Add a state field to create utility pseudo-classes

🎨 CSS

  • #31178: Update Popper to v2.x
  • #31303: Keep rounded corners for the first .btn in vertical button group
  • #31643: Add a state field to create utility pseudo-classes
  • #31735: Simplify make-container()
  • #32149: Rename scale-color() function to shift-color()
  • #32201: fix(container): use $variable-prefix
  • #32213: _reboot.scss: remove needless Stylelint disable
  • #32249: breadcrumb: simplify appearance, improve extensibility
  • #32277: Remove default linear gradient
  • #32280: Add toast positioning

️ JavaScript

  • #28849: Accessibility: add aria-label for tooltips
  • #29370: create a base component
  • #31178: Update Popper to v2.x
  • #31827: Add namespace "bs" in the data attributes
  • #32095: JS: use more "modern" APIs
  • #32124: tooltip.js: deduplicate _fixTitle()
  • #32152: Fix .close instances
  • #32154: BrowserStack: test both on iPhone 7 and iPhone X
  • #32173: Make the attribute methods bs specific
  • #32178: Handle Chromium to run Karma
  • #32179: Don't hide modal when config.keyboard is false
  • #32217: Ability to add custom class in tooltip/popover
  • #32221: Add missing tags in unit tests
  • #32224: Be consistent with Popper's name.
  • #32233: Update bundle.js in tests/integration
  • #32279: Remove the show config option from the modal plugin
  • #32310: Remove Polyfill leftovers

📖 Docs

  • #31098: Docs: change sidebar collapse controls to actual button elements
  • #31608: Add baseof.html layout to docs
  • #32117: Update _syntax.scss
  • #32131: application.js: remove non-existent selector
  • #32134: Add hyphen between Sass and based
  • #32135: Fix caniuse.com URLs to prevent redirects
  • #32139: floating-labels.md: fix grammar error
  • #32143: example.html: remove extra whitespace
  • #32153: popovers.md: unbreak line
  • #32158: Switch to jsDelivr for the remaining docs assets
  • #32162: docs: Add missing .has-validation class for input group example
  • #32163: docs: update selector CodePen example
  • #32174: Position Utilities Docs: Fix the marker SVG color to match the button
  • #32175: skippy.html: reduce whitespace output
  • #32176: docs: use expanded Sass output style for development
  • #32177: examples: fix .btn-block instances
  • #32187: Manually optimize SVGs
  • #32189: docs(dropdowns): clarify where is .show applied
  • #32191: Correct block button breakpoint docs typo
  • #32194: Docs: fix homepage npm install version
  • #32198: examples: add the version number in title
  • #32204: Fix a few typos
  • #32223: introduction: split comments
  • #32224: Be consistent with Popper's name.
  • #32226: docs: use event instead of e
  • #32258: homepage: fix wrong alt attribute
  • #32281: Add mention of link underline change to migration and typography
  • #32335: cheatsheet.js: use event instead of e

🌎 Accessibility

  • #28849: Accessibility: add aria-label for tooltips

🧰 Misc

  • #29753: Improve build/generate-sri.js regex
  • #30986: Revisit our browserslist config
  • #32125: Update codeql.yml
  • #32154: BrowserStack: test both on iPhone 7 and iPhone X
  • #32222: CI: specify FORCE_COLOR:2
  • #32232: npm scripts: run integration tests in parallel
  • #32257: README: fix path to search.js
  • #32310: Remove Polyfill leftovers
  • #32326: Fix css-prefix-examples-rtl script

📦 Dependencies