Bootstrap 5.3.0-alpha1

@mdo December 24, 2022

It’s a Christmas miracle—Bootstrap v5.3.0-alpha1 has arrived just in time for the holiday break! This release brings new color mode support, an expanded color palette with variables and utilities, and more.

We’re keeping things short and simple in this blog post with deeper dives into the new color modes and more coming in future posts. For now, we want you to enjoy the holiday break and come back next year feeling refreshed and rejuvenated. Keep reading for what’s new and we’ll see you next year!

Dark mode and color modes

New homepage

Bootstrap now supports an explicit opt-in for creating multiple color modes via the data-bs-theme attribute on the root <html> element. We opted for a data attribute solution so that you can create any number of themes instead of just light and dark. We use a new Sass mixin, color-mode(), to generate our dark mode styles with either a data attribute (the default) or a media query. The latter is useful if you only have two color modes and want automatic color mode changing via CSS.

Read more in the new color mode docs.

New homepage

For those wanting to build something more advanced, you can read how we built our own color mode picker with JavaScript that respects the device or operating system setting by default, but still allows someone to override it with an explicit theme.

If you’re using the CDN or starter template, using the new color modes is straightforward. Add the data-bs-theme attribute with light or dark values to the <html> element and you’ll be using either the light or dark theme.

<!doctype html>
<html lang="en" data-bs-theme="dark">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap demo</title>
    <link href="" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <h1>Hello, world!</h1>
    <script src="" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>

Want to use CSS media queries to change the color mode instead? You can also build Bootstrap with Sass and customize how you use color modes. Read the docs to learn more. You can even create custom color modes.

Expanded color palette

New homepage

New homepage

We have a huge new color palette update with new Sass variables, CSS variables, and utilities to boot. Foreground and background colors have new secondary, tertiary, and emphasis colors to choose from, while our theme colors have expanded on to include their subtle background colors, subtle border colors, and darker text colors. We’ve rebuilt some components (like list groups and alerts) to use these new variables in their source Sass and compiled CSS so that they respond to the color mode changes.

Check out the new colors docs.

And more!

And a few more noteworthy changes:

  • Added new CSS variables for grid breakpoints, link colors, close button, alert links, forms, and more. In addition, many components have been updated to use more global CSS variables like --bs-border-color to better respond to changing color modes.

  • Floating forms have been updated to be more bulletproof and now include proper support for textareas.

  • Added many new utilities, including fw-medium, overflow and object-fit utilities, z-index, and more. Plus, border-radius utilities have been updated so that you can combine .rounded-{top|bottom|start|end} with .rounded-{0-5|pill|circle}.

  • Fixed some Popper tooltip and popover consistency issues.

Be sure to consult the v5.3.0 migration guide to see what’s changed as well.

Up next

As we iron out the release with your feedback and bug reports, we’ll also be updating the Bootstrap Blog and Bootstrap Icons sites to use the new themes soon. We’ll also continue to refine how our components and utilities work with the new color modes, adding Sass testing to improve our coverage of how folks build with Bootstrap, and much more.

Get the release

Head to for the latest. It’s also been pushed to npm:

npm i bootstrap@v5.3.0-alpha1

Read the GitHub v5.3.0-alpha1 changelog for a complete list of changes in this release.

Support the team

Visit our Open Collective page or our team members’ GitHub profiles to help support the maintainers contributing to Bootstrap.

Bootstrap 5.2.3

@mdo November 22, 2022

We’ve deviated from developing v5.3.0 to ship a new patch release, Bootstrap v5.2.3, with a handful of more urgent bug fixes.


  • Added the missing :root CSS variables to our utilities bundle
  • Fixed the deprecation warning with Sass 1.56.0
  • Fixed the RTL translate() direction for carousels
  • Fixed tooltip and popover disposal inconsistencies

We’re heading right back to it with v5.3.0 with support for color modes, new utilities, and more. Look for a pre-release of that soon.

Get the release

Head to for the latest. It’s also been pushed to npm:

npm i bootstrap@v5.2.3

Read the GitHub v5.2.3 changelog for a complete list of changes in this release.

Support the team

Visit our Open Collective page or our team members’ GitHub profiles to help support the maintainers contributing to Bootstrap.

Bootstrap Icons v1.10.0

@mdo November 11, 2022

Bootstrap Icons v1.10.0 is here with nearly 150 new icons. This release includes tons of new variants for person, building, and database icons, plus new brands, rockets, road signs, globes, and many more. We’re now at over 1,900 icons!

150 new icons

Here’s a quick look at all the new icons in v1.10.0:

New love icons in v1.10.0

Some highlights for the new icons include:

  • 22 new person icons
  • 26 new house icons
  • 24 new building icons, including a renamed building to buildings
  • 22 new database icons
  • 24 new street sign icons
  • New globe icons
  • New EV, taxi, bus, and scooter transportation icons
  • New rockets
  • and more!

We also fixed the fill rules for several some issues across the docs, including:

  • De-duped category names Brand and Brands to be just Brand
  • Updated tags on several icon pages for additional aliases

Looking for more new icons? Head to the issue tracker to check for open requests or submit a new one.


To get started, install or update via npm:

npm i bootstrap-icons

Or Composer:

composer require twbs/bootstrap-icons

You can also download the release from GitHub, or download just the SVGs and fonts (without the rest of the repository files).


The Figma file is now published to the Figma Community! It’s the same Bootstrap Icons Figma file you’ve seen from previous releases, just a little more accessible to those using the app.

Bootstrap 5.2.2

@mdo October 03, 2022

Bootstrap v5.2.2 has landed with new bug fixes and documentation updates—keep reading to see what’s changed!


  • Accordion
    • Use Sass variable for the accordion color instead of an invalid CSS variable
  • Buttons
    • Undo changes to .btn:hover from v5.2.1. We now explicitly target .btn-check styles instead.
  • Dropdowns
    • Temporarily restore ability for dropdowns to work without an explicit data attribute (will be removed again in v6)
  • Modals
    • Improve modal event listeners
    • Use <h1> for all .modal-title instances in our docs
  • Tables
    • Don’t redefine $border-color in table-variant() mixin
  • Tabs
    • Tabs no longer autofocus and cause pages to jump on
    • Fix .active class toggling of tabs within dropdowns
  • Toasts
    • Properly set toast z-index on .toast-container as opposed to individual .toasts that don’t receive any other positioning
  • Tooltips
    • Fix tooltip selectors with title attribute on dynamically created elements

Get the release

Head to for the latest. It’s also been pushed to npm:

npm i bootstrap@v5.2.2

Read the GitHub v5.2.2 changelog for a complete list of changes in this release.

Support the team

Visit our Open Collective page or our team members’ GitHub profiles to help support the maintainers contributing to Bootstrap.

Bootstrap 5.2.1

@mdo September 07, 2022

Bootstrap v5.2.1 is here with fixes from our latest minor release, v5.2. As a patch release, these changes are limited to bug fixes, documentation updates, and some dependency updates.

We’ve also continued to iterate on a few other projects to help folks get up and running with Bootstrap with npm, other JS frameworks, and various build tools. Keep reading to learn more.

Key changes

We’ve updated our calc() functions to work around an apparent bug in postcss-values-parser that prevented our source Sass files from compiling properly when building with React and PostCSS. The fix was to reverse the order of our multiplication inside calc() functions. Be aware you may need to make similar modifications depending on your own customizations.

We’ve also addressed some longstanding issues around button focus and active styling, in particular for checkbox and radio buttons. On mobile devices, input-based buttons have trouble shedding their focus styles. This has been resolved in v5.2.1 with a change from :focus to :focus-visible for our .btns. Now, checkbox and radio buttons no longer change their background-color on :focus-visible and they receive no :hover styling. Regular .btns still have their familiar hover and focus styles.

We debated not including the button focus change in v5.2.1, but felt it was important enough to close several bugs. Let us know what you think and we’ll continue to refine our implementation.


In addition to the changes above, we’ve fixed bugs across several components:

  • Accordion
    • Update color value to use the $accordion-button-color Sass variable instead of our color contrast function
  • Buttons
    • Added a transparent default hover border color CSS variable for buttons to fix a visual regression
    • .btn-link no longer has a gradient when $enable-gradients is set to true
  • Forms
    • Input groups have updated z-index values to ensure proper rendering of validated form fields
    • Floating labels now reset their text-align to ensure consistent styling
  • List Groups
    • Horizontal list groups with only one child now render the correct border-radius
    • Modified the list-group-item selectors to better support nested imports of Bootstrap’s CSS
  • Modals
    • Updated event listeners to ignore clicks on scrollbar clicks, clicks that start inside .modal-dialog but end outside it, and respond to clicks that start and end outside .modal-dialog
  • Pagination
    • Fixed incorrect border-radius values inside pagination components
  • Scrollspy
    • Scrollspy threshold option is now configurable
  • Tooltips & Popovers
    • Reverted some tooltip plugin updates to prevent issues with selector, dynamic content, and disposed tooltips using title
    • Fixed trigger: "manual" showing and immediately hiding when calling toggle()


  • Updated Autoprefixer to fix warnings of the color-adjust property (thanks to @julien-deramond on our team for reporting an issue upstream here)


  • Searching our docs on mobile has been improved with the search field now always visible on responsive, narrow viewports
  • Removed links to and mentions of Slack from across the codebase, as we intend to shutter Slack in favor of GitHub Discussions
  • Reintroduced proper outline styles for docs code samples and buttons when :not(:focus-visible)

Farewell, Slack!

As mentioned over a month ago, we made the decision to close down our community Slack channel. Slack isn’t great at managing a large scale community and it’s prohibitively expensive as well for a community the size of ours (the Slack was over 45,000 people!). Instead of using Slack or similar tool, we’re encouraging folks to use our Discussions tab on GitHub.

Explore Bootstrap discussions

Examples repo


Make sure to checkout (pun intended!) our latest project, the twbs/examples repository! The examples project includes functional demos for all sorts of environments and JS frameworks, with more planned! You can even open every example in StackBlitz and edit them in the browser.

  • Starter – CDN links for our CSS and JS
  • Sass & JS — Import Sass, Autoprefixer, Stylelint, and our JS bundle via npm
  • Sass & ESM JS — Import Sass, Autoprefixer, and Stylelint via npm, and then load our ESM JS with a shim
  • Webpack - Import and bundle Sass and JS with Webpack
  • Parcel - Sass, JS via Parcel
  • Vite - Sass, JS via Vite
  • Bootstrap Icons font - Import and compile Sass, Stylelint, PurgeCSS, and our icon font

Have an idea for a new starter example? Feel free to open an issue or pull request!

v4 starter project

npm starter

We’ve shipped a v2.0.0 update to the twbs/bootstrap-npm-starter project. This release includes Bootstrap v4.6.2, Bootstrap Icons v1.9.1, a new live reload feature for local development, and several dependency updates. This project will remain dedicated to Bootstrap 4 while our twbs/examples repo will focus on v5 and future major releases.

Get the release

Head to for the latest. It’s also been pushed to npm:

npm i bootstrap@v5.2.1

Read the GitHub v5.2.1 changelog for a complete list of changes in this release.

Support the team

Visit our Open Collective page or our team members’ GitHub profiles to help support the maintainers contributing to Bootstrap.