What’s New

bootstrap

Mobile

The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

Latest v5.3.8 · by twbsWebsitetwbs/bootstrap

Changelog

v5.3.8

Changed
  • Set cursor pointer on input search cancel button
  • Revert focus return explicitly to dropdown trigger
Fixed
  • Fix color-contrast() function for WCAG 2.1 compliance
  • Fix SCSS autorecompile in dev mode
  • Prevent spinner distortion in flex containers with multiline content
Removed
  • Remove Themes from docs
What's Changed
Dependencies
New Contributors

Full Changelog: https://github.com/twbs/bootstrap/compare/v5.3.7...v5.3.8

v5.3.7

Added
  • Add new section on the Download page for the Intelissence extension
  • Mention CDN integrity and crossorigin attributes in introduction page
  • Add example of showing dynamic range value with output
  • Add recommended VSCode extensions and settings configuration to the repository
Changed
  • Refine sanitizer documentation for clarity and completeness
  • Improve accessibility in the "On this page" table of contents and section heading anchor links
  • Relocate ads to the right sidebar to minimize content reflow
  • Clarify the "Via JavaScript" usage example for Accordion Collapse
  • Enhance floating labels placeholder usage description
  • Consolidate multiple 'none' values in the box-shadow Sass mixin for cleaner output
Fixed
  • Fix broken "View on GitHub" URLs in documentation
  • Correct HTML <head> content generated by the "Download examples" button
  • Fix popover and tooltip behavior with a trigger: "hover click" configuration
📚 Documentation
  • Fixed broken "View on GitHub" URLs
  • Corrected HTML <head> content generated by the "Download examples" button
  • Refined sanitizer documentation for clarity and completeness
  • Improved accessibility in the "On this page" table of contents and section heading anchor links
  • Relocated ads to the right sidebar to minimize content reflow
  • Added a new section on the Download page for the Intelissence extension
  • Clarified the "Via JavaScript" usage example for Accordion Collapse
  • Made internal documentation improvements to support future maintenance (no visible user impact)
  • Mention CDN integrity and crossorigin attributes in introduction page
  • Enhance floating labels placeholder usage description
  • Add example of showing dynamic range value with output
🎨 Sass
  • Consolidated multiple 'none' values in the box-shadow Sass mixin for cleaner output
🤖 JavaScript
  • Fixed popover and tooltip behavior with a trigger: "hover click" configuration
🤝 Contributions
  • Added recommended VSCode extensions and settings configuration to the repository

v5.3.6

Added
  • Add usage docs for Accordion JavaScript
Changed
  • Port docs from Hugo to Astro
  • Update devDependencies
  • Bump image-size from 1.0.2 to 2.0.2
Fixed
  • Prevent .visually-hidden overflowing children to become focusable
  • Limit .card-group selectors to immediate children to fix border-radius inheritance issues
  • Attempt to return focus explicitly to dropdown trigger
Highlights
  • Ported the docs from Hugo to Astro for our own sanity!
  • Added usage docs for Accordion JavaScript
  • Prevent .visually-hidden overflowing children to become focusable
  • Limit .card-group selectors to immediate children to fix some inheritance issues
Changes
New Contributors

Full Changelog: https://github.com/twbs/bootstrap/compare/v5.3.5...v5.3.6

v5.3.4

Changed
  • Add workarounds for postcss-values-parser error (negative values in calc())
  • Optimize Sass SVG files
  • Change floating label placeholder's color
  • refactor(accordion): merge selectors for border-radius rule
  • Improve progress bar labels markup and explanations for accessibility
  • Add descriptions for Webpack, Parcel and Vite
  • Update css-grid.md
  • Update a point in the RTL documentation
  • Correct example formatting in 'Utilities > API' for linting compliance
  • Make 'Edit in Stackblitz' links explicit
  • Indicate links in foreign language
  • Clarify the subject of the About page
  • Update WCAG links and references
  • Change wording of single/split danger buttons
  • Further image compression improvements
Fixed
  • Fix modal and offcanvas header collapse
  • Fix display issues of close button in contextual light and dark modes
  • Fix light mode carousel in dark mode
  • Align floating labels with form-select sizes
  • Correct typo in background-blend-mode value
  • Fix use of declarations after nested rules (deprecated in Sass 1.77.7)
  • Floating labels: Fix max-width and background-color
  • button-group: Fix btn-group-vertical by using same rules as btn-group
  • Fix popover toggle twice to close
  • Fix this reference for functions
  • Fix broken comment link for reflow hack
  • Fix clipboard icon not showing after multiple press
  • Fix link endpoint in dropdown documentation
  • Fix .order values in the migration guide
  • Fix transparent navbar in windows high contrast mode
  • Fix example hiding element except on medium and large devices in 'Utilities > Display > Hiding elements'
  • Fix Cheatsheet examples horizontal scrolling
  • Fix $enable-css-grid → $enable-cssgrid in 'Customize > Options'
  • Fix missing $enable-css-grid in options.md
  • Fix Default values and Description content in options table
  • Fix typo in the getting started introduction
Removed
  • Remove unnecessary duplicated CSS class name
  • Remove unneeded flexbug workaround
Changes
  • #40888: Dependabot: switch to grouped updates
🚀 Features
  • #41299: Typo fixed
  • #41187: Docs: mention removal of util.js in migration guide
  • #41228: Docs: Simplify ids for checks, radios and switches
  • #41150: Update fixtureId to FIXTURE_ID for consistency
  • #40965: Docs: Use <article> element for example cards
  • #40932: Docs: add ngx-bootstrap to JavaScript frameworks list
  • #40790: Docs: Drop .grid where it shouldn't be used
  • #40821: Docs: precise how to add new .order-* classes in 'Layout > Columns'
  • #40914: Docs: drop useless .justify-content-start class in homepage
  • #40876: Remove unneeded flexbug workaround
  • #40870: Docs: Update modal min-height inline style
  • #40844: Docs: Remove mention about Safari's limited support flexbox gap
  • #40620: Docs: minor accessibility improvements for Examples
  • #40619: Docs: Fix a minor accessibility issue (checkout example missing h1)
  • #40577: Docs: Add main element to Cheatsheet Examples
  • #39815: Docs: drop unused .bi-exclamation-triangle-fill class
  • #40507: Docs: HTTPS link to ikons iconset
  • #39777: Docs: fix Reddit URL to avoid redirection
  • #39697: refactor(accordion): merge selectors for border-radius rule
🎨 CSS
  • #41336: Fix modal and offcanvas header collapse
  • #41126: Fix display issues of close button in contextual light and dark modes
  • #40695: Fix light mode carousel in dark mode
  • #41004: Add workarounds for postcss-values-parser error (negative values in calc())
  • #41013: Align floating labels with form-select sizes
  • #40931: Fix: correct typo in background-blend-mode value
  • #40900: Remove unnecessary duplicated CSS class name
  • #40876: Remove unneeded flexbug workaround
  • #40844: Docs: Remove mention about Safari's limited support flexbox gap
  • #40623: Fix use of declarations after nested rules (deprecated in Sass 1.77.7)
  • #39720: Floating labels: Fix max-width and background-color
  • #40488: button-group: Fix btn-group-vertical by using same rules as btn-group
  • #39804: Optimize Sass SVG files
  • #39494: Change floating label placeholder's color
  • #39697: refactor(accordion): merge selectors for border-radius rule
☕️ JavaScript
  • #38411: Add note about cancelling modal events to modal.md
  • #41150: Update fixtureId to FIXTURE_ID for consistency
  • #40803: Fix popover toggle twice to close
  • #38725: Fix this reference for functions
  • #39791: Fix broken comment link for reflow hack
📖 Docs
  • #39364: Docs: improve progress bar labels markup and explanations for accessibility
  • #41308: Fix typo in Navbar docs
  • #41299: Typo fixed
  • #41281: Fixed minor typo in Sass documentation
  • #41187: Docs: mention removal of util.js in migration guide
  • #41228: Docs: Simplify ids for checks, radios and switches
  • #38411: Add note about cancelling modal events to modal.md
  • #40917: Fix: clipboard icon not showing after multiple press
  • #40714: Docs: add descriptions for Webpack, Parcel and Vite
  • #40928: Update css-grid.md
  • #41098: Update a point in the RTL documentation
  • #40965: Docs: Use <article> element for example cards
  • #40756: Docs: missing aria-hidden on some decorative SVGs
  • #41036: Docs: add warning callout for Yarn Berry
  • #41052: Doc: Fix link endpoint in dropdown documentation
  • #41030: Docs: fix .order values in the migration guide
  • #40973: Docs: correct example formatting in 'Utilities > API' for linting compliance
  • #40911: fix transparent navbar in windows high contrast mode
  • #40932: Docs: add ngx-bootstrap to JavaScript frameworks list
  • #40951: Docs: fix example hiding element except on medium and large devices in 'Utilities > Display > Hiding elements'
  • #40931: Fix: correct typo in background-blend-mode value
  • #40790: Docs: Drop .grid where it shouldn't be used
  • #40821: Docs: precise how to add new .order-* classes in 'Layout > Columns'
  • #40799: Fix Cheatsheet examples horizontal scrolling
  • #40914: Docs: drop useless .justify-content-start class in homepage
  • #40900: Remove unnecessary duplicated CSS class name
  • #40766: Docs: Make "Edit in Stackblitz" links explicit
  • #40767: Docs: Indicate links in foreign language
  • #40818: Docs: fix $enable-css-grid$enable-cssgrid in 'Customize > Options'
  • #40870: Docs: Update modal min-height inline style
  • #40844: Docs: Remove mention about Safari's limited support flexbox gap
  • #40797: Docs: missing $enable-css-grid in options.md
  • #40762: Docs: clarify the subject of the About page
  • #40703: Docs: Update WCAG links and references
  • #40689: Docs: change wording of single/split danger buttons
  • #40691: Docs: add aria-hidden="true" to decorative SVGs
  • #40686: docs: add aria-hidden='true' to decorative SVGs
  • #40672: Update masthead wording
  • #40639: Further image compression improvements
  • #40620: Docs: minor accessibility improvements for Examples
  • #40619: Docs: Fix a minor accessibility issue (checkout example missing h1)
  • #39846: Fix Default values and Description content in options table
  • #39815: Docs: drop unused .bi-exclamation-triangle-fill class
  • #40522: docs: fix typo in the getting started introduction
  • #40507: Docs: HTTPS link to ikons iconset
  • #40504: docs: add missing data-bs-theme="light" in navbars color schemes markup
  • #39980: Docs: add missing Accordion component in the list of JS components
  • #39951: docs: migrate to the built-in sitemap template
  • #39863: Add PostCSS-RTLCSS approach to the documentation
  • #39829: docs: move examples inline shortcode to a partial
  • #39824: docs: resize docs bundler images and fix dimensions
  • #39779: docs: add a new partial for responsive images and use imageConfig
  • #39768: docs: add a render image hook
  • #39819: docs: update sitemap template
  • #39778: docs: use urls.JoinPath in more places
  • #39807: Move theme toggler to a partial
  • #39805: masthead.html: add rel="noopener" target="_blank"
  • #39808: docs: move examples icons to a partial
  • #39773: Further improve PNG compression
  • #38993: docs: bundle assets with Hugo
  • #39782: docs: mention text transform classes
  • #39749: Update masthead to HeroDevs EOL
  • #39781: docs: move fathom site to hugo config
  • #39777: Docs: fix Reddit URL to avoid redirection
  • #39772: examples: assorted tweaks
  • #39766: Docs: drop data-bs-scroll="true" from navbar
  • #39763: Switch to using hugo.IsProduction
  • #39739: Search: Fix modal on mobile chromium based browsers
  • #39757: footer: remove unneeded trailing slash
  • #39724: Docs: minor tweaks
  • #39745: docs: use a responsive image for bootstrap-logo-shadow.png
  • #39741: More docs fixes
  • #39740: Doc fixes
  • #39738: Fix docs-versions.html
  • #39725: docs: remove Google Analytics
🛠 Examples
  • #40799: Fix Cheatsheet examples horizontal scrolling
  • #40620: Docs: minor accessibility improvements for Examples
  • #40619: Docs: Fix a minor accessibility issue (checkout example missing h1)
  • #40577: Docs: Add main element to Cheatsheet Examples
🌎 Accessibility
  • #40965: Docs: Use <article> element for example cards
  • #40756: Docs: missing aria-hidden on some decorative SVGs
  • #40911: fix transparent navbar in windows high contrast mode
  • #40766: Docs: Make "Edit in Stackblitz" links explicit
  • #40767: Docs: Indicate links in foreign language
  • #40808: Docs: add aria-label to SVG with tooltip
  • #40762: Docs: clarify the subject of the About page
  • #40703: Docs: Update WCAG links and references
  • #40691: Docs: add aria-hidden="true" to decorative SVGs
  • #40686: docs: add aria-hidden='true' to decorative SVGs
  • #40620: Docs: minor accessibility improvements for Examples
  • #40619: Docs: Fix a minor accessibility issue (checkout example missing h1)
  • #40577: Docs: Add main element to Cheatsheet Examples
📦 Dependencies
  • #41305: Build(deps-dev): Bump the development-dependencies group across 1 directory with 9 updates
  • #41265: Build(deps-dev): Bump the development-dependencies group across 1 directory with 5 updates
  • #41234: Build(deps-dev): Bump the development-dependencies group across 1 directory with 7 updates
  • #41171: Build(deps-dev): Bump the development-dependencies group across 1 directory with 3 updates
  • #41155: Build(deps-dev): Bump the development-dependencies group across 1 directory with 4 updates
  • #41109: Build(deps-dev): Bump the development-dependencies group across 1 directory with 8 updates
  • #41082: Build(deps-dev): Bump the development-dependencies group across 1 directory with 7 updates
  • #41010: Build(deps-dev): Bump the development-dependencies group across 1 directory with 5 updates
  • #40978: Build(deps-dev): Bump the development-dependencies group across 1 directory with 6 updates
  • #40953: Build(deps-dev): Bump the development-dependencies group across 1 directory with 6 updates
  • #40929: Build(deps): Bump the npm_and_yarn group with 2 updates
  • #40920: Build(deps-dev): Bump the development-dependencies group across 1 directory with 6 updates
  • #40895: Build(deps-dev): Bump the development-dependencies group across 1 directory with 9 updates
  • #40883: Build(deps-dev): Bump terser from 5.31.6 to 5.34.1
  • #40842: Build(deps-dev): Bump npm-run-all2 from 6.2.2 to 6.2.3
  • #40882: Build(deps-dev): Bump hugo-bin from 0.130.1 to 0.132.0
  • #40843: Build(deps-dev): Bump eslint from 8.57.0 to 8.57.1
  • #40886: Build(deps-dev): Bump rollup from 4.21.2 to 4.23.0 in the npm_and_yarn group
  • #40862: Build(deps): Bump body-parser from 1.20.2 to 1.20.3 in the npm_and_yarn group
  • #40806: Build(deps-dev): Bump postcss from 8.4.44 to 8.4.45
  • #40784: Build(deps-dev): Bump postcss from 8.4.41 to 8.4.44
  • #40788: Build(deps-dev): Bump @babel/cli from 7.24.8 to 7.25.6
  • #40782: Build(deps-dev): Bump rtlcss from 4.2.0 to 4.3.0
  • #40783: Build(deps-dev): Bump eslint-plugin-import from 2.29.1 to 2.30.0
  • #40785: Build(deps-dev): Bump rollup from 4.21.1 to 4.21.2
  • #40786: Build(deps-dev): Bump stylelint-config-twbs-bootstrap from 14.2.0 to 15.0.0
  • #40774: Build(deps-dev): Bump hugo-bin from 0.129.1 to 0.130.1
  • #40773: Build(deps-dev): Bump @babel/preset-env from 7.25.3 to 7.25.4
  • #40775: Build(deps-dev): Bump rollup from 4.20.0 to 4.21.1
  • #40723: Build(deps-dev): Bump hugo-bin from 0.127.0 to 0.129.1
  • #40721: Build(deps-dev): Bump terser from 5.31.3 to 5.31.6
  • #40722: Build(deps-dev): Bump @babel/preset-env from 7.25.2 to 7.25.3
  • #40720: Build(deps-dev): Bump postcss from 8.4.40 to 8.4.41
  • #40697: Build(deps-dev): Bump autoprefixer from 10.4.19 to 10.4.20
  • #40696: Build(deps-dev): Bump rollup from 4.19.1 to 4.20.0
  • #40698: Build(deps-dev): Bump stylelint from 16.7.0 to 16.8.1
  • #40678: Build(deps-dev): Bump @babel/core from 7.24.9 to 7.25.2
  • #40680: Build(deps-dev): Bump karma from 6.4.3 to 6.4.4
  • #40679: Build(deps-dev): Bump @babel/preset-env from 7.25.0 to 7.25.2
  • #40673: Update devDependencies and regenerate package-lock.json
  • #40662: Build(deps-dev): Bump bundlewatch from 0.3.3 to 0.4.0
  • #40655: Update devDependencies
  • #40638: Build(deps-dev): Bump @babel/core from 7.24.7 to 7.24.9
  • #40637: Build(deps-dev): Bump @babel/preset-env from 7.24.7 to 7.24.8
  • #40636: Build(deps-dev): Bump stylelint from 16.6.1 to 16.7.0
  • #40633: Build(deps-dev): Bump @babel/cli from 7.24.7 to 7.24.8
  • #40634: Build(deps-dev): Bump eslint-plugin-markdown from 5.0.0 to 5.1.0
  • #40632: Build(deps-dev): Bump terser from 5.31.1 to 5.31.2
  • #40635: Build(deps-dev): Bump sass from 1.77.6 to 1.77.8
  • #40617: Build(deps-dev): Bump rollup from 4.18.0 to 4.18.1
  • #40616: Build(deps-dev): Bump npm-run-all2 from 6.2.0 to 6.2.2
  • #40615: Build(deps-dev): Bump hugo-bin from 0.125.0 to 0.125.2
  • #40618: Build(deps-dev): Bump @stackblitz/sdk from 1.10.0 to 1.11.0
  • #40601: Build(deps-dev): Bump terser from 5.31.0 to 5.31.1
  • #40604: Build(deps-dev): Bump stylelint-config-twbs-bootstrap from 14.1.0 to 14.2.0
  • #40603: Build(deps-dev): Bump @rollup/plugin-commonjs from 25.0.8 to 26.0.1
  • #40602: Build(deps-dev): Bump postcss from 8.4.38 to 8.4.39
  • #40600: Build(deps-dev): Bump npm-run-all2 from 6.1.2 to 6.2.0
  • #40598: Build(deps-dev): Bump nodemon from 3.1.3 to 3.1.4
  • #40599: Build(deps-dev): Bump hugo-bin from 0.123.3 to 0.125.0
  • #40597: Build(deps-dev): Bump sass from 1.77.4 to 1.77.6
  • #40596: Build(deps-dev): Bump lockfile-lint from 4.13.2 to 4.14.0
  • #40595: Build(deps-dev): Bump @rollup/plugin-replace from 5.0.5 to 5.0.7
  • #40565: Build(deps-dev): Bump eslint-plugin-unicorn from 52.0.0 to 54.0.0
  • #40548: Build(deps-dev): Bump @babel/core from 7.24.5 to 7.24.7
  • #40547: Build(deps-dev): Bump @babel/preset-env from 7.24.5 to 7.24.7
  • #40594: Build(deps): Bump the npm_and_yarn group with 3 updates
  • #40545: Build(deps-dev): Bump @babel/cli from 7.24.5 to 7.24.7
  • #40546: Build(deps-dev): Bump @stackblitz/sdk from 1.9.0 to 1.10.0
  • #39967: Build(deps-dev): Bump eslint-config-xo from 0.44.0 to 0.45.0
  • #40530: Build(deps-dev): Bump nodemon from 3.1.0 to 3.1.3
  • #40528: Build(deps-dev): Bump rollup from 4.17.2 to 4.18.0
  • #40527: Build(deps-dev): Bump @rollup/plugin-commonjs from 25.0.7 to 25.0.8
  • #39964: Build(deps-dev): Bump eslint-plugin-markdown from 4.0.1 to 5.0.0
  • #40519: Build(deps-dev): Bump sass from 1.76.0 to 1.77.4
  • #40520: Build(deps-dev): Bump stylelint from 16.4.0 to 16.6.1
  • #40521: Build(deps-dev): Bump hugo-bin from 0.122.5 to 0.123.3
  • #39950: package.json: ignore eslint for now and regenerate package-lock.json
  • #39939: Build(deps-dev): Bump terser from 5.30.4 to 5.31.0
  • #39949: Build(deps-dev): Bump hugo-bin from 0.122.3 to 0.122.5
  • #39942: Build(deps-dev): Bump sass from 1.75.0 to 1.76.0
  • #39943: Build(deps-dev): Bump @babel/preset-env from 7.24.4 to 7.24.5
  • #39937: Build(deps-dev): Bump @babel/core from 7.24.4 to 7.24.5
  • #39940: Build(deps-dev): Bump rollup from 4.16.3 to 4.17.2
  • #39938: Build(deps-dev): Bump @babel/cli from 7.24.1 to 7.24.5
  • #39936: Build(deps-dev): Bump stylelint from 16.3.1 to 16.4.0
  • #39921: Build(deps-dev): Bump hugo-bin from 0.121.1 to 0.122.3
  • #39922: Build(deps-dev): Bump eslint-plugin-html from 8.1.0 to 8.1.1
  • #39919: Build(deps-dev): Bump terser from 5.30.3 to 5.30.4
  • #39920: Build(deps-dev): Bump rollup from 4.14.3 to 4.16.3
  • #39904: Build(deps-dev): Bump sass from 1.74.1 to 1.75.0
  • #39903: Build(deps-dev): Bump rollup from 4.14.1 to 4.14.3
  • #39902: Build(deps-dev): Bump eslint-plugin-html from 8.0.0 to 8.1.0
  • #39890: Build(deps-dev): Bump @babel/preset-env from 7.24.3 to 7.24.4
  • #39891: Build(deps-dev): Bump @babel/core from 7.24.3 to 7.24.4
  • #39887: Build(deps-dev): Bump rollup from 4.13.2 to 4.14.1
  • #39886: Build(deps-dev): Bump terser from 5.29.2 to 5.30.3
  • #39884: Build(deps-dev): Bump sass from 1.72.0 to 1.74.1
  • #39883: Build(deps-dev): Bump eslint-plugin-unicorn from 51.0.1 to 52.0.0
  • #39859: Build(deps-dev): Bump stylelint-config-twbs-bootstrap from 14.0.0 to 14.1.0
  • #39858: Build(deps-dev): Bump find-unused-sass-variables from 5.0.0 to 6.0.0
  • #39857: Build(deps-dev): Bump stylelint from 16.3.0 to 16.3.1
  • #39855: Build(deps-dev): Bump rollup from 4.13.0 to 4.13.2
  • #39818: Update devDependencies
  • #39806: package.json: stop ignoring jasmine
  • #39802: Build(deps-dev): Bump @babel/preset-env from 7.24.0 to 7.24.1
  • #39803: Build(deps-dev): Bump @babel/cli from 7.23.9 to 7.24.1
  • #39801: Build(deps-dev): Bump @babel/core from 7.24.0 to 7.24.1
  • #39800: Update dependencies
  • #39792: Build(deps-dev): Bump follow-redirects from 1.15.5 to 1.15.6
  • #39775: Update devDependencies and regenerate package-lock.json
  • #39730: Build(deps): Bump streetsidesoftware/cspell-action from 5 to 6
  • #39736: Build(deps-dev): Bump karma-firefox-launcher from 2.1.2 to 2.1.3
  • #39734: Build(deps-dev): Bump @babel/preset-env from 7.23.9 to 7.24.0
  • #39735: Build(deps-dev): Bump @babel/core from 7.23.9 to 7.24.0
  • #39733: Build(deps-dev): Bump karma from 6.4.2 to 6.4.3
  • #39732: Build(deps-dev): Bump autoprefixer from 10.4.17 to 10.4.18
  • #39731: Build(deps-dev): Bump hugo-bin from 0.120.4 to 0.120.7
  • #39714: Build(deps-dev): Bump sass-true from 7.0.1 to 8.0.0
  • #39711: Build(deps-dev): Bump eslint from 8.56.0 to 8.57.0
  • #39713: Build(deps-dev): Bump nodemon from 3.0.3 to 3.1.0
  • #39715: Build(deps-dev): Bump hugo-bin from 0.120.2 to 0.120.4
  • #39704: Build(deps-dev): Bump hugo-bin from 0.119.0 to 0.120.2
  • #39703: Build(deps-dev): Bump lockfile-lint from 4.13.1 to 4.13.2
  • #39699: Build(deps-dev): Bump sass from 1.71.0 to 1.71.1

v5.3.3

Added
  • Allowed <dl>, <dt> and <dd> in the sanitizer
Changed
  • Badges now use the .text-bg-* text utilities to ensure text is always readable in light and dark modes
  • Changed the RTL processing of carousel control icons
Fixed
  • Fixed a breaking change in color modes where _variables.scss now automatically imports _variables-dark.scss
  • Fixed a regression in the selector engine that was unable to handle multiple IDs
  • Fixed color-modes.js script to handle the case where the OS is set to light mode and auto color mode is used
  • Fixed accordion CSS selectors to avoid inheritance issues when nesting accordions
  • Fixed the focus box-shadow for validation stated form controls
  • Fixed the focus ring on focused checked buttons
  • Fixed the product example mobile navbar toggler
Removed
  • Dropped evenly items distribution for modal and offcanvas headers
Deprecated
  • Deprecated $accordion-button-focus-border-color
Highlights
  • Fixed a breaking change introduced with color modes where it was required to manually import variables-dark.scss when building Bootstrap with Sass. Now, _variables.scss will automatically import _variables-dark.scss. If you were already importing _variables-dark.scss manually, you should keep doing it as it won't break anything and will be the way to go in v6.
  • Fixed a regression in the selector engine that wasn't able to handle multiple IDs anymore.
Color modes
  • Badges now use the .text-bg-* text utilities to be certain that the text is always readable (especially when the customized colors are different in light and dark modes).
  • Fixed our color-modes.js script to handle the case where the OS is set to light mode and the auto color mode is used on the website. If you copied the script from our docs, you should apply this change to your own script.
  • Fixed color schemes description in the color modes documentation to show that color-scheme() only accept light and dark values as parameters.
Miscellaneous
  • Allowed <dl>, <dt> and <dd> in the sanitizer.
  • Dropped evenly items distribution for modal and offcanvas headers.
  • Fixed the accordion CSS selectors to avoid inheritance issues when nesting accordions.
  • Fixed the focus box-shadow for the validation stated form controls.
  • Fixed the focus ring on focused checked buttons.
  • Fixed the product example mobile navbar toggler.
  • Changed the RTL processing of carousel control icons.

🎨 CSS
  • #37508: Use child combinators to avoid inheriting parent accordion's flush styles
  • #38719: Fix focus box-shadow for validation stated form-controls
  • #38884: fix border-radius on radio-switch
  • #39294: Tests: update navbar in visual modal test
  • #39373: refactor css: modal and offcanvas header spacing
  • #39380: Fix Sass compilation breaking change in v5.3
  • #39387: docs: fix typo
  • #39411: Optimize the accordion icon
  • #39497: Fix a typo
  • #39536: Changed RTL processing of carousel control icons
  • #39560: Drop --bs-accordion-btn-focus-border-color and deprecate $accordion-button-focus-border-color
  • #39595: CSS: Fix the focus ring on focused checked buttons
☕️ JavaScript
  • #39201: Selector Engine: fix multiple IDs
  • #39224: Fix edge case in color-mode.js
  • #39376: Allow dl, dt and dd in sanitizer
📖 Docs
  • #39200: Typo Fix
  • #39214: Doc: use .text-bg-{color} for all badges
  • #39246: Docs: fix for example code blocks have unnecessary 30px right-margin
  • #39249: Doc: consistent rendering of 'Heads up!' callouts
  • #39281: Fix getOrCreateInstance() doc example
  • #39293: Update background.md
  • #39304: Doc: add expanded accordion explanation
  • #39320: Drop .table-light from table foot example
  • #39340: Doc: add dispose() to Offcanvas methods
  • #39378: Docs: fix sentence in modal
  • #39417: Fix color schemes description in Sass customization documentation
  • #39418: Docs: change vite config path import in vite guide
  • #39435: Docs: add shift-color() usage example in sass customization page
  • #39458: Docs: enhance .card-img-* description
  • #39503: Minor image compression improvements
  • #39519: Docs: use consistent HTML elements in Utilities -> Background page
  • #39520: Docs: drop unused .theme-icon class
  • #39528: docs: clean up example.html
  • #39537: Docs: fix desc around deprecated Sass mixins for alerts and list groups
  • #39539: Update links on get-started page
  • #39592: Update vite.md
  • #39604: Fix typo in 'media-breakpoint-between' in migration docs
  • #39617: Docs: add missing comma in native font stack code source in Content -> Reboot
  • #39663: updated table to be responsive
🛠 Examples
  • #39657: Fix product example mobile navbar toggler
  • #39585: Docs: Add missing type="button" to Cheatsheet nav buttons
🏭 Tests
  • #39294: Tests: update navbar in visual modal test
🧰 Misc
  • #39096: CI: stop running coveralls in forks
  • #39501: CI: switch to Node.js 20
📦 Dependencies

v5.3.2

Added
  • Allow <mark> color customization for color modes
  • Add alternative CDNs section in Getting started -> Download documentation
  • Add Discord and Bootstrap subreddit links in README and Getting started -> Introduction
  • Add new Sass variable $btn-link-focus-shadow-rgb to allow customization
Changed
  • Increase color contrast of form range track background in light and dark modes
  • Use box-shadow CSS variables in shadow utilities instead of Sass variables
  • Further improve image compression with oxipng and the latest jpegoptim
  • Convert build scripts to ESM
Fixed
  • Fix dart-sass deprecation warning by changing values passed to the divide() function
  • Fix multiple ids in a collapse target not working anymore
  • Fix table state rendering for color modes with a focus on the striped table in dark mode to increase color contrast
  • Fix radios looking like ellipse on responsive mode
  • Fix popover template role error
Deprecated
  • Passing a percentage unit to the global abs() is deprecated since Dart Sass v1.65.0
Highlights
  • Passing a percentage unit to the global abs() is deprecated since Dart Sass v1.65.0. It resulted in a deprecation warning when compiling Bootstrap with Dart Sass. This has been fixed internally by changing the values passed to the divide() function. The divide() function has not been fixed itself so that we can keep supporting node-sass cross-compatibility. In v6, this won't be an issue as we plan to drop support for node-sass.
  • Using multiple ids in a collapse target wasn't working anymore and has been fixed.
Color modes
  • Increased color contrast of form range track background in light and dark modes.
  • Fixed table state rendering for color modes with a focus on the striped table in dark mode to increase color contrast.
  • Allow <mark> color customization for color modes.
Docs

🎨 CSS
  • #38816: Use box-shadow CSS variables shadow utilities
  • #38955: Fix radios looking like ellipse on responsive mode
  • #38976: Use box-shadow CSS vars instead of Sass vars in assets and variables
  • #39030: Fix dart-sass deprecation warning
  • #39033: Color mode: fix table state rendering
  • #39095: Make form range track background more contrasted
  • #39119: New Sass var $btn-link-focus-shadow-rgb to allow customization
  • #39141: New Sass variable to handle <mark> dark mode bg color
☕️ JavaScript
  • #38989: Collapse: Fix multiple ids calls
  • #39046: Dropdown: reuse variable
📖 Docs
  • #38873: Discord reddit bootstrap
  • #38970: docs: add BootstrapVueNext to docs
  • #38977: Docs: Add missing form elements in focusable elements
  • #38978: Docs: Fix popover template role error
  • #38995: introduction: drop details element
  • #39037: Further improve image compression with oxipng and the latest jpegoptim
  • #39054: Docs: Remove incorrect mention of .left- and .right- utilities from migration guide
  • #39060: Migration: add back v5.0.0 heading
  • #39145: Docs: add warning callout to add a workaround when jsDelivr is not available
  • #39177: Fix: make theme selector tick icon visible when active in examples layout
  • #39179: download: Reword CDN paragraph
🛠 Examples
  • #38994: examples: update 3rd-party packages
  • #39086: Correct grammar error in examples/starter-template
🌎 Accessibility
  • #38978: Docs: Fix popover template role error
  • #39095: Make form range track background more contrasted
🧰 Misc
  • #38983: Improve change-version script
  • #38984: Convert build scripts to ESM
  • #39021: CI: update permissions for calibreapp-image-actions.yml
📦 Dependencies

v5.3.1

Added
  • Add color mode switcher JavaScript to examples ZIP download
  • Add support for Home and End keys for navigating tabs by keyboard
  • Add basic styling to toggle buttons when no modifier class is present
  • Add new $navbar-dark-icon-color Sass variable
  • Add new variable for $vr-border-width to customize the vertical rule helper width
  • Add search to homepage
Changed
  • Increase color contrast for dark mode by replacing $gray-500 with $gray-300 for the body color
  • Improve disabled styling for all .nav-links, providing .disabled and :disabled for use with anchors and buttons
  • .text-bg-* utilities now use CSS variables
  • Improve responsive behavior on Dashboard example
  • Improve dark mode rendering of Cheatsheet examples
Fixed
  • Fix carousel colors in dark mode
  • Fix floating label disabled text color
Removed
  • Remove duplicate $alert Sass variables
Highlights
  • Color modes:
    • Increased color contrast for dark mode by replacing $gray-500 with $gray-300 for the body color
    • Added our color mode switcher JavaScript to our examples ZIP download
  • Components:
    • Improved disabled styling for all .nav-links, providing .disabled and :disabled for use with anchors and buttons
    • Add support for Home and End keys for navigating tabs by keyboard
    • Added some basic styling to toggle buttons when no modifier class is present
    • Fixed carousel colors in dark mode
  • Forms:
    • Fixed floating label disabled text color
  • Utilities:
    • .text-bg-* utilities now use CSS variables
  • Sass:
    • Add new $navbar-dark-icon-color Sass variable
    • Removed duplicate $alert Sass variables
    • Added a new variable for $vr-border-width to customize the vertical rule helper width
  • Documentation:
    • Added search to our homepage
    • Improved responsive behavior on Dashboard example
    • Improved dark mode rendering of Cheatsheet examples

🎨 CSS
  • #38913: Floating labels: fix disabled with text inside
  • #38772: .text-bg-* helpers now use theme CSS variables
  • #38886: New Sass variable to change vertical rule width
  • #38851: Fix Sass properties order for newer stylelint-config-recess-order
  • #38815: Increase contrast in dark-mode (#38525)
  • #38774: Generalize disabled nav links CSS rules
  • #38673: Add $navbar-dark-icon-color
  • #38674: Remove duplicate $alert-*-scale Sass vars
☕️ JavaScript
  • #38498: Support Home and End keys in tabs
📖 Docs
  • #38958: Examples: improve spinner buttons accessibility
  • #38947: Fix postcss plugin options
  • #38885: Docs: Update float responsive examples
  • #38946: Docs: remove v4 reference on homepage
  • #38948: Fix some typos in Customize > Sass doc
  • #38840: Docs: fix carousel carousel colors of carousel examples in dark mode
  • #38604: Add dropdown alignment options to button group example
  • #38894: Docs: add blank target and noopener rel to footer external links
  • #38902: Fix tooltip generated markup documentation
  • #38883: Docs: Fix incorrect class name on migration guide
  • #38708: add a base class style display for toggle buttons
  • #38827: Docs: add missing aria-disabled='true' to disabled anchors
  • #38844: Fix for text-reset example class name
  • #38838: JS/SCSS shortcodes: Add new feature to remove nested calls inside.
  • #38850: Add docs search to homepage
  • #38872: Docs: Improve Text Alignment Example
  • #38865: Fix custom-radio class name on migration guide
  • #38786: Explicitly add missing opacity-0 helper class example for clarity.
  • #38707: Update bottom border on dark navbar example
  • #38726: Update flex utilities link in navs docs
  • #38734: Minor fixes for Docs Versions page
  • #38745: Fix stack examples
  • #38751: Docs (tooltips): Fix "them" typo in markup section
  • #38688: Fix missing word issue on nav-tabs page
  • #38681: Docs: consistency between custom buttons, popovers and tooltips
  • #38600: collate distribution interval
  • #38632: docs(spinners): improve buttons examples accessibility
  • #38583: Docs: add more details on accessibility tips
  • #38554: Doc: fix 'Events' JS example
  • #38592: docs(forms): switch to aria-describedby
  • #38542: Use .d-none instead of inline styling
  • #38616: Add 'Issues assignment' section to the Contributing Guidelines
  • #38528: Adding a link to clearfix
  • #38538: Update Sass docs to mention compiling and including
  • #38623: Fix disabled element tooltip StackBlitz
🛠 Examples
  • #38958: Examples: improve spinner buttons accessibility
  • #38952: dashboard: fix offcanvas md display
  • #38840: Docs: fix carousel carousel colors of carousel examples in dark mode
  • #38905: Fix dark mode rendering of Cheatsheet examples
  • #38711: Fix link colors in Sidebars example
🌎 Accessibility
  • #38958: Examples: improve spinner buttons accessibility
  • #38498: Support Home and End keys in tabs
  • #38827: Docs: add missing aria-disabled='true' to disabled anchors
  • #38850: Add docs search to homepage
  • #38774: Generalize disabled nav links CSS rules
  • #38632: docs(spinners): improve buttons examples accessibility
  • #38583: Docs: add more details on accessibility tips
  • #38592: docs(forms): switch to aria-describedby
🧰 Misc
  • #38747: Add color-modes.js to bootstrap-x.y.z-examples.zip
📦 Dependencies

v5.3.0-alpha3

Pre-release
Added
  • Added a check for interpolated variables to catch compilation errors with Node Sass when using Sass variables in calc() functions
  • Added .d-inline-grid utility class
Changed
  • Started using --bs-border-radius variables across more components
  • Updated the styling of floating labels when floated to include a background-color to help with multiple lines of text in textareas and fixed the colors when form elements are disabled in floating forms
  • Updated RFS to v10.0.0
Fixed
  • Fixed wrong interpolated variables with node-sass/Hugo
  • Fixed .tooltip-inner placement when using variations in fallbackPlacements
  • Fixed selectors for dark mode carousel overrides when compiling with $color-mode-type: media-query
  • Fixed wrong interpolated variables with node-sass/Hugo.
  • Added a check for interpolated variables to catch compilation errors with Node Sass when using Sass variables in calc() functions.
  • Started using --bs-border-radius variables across more components.
  • Added .d-inline-grid utility class.
  • Fixed .tooltip-inner placement when using variations in fallbackPlacements.
  • Fix selectors for dark mode carousel overrides when compiling with $color-mode-type: media-query.
  • Updated the styling of floating labels when "floated" to include a background-color to help with multiple lines of text in textareas. This also fixes the colors when form elements are disabled in floating forms.
  • Updated RFS to v10.0.0.

Full Changelog: https://github.com/twbs/bootstrap/compare/v5.3.0-alpha2...v5.3.0-alpha3