Bootstrap Icons v1.11.0 has arrived with 100 new icons—including new floppy disk icons, additional brand icons, new person icons, new emojis, some birthday cake, a few new science icons, and more. We’re now at over 2,000 icons!
+
100 new icons
+
Here’s a quick look at all the new icons in v1.11.0:
I’ve also started adding a new added tag to icon pages with this release. So far I’ve only tagged v1.10.0 and v1.11.0 versions, but more will come. Once those are all tagged, you’ll be able to search for icons added in each release. Stay tuned!
+
Looking for more new icons? Head to the issue tracker to check for open requests or submit a new one.
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.
diff --git a/assets/img/2023/09/icons-1-11-0.png b/assets/img/2023/09/icons-1-11-0.png
new file mode 100644
index 000000000..bfc632ece
Binary files /dev/null and b/assets/img/2023/09/icons-1-11-0.png differ
diff --git a/feed.xml b/feed.xml
index c1f160fae..8a2646444 100644
--- a/feed.xml
+++ b/feed.xml
@@ -6,7 +6,32 @@
Recent content on Bootstrap BlogHugo -- gohugo.ioen
- Wed, 26 Jul 2023 08:05:00 +0000
+ Tue, 12 Sep 2023 00:01:00 +0000
+
+ Bootstrap Icons v1.11.0
+ https://blog.getbootstrap.com/2023/09/12/bootstrap-icons-1-11-0/
+ Tue, 12 Sep 2023 00:01:00 +0000
+
+ https://blog.getbootstrap.com/2023/09/12/bootstrap-icons-1-11-0/
+ <p><a href="https://icons.getbootstrap.com">Bootstrap Icons v1.11.0</a> has arrived with 100 new icons—including new floppy disk icons, additional brand icons, new person icons, new emojis, some birthday cake, a few new science icons, and more. We’re now at <strong>over 2,000 icons</strong>!</p>
+<h2 id="100-new-icons">100 new icons</h2>
+<p>Here’s a quick look at all the new icons in v1.11.0:</p>
+<p><img src="https://blog.getbootstrap.com/assets/img/2023/09/icons-1-11-0.png" class="d-block img-fluid mb-2 rounded border" alt="New icons in v1.11.0" loading="lazy" width="1920" height="648">
+</p>
+<p><a href="https://github.com/twbs/icons/pull/1792">Check out the pull request</a> for all the details on which icons were added and which were updated.</p>
+<p>I’ve also started adding a new <code>added</code> tag to icon pages with this release. So far I’ve only tagged v1.10.0 and v1.11.0 versions, but more will come. Once those are all tagged, you’ll be able to search for icons added in each release. Stay tuned!</p>
+<p><em>Looking for more new icons? Head to the <a href="https://github.com/twbs/icons/issues">issue tracker</a> to check for open requests or submit a new one.</em></p>
+<h2 id="install">Install</h2>
+<p>To get started, install or update via npm:</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">npm i bootstrap-icons
+</span></span></code></pre></div><p>Or Composer:</p>
+<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">composer require twbs/bootstrap-icons
+</span></span></code></pre></div><p>You can also <a href="https://github.com/twbs/icons/releases/tag/v1.11.0">download the release from GitHub</a>, or <a href="https://github.com/twbs/icons/releases/download/v1.9.0/bootstrap-icons-1.11.0.zip">download just the SVGs and fonts</a> (without the rest of the repository files).</p>
+<h2 id="figma">Figma</h2>
+<p>The Figma file is now published to the Figma Community! It’s the same <a href="https://www.figma.com/community/file/1042482994486402696/Bootstrap-Icons">Bootstrap Icons Figma file</a> you’ve seen from previous releases, just a little more accessible to those using the app.</p>
+
+
+
Bootstrap 5.3.1
https://blog.getbootstrap.com/2023/07/26/bootstrap-5-3-1/
@@ -817,157 +842,6 @@
</span></span></code></pre></div><p><a href="https://github.com/twbs/bootstrap/releases/tag/v5.2.1">Read the GitHub v5.2.1 changelog</a> for a complete list of changes in this release.</p>
<h2 id="support-the-team">Support the team</h2>
<p>Visit our <a href="https://opencollective.com/bootstrap">Open Collective page</a> or our <a href="https://github.com/orgs/twbs/people">team members</a>’ GitHub profiles to help support the maintainers contributing to Bootstrap.</p>
-
-
-
-
- Bootstrap 5.2.0
- https://blog.getbootstrap.com/2022/07/19/bootstrap-5-2-0/
- Tue, 19 Jul 2022 16:00:00 +0000
-
- https://blog.getbootstrap.com/2022/07/19/bootstrap-5-2-0/
- <p><strong>Bootstrap v5.2.0 is finally stable!</strong> We’ve ironed out more bugs, improved more documentation, written new guides and built out new functional environment examples, and so much more!</p>
-<p>Keep reading for highlights from both beta and stable releases.</p>
-<h2 id="docs-redesign">Docs redesign</h2>
-<p>As previewed in our beta release, the docs have been redesigned! It starts with <a href="https://getbootstrap.com">our new homepage</a> where we have a more complete representation of Bootstrap’s features and an updated design.</p>
-<p><a href="https://getbootstrap.com"><img src="https://blog.getbootstrap.com/assets/img/2022/05/docs-home.png" class="d-block img-fluid mb-2 rounded border" alt="New homepage" loading="lazy" width="3360" height="2100">
-</a></p>
-<p>The docs sidebar navigation has been overhauled to have always expanded groups for easier browsing, a brand new DocSearch experience with search history, and new responsive offcanvas drawers for both sidebar and navbar on mobile.</p>
-<p><a href="https://getbootstrap.com/docs/5.2/getting-started/introduction/"><img src="https://blog.getbootstrap.com/assets/img/2022/05/docs-quick-start.png" class="d-block img-fluid mb-2 rounded border" alt="New docs page" loading="lazy" width="3360" height="2100">
-</a></p>
-<p><img src="https://blog.getbootstrap.com/assets/img/2022/05/docs-search.png" class="d-block img-fluid mb-2 rounded border" alt="New search" loading="lazy" width="3360" height="2100">
-</p>
-<p>We even updated our version picker in the navbar to cross-link between minor releases!</p>
-<p><img src="https://blog.getbootstrap.com/assets/img/2022/05/docs-version-picker.png" class="d-block img-fluid mb-2 rounded border" alt="Docs version picker" loading="lazy" width="1680" height="1050">
-</p>
-<h2 id="updated-buttons-and-inputs">Updated buttons and inputs</h2>
-<p>With our docs redesign, we refreshed buttons and inputs with modified <code>padding</code> and <code>border-radius</code>. Here’s a look at the before and after of <a href="https://getbootstrap.com/docs/5.2/components/buttons/">our buttons</a>:</p>
-<p><img src="https://blog.getbootstrap.com/assets/img/2022/05/buttons-compared.png" class="d-block img-fluid mb-2 rounded border" alt="Updated buttons" loading="lazy" width="1690" height="504">
-</p>
-<h2 id="tons-of-new-css-variables">Tons of new CSS variables</h2>
-<p>Nearly all our components now have CSS variables for real real-time customization, easier theming, and (soon) color mode support starting with dark mode. You can see what CSS variables are available on every docs page, like <a href="https://getbootstrap.com/docs/5.2/components/buttons/#css">our buttons</a>:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-scss" data-lang="scss"><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-padding-x</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-padding-x</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-padding-y</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-padding-y</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-font-family</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-font-family</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="k">@include</span><span class="nd"> rfs</span><span class="p">(</span><span class="nv">$btn-font-size</span><span class="o">,</span> <span class="o">--</span><span class="si">#{</span><span class="nv">$prefix</span><span class="si">}</span><span class="n">btn-font-size</span><span class="p">);</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-font-weight</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-font-weight</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-line-height</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-line-height</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-color</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$body-color</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-bg</span><span class="o">:</span> <span class="ni">transparent</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-border-width</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-border-width</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-border-color</span><span class="o">:</span> <span class="ni">transparent</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-border-radius</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-border-radius</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-box-shadow</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-box-shadow</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-disabled-opacity</span><span class="o">:</span> <span class="si">#{</span><span class="nv">$btn-disabled-opacity</span><span class="si">}</span><span class="p">;</span>
-</span></span><span class="line"><span class="cl"><span class="na">--#{$prefix}btn-focus-box-shadow</span><span class="o">:</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span> <span class="si">#{</span><span class="nv">$btn-focus-width</span><span class="si">}</span> <span class="nf">rgba</span><span class="p">(</span><span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="si">#{</span><span class="nv">$prefix</span><span class="si">}</span><span class="n">btn-focus-shadow-rgb</span><span class="p">)</span><span class="o">,</span> <span class="mf">.5</span><span class="p">);</span>
-</span></span></code></pre></div><p>Values for virtually every CSS variables are assigned via Sass variable, so customization via CSS and Sass are both well supported. Also included for several components are examples of customizing via CSS variables.</p>
-<p><img src="https://blog.getbootstrap.com/assets/img/2022/05/custom-button.png" class="d-block img-fluid mb-2 rounded border" alt="Custom button" loading="lazy" width="1608" height="872">
-</p>
-<h2 id="new-_mapsscss">New <code>_maps.scss</code></h2>
-<p>Bootstrap v5.2.0 introduced a new Sass file with <code>_maps.scss</code> that pulls out several Sass maps from <code>_variables.scss</code> to fix an issue where updates to an original map were not applied to secondary maps that extend it. It’s not ideal, but it resolves a longstanding issue for folks when working with customized maps.</p>
-<p>For example, updates to <code>$theme-colors</code> were not being applied to other maps that relied on <code>$theme-colors</code> (like the <code>$utilities-colors</code> and more), which created broken customization workflows. To summarize the problem, <strong>Sass has a limitation where once a default variable or map has been <em>used</em>, it cannot be updated</strong>. <em>There’s a similar shortcoming with CSS variables when they’re used to compose other CSS variables.</em></p>
-<p>This is also why variable customizations in Bootstrap have to come after <code>@import "functions";</code>, but before <code>@import "variables";</code> and the rest of our import stack. The same applies to Sass maps—you must override the defaults before they get used. The following maps have been moved to the new <code>_maps.scss</code>:</p>
-<ul>
-<li><code>$theme-colors-rgb</code></li>
-<li><code>$utilities-colors</code></li>
-<li><code>$utilities-text</code></li>
-<li><code>$utilities-text-colors</code></li>
-<li><code>$utilities-bg</code></li>
-<li><code>$utilities-bg-colors</code></li>
-<li><code>$negative-spacers</code></li>
-<li><code>$gutters</code></li>
-</ul>
-<p>Your custom Bootstrap CSS builds should now look like this with a separate maps import.</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-diff" data-lang="diff"><span class="line"><span class="cl"> // Functions come first
-</span></span><span class="line"><span class="cl"> @import "functions";
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"> // Optional variable overrides here
-</span></span><span class="line"><span class="cl"><span class="gi">+ $custom-color: #df711b;
-</span></span></span><span class="line"><span class="cl"><span class="gi">+ $custom-theme-colors: (
-</span></span></span><span class="line"><span class="cl"><span class="gi">+ "custom": $custom-color
-</span></span></span><span class="line"><span class="cl"><span class="gi">+ );
-</span></span></span><span class="line"><span class="cl"><span class="gi"></span>
-</span></span><span class="line"><span class="cl"> // Variables come next
-</span></span><span class="line"><span class="cl"> @import "variables";
-</span></span><span class="line"><span class="cl">
-</span></span><span class="line"><span class="cl"><span class="gi">+ // Optional Sass map overrides here
-</span></span></span><span class="line"><span class="cl"><span class="gi">+ $theme-colors: map-merge($theme-colors, $custom-theme-colors);
-</span></span></span><span class="line"><span class="cl"><span class="gi">+
-</span></span></span><span class="line"><span class="cl"><span class="gi">+ // Followed by our default maps
-</span></span></span><span class="line"><span class="cl"><span class="gi">+ @import "maps";
-</span></span></span><span class="line"><span class="cl"><span class="gi">+
-</span></span></span><span class="line"><span class="cl"><span class="gi"></span> // Rest of our imports
-</span></span><span class="line"><span class="cl"> @import "mixins";
-</span></span><span class="line"><span class="cl"> @import "utilities";
-</span></span><span class="line"><span class="cl"> @import "root";
-</span></span><span class="line"><span class="cl"> @import "reboot";
-</span></span><span class="line"><span class="cl"> // etc
-</span></span></code></pre></div><h2 id="new-helpers-and-utilities">New helpers and utilities</h2>
-<p>We’ve updated our helpers and utilities to make it easier to quickly build and modify custom components:</p>
-<ul>
-<li>
-<p>Added new <code>.text-bg-{color}</code> helpers. Instead of setting individual <code>.text-*</code> and <code>.bg-*</code> utilities, you can now use <a href="https://getbootstrap.com/docs/5.2/helpers/color-background/">the <code>.text-bg-*</code> helpers</a> to set a <code>background-color</code> with contrasting foreground <code>color</code>.</p>
-</li>
-<li>
-<p>Expanded <a href="https://getbootstrap.com/docs/5.2/utilities/text/#font-weight-and-italics"><code>font-weight</code> utilities</a> to include <code>.fw-semibold</code> for semibold fonts.</p>
-</li>
-<li>
-<p>Expanded <a href="https://getbootstrap.com/docs/5.2/utilities/borders/#sizes"><code>border-radius</code> utilities</a> to include two new sizes, <code>.rounded-4</code> and <code>.rounded-5</code>, for more options.</p>
-</li>
-</ul>
-<p>Expect more improvements here as v5’s development continues.</p>
-<h2 id="responsive-offcanvas">Responsive offcanvas</h2>
-<p>Our Offcanvas component now has <a href="https://getbootstrap.com/docs/5.2/components/offcanvas/#responsive">responsive variations</a>. The original <code>.offcanvas</code> class remains unchanged—it hides content across all viewports. To make it responsive, change that <code>.offcanvas</code> class to any <code>.offcanvas-{sm|md|lg|xl|xxl}</code> class.</p>
-<h2 id="new-examples-repo-and-guides">New Examples repo and guides</h2>
-<p>Since the beta, we’ve completely rewritten our <a href="https://getbootstrap.com/docs/5.2/getting-started/webpack/">Webpack guide</a> and <a href="https://getbootstrap.com/docs/5.2/getting-started/parcel/">Parcel guide</a>. We’ve also added a new <a href="https://getbootstrap.com/docs/5.2/getting-started/vite/">Vite guide</a>.</p>
-<p><img src="https://blog.getbootstrap.com/assets/img/2022/07/bootstrap-guides@2x.png" class="d-block img-fluid mb-2 rounded border" alt="Bootstrap guides" loading="lazy" width="2000" height="1000">
-</p>
-<p>In addition, we’ve turned every one of those guides into a fully functioning example in our new <a href="https://github.com/twbs/examples">twbs/examples</a> repo. We’ve even added a couple more examples to the repo, with plans to create even more.</p>
-<ul>
-<li><a href="https://github.com/twbs/examples/tree/main/starter/">Starter</a> – CDN links for our CSS and JS</li>
-<li><a href="https://github.com/twbs/examples/tree/main/sass-js/">Sass & JS</a> — Import Sass, Autoprefixer, Stylelint, and our JS bundle via npm</li>
-<li><a href="https://github.com/twbs/examples/tree/main/sass-js-esm/">Sass & ESM JS</a> — Import Sass, Autoprefixer, and Stylelint via npm, and then load our ESM JS with a shim</li>
-<li><a href="https://github.com/twbs/examples/tree/main/webpack/">Webpack</a> - Import and bundle Sass and JS with Webpack</li>
-<li><a href="https://github.com/twbs/examples/tree/main/parcel/">Parcel</a> - Sass, JS via Parcel</li>
-<li><a href="https://github.com/twbs/examples/tree/main/vite/">Vite</a> - Sass, JS via Vite</li>
-<li><a href="https://github.com/twbs/examples/tree/main/icons-font">Bootstrap Icons font</a> - Import Bootstrap Icons via icon font</li>
-</ul>
-<p>Each guide matches up to a new example in that repo, and nearly all of them can be immediately available in StackBlitz. Now you don’t even need to have a development environment configured on your computer to get started with Bootstrap.</p>
-<p><img src="https://blog.getbootstrap.com/assets/img/2022/07/guides-stackblitz.png" class="d-block img-fluid mb-2 rounded border" alt="Examples StackBlitz repo" loading="lazy" width="3360" height="2100">
-</p>
-<p>And did we mention that nearly all our code snippets now have an open in StackBlitz button?</p>
-<p><img src="https://blog.getbootstrap.com/assets/img/2022/07/snippets-stackblitz.png" class="d-block img-fluid mb-2 rounded border" alt="Code snippets StackBlitz" loading="lazy" width="1736" height="944">
-</p>
-<h2 id="and-more">And more!</h2>
-<ul>
-<li>
-<p><strong>Introduced new <code>$enable-container-classes</code> option. —</strong> Now when opting into the experimental CSS Grid layout, <code>.container-*</code> classes will still be compiled, unless this option is set to <code>false</code>. Containers also now keep their gutter values.</p>
-</li>
-<li>
-<p><strong>Thicker table dividers are now opt-in. —</strong> We’ve removed the thicker and more difficult to override border between table groups and moved it to an optional class you can apply, <code>.table-group-divider</code>. <a href="https://getbootstrap.com/docs/5.2/content/tables/#table-group-dividers">See the table docs for an example.</a></p>
-</li>
-<li>
-<p><strong><a href="https://github.com/twbs/bootstrap/pull/33421">Scrollspy has been rewritten</a> to use the Intersection Observer API</strong>, which means you no longer need relative parent wrappers, deprecates <code>offset</code> config, and more. Look for your Scrollspy implementations to be more accurate and consistent in their nav highlighting.</p>
-</li>
-<li>
-<p>Added <code>.form-check-reverse</code> modifier to flip the order of labels and associated checkboxes/radios.</p>
-</li>
-<li>
-<p>Added <a href="https://getbootstrap.com/docs/5.2/content/tables/#striped-columns">striped columns</a> support to tables via the new <code>.table-striped-columns</code> class.</p>
-</li>
-<li>
-<p>Added a new experimental <a href="https://getbootstrap.com/docs/5.2/components/tooltips/#options">reserved data attribute <code>data-bs-config</code></a> that can house simple component configuration as a JSON string.</p>
-</li>
-<li>
-<p>Added new <code>smooth-scroll</code> to Scrollspy.</p>
-</li>
-</ul>
-<h2 id="get-the-release">Get the release</h2>
-<p><strong>Head to <a href="https://getbootstrap.com">https://getbootstrap.com</a> for the latest.</strong> It’s also been pushed to npm:</p>
-<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">npm i bootstrap@v5.2.0
-</span></span></code></pre></div><p><a href="https://github.com/twbs/bootstrap/releases/tag/v5.2.0">Read the GitHub v5.2.0 changelog</a> for a complete list of changes in this release.</p>
-<h2 id="support-the-team">Support the team</h2>
-<p>Visit our <a href="https://opencollective.com/bootstrap">Open Collective page</a> or our <a href="https://github.com/orgs/twbs/people">team members</a>’ GitHub profiles to help support the maintainers contributing to Bootstrap.</p>
diff --git a/index.html b/index.html
index aae4b3c23..91c5cdcc5 100644
--- a/index.html
+++ b/index.html
@@ -258,7 +258,7 @@
Bootstrap Icons v1.11.0 has arrived with 100 new icons—including new floppy disk icons, additional brand icons, new person icons, new emojis, some birthday cake, a few new science icons, and more. We’re now at over 2,000 icons!
+
100 new icons
+
Here’s a quick look at all the new icons in v1.11.0:
I’ve also started adding a new added tag to icon pages with this release. So far I’ve only tagged v1.10.0 and v1.11.0 versions, but more will come. Once those are all tagged, you’ll be able to search for icons added in each release. Stay tuned!
+
Looking for more new icons? Head to the issue tracker to check for open requests or submit a new one.
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.
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!
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.
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.
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.
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.
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.
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.
Today we’re shipping our fifth and final alpha release of Bootstrap Icons. After today’s alpha release, we’ll be moving onto final touch ups of existing icons, closing out some more requests, and buttoning things up for a stable v1 release. Stay tuned!
+
1,000+ icons
+
This release adds nearly 300 new glyphs, taking us right past 1,000 icons. We’ve fleshed out all our calendar icons to add ranges and events, added a suite of new phone icons, added tons of new devices and hardware icons, dozens of badges, and so much more.
As was the case with our previous alpha releases, not only do we have tons of brand new icons, but also dozens of fixes and refinements to existing ones. We’ve improved our paths to reduce icon file sizes, spending more time making things pixel perfect and with fewer vector hacks in our Figma files. In addition, we’ve updated our icon processing script to read the viewBox dimensions of each SVG individually to set their width and height. In future updates, this will allow us to create icons of various dimensions instead of our default 16x16.
+
New SVG sprite
+
In addition to hundreds of new icons, we’ve added a new bootstrap-icons.svg sprite. For those new to SVG sprites, it allows you to load a single asset and reference fragments of it across your project without inserting the entire HTML for the SVG.
+
Here’s a quick look at how it works once imported:
We hope to include some optimizations around this in the future as it’s our first endeavor into an SVG sprite system. Feedback and ideas are always welcome in our issues!
+
Coming in v1 stable
+
The single biggest feature coming in v1’s stable release will be icon web fonts. There’s a PR underway that requires further SVG path cleanup, as well as some tooling improvements. Overall it feels pretty promising!
+
While icon fonts are great for a handful of implementation reasons, please be aware that they are not inherently the most accessible option for your visitors. SVGs provide more control and styling options, and allow you to be accessible from the start with aria roles and <title>s.
+
If you have additional tips for how we can improve our icons, documentation, or tooling to be more accessible and approachable, don’t hesitate to share.
+
Beyond that, we’ll continue to clean up and improve existing icons and then aim to add a handful of new icons.
+
Download
+
Alpha 5 has been published to GitHub and npm (package name bootstrap-icons). Get your hands on it from GitHub, by updating to v1.0.0-alpha5, or by snagging the icons from Figma.
Alpha 3 has been published to GitHub and npm (package name bootstrap-icons). Get your hands on it from GitHub, by updating to v1.0.0-alpha3, or by snagging the icons from Figma.
There’s a brand new update of Bootstrap Icons today with our second alpha release! We’ve updated nearly 20 icons and added over 100 new icons since our last release just a few weeks ago.
-
New icons
-
With over 120 new and updated icons, this is likely going to be our largest update before we our first stable release. We have some renamed icons, fixed bugs, new tools icons, new typography icons, tons of new arrows, and so much more.
Here’s a summary of what’s been fixed, updated, or renamed in this release. For a full summary of what’s new, head to the GitHub release or Alpha 2 pull request.
-
-
Fixed:
-
-
Bootstrap icon stroke now 1px instead of 1.5px
-
tv-fill icon no longer has graphical glitch
-
circle-slash icon strokes now connect
-
trash icons now use a single shape
-
trash-fill icon no longer has a gap between lid and bin
-
layout-split no longer has space between vertical divide
-
-
-
Updated:
-
-
blockquote icons now feature more legible quotation marks
-
command icon now 1px smaller, no longer sitting on half pixel
-
gear icons now have rounded corners
-
eye is now outline by default (use new eye-fill variant if needed)
-
redrew sound waves on volume icons
-
corrected (reversed) the direction of backspace icon
-
-
-
Renamed:
-
-
changed microphone to mic
-
existing expand/contract icons are now angle-expand and angle-contract
-
-
-
-
Get ’em
-
Alpha 2 has been published to GitHub and npm (package name bootstrap-icons). Get your hands on it from GitHub, by updating to v1.0.0-alpha2, or by snagging the icons from Figma.
There’s a brand new update of Bootstrap Icons today with our second alpha release! We’ve updated nearly 20 icons and added over 100 new icons since our last release just a few weeks ago.
+
New icons
+
With over 120 new and updated icons, this is likely going to be our largest update before we our first stable release. We have some renamed icons, fixed bugs, new tools icons, new typography icons, tons of new arrows, and so much more.
Here’s a summary of what’s been fixed, updated, or renamed in this release. For a full summary of what’s new, head to the GitHub release or Alpha 2 pull request.
+
+
Fixed:
+
+
Bootstrap icon stroke now 1px instead of 1.5px
+
tv-fill icon no longer has graphical glitch
+
circle-slash icon strokes now connect
+
trash icons now use a single shape
+
trash-fill icon no longer has a gap between lid and bin
+
layout-split no longer has space between vertical divide
+
+
+
Updated:
+
+
blockquote icons now feature more legible quotation marks
+
command icon now 1px smaller, no longer sitting on half pixel
+
gear icons now have rounded corners
+
eye is now outline by default (use new eye-fill variant if needed)
+
redrew sound waves on volume icons
+
corrected (reversed) the direction of backspace icon
+
+
+
Renamed:
+
+
changed microphone to mic
+
existing expand/contract icons are now angle-expand and angle-contract
+
+
+
+
Get ’em
+
Alpha 2 has been published to GitHub and npm (package name bootstrap-icons). Get your hands on it from GitHub, by updating to v1.0.0-alpha2, or by snagging the icons from Figma.
Today we’re shipping Bootstrap v4.3.1 and v3.4.1 to patch an XSS vulnerability, CVE-2019-8331. Also included in v4.3.1 is a small fix to some RFS (responsive font sizes) mixins that were added in v4.3.0.
-
Earlier this week a developer reported an XSS issue similar to the data-target vulnerability that was fixed in v4.1.2 and v3.4.0: the data-template attribute for our tooltip and popover plugins lacked proper XSS sanitization of the HTML that can be passed into the attribute’s value.
-
To resolve the issue, we’ve implemented a new JavaScript sanitizer to only allow whitelisted HTML elements in data attribute. You may modify our sanitization implementation to customize the HTML element whitelist, totally disable the sanitization, or pass your own sanitize function (useful if you use your own library). However, for added protection, there is no way to modify the sanitization via data attributes—you must modify these plugin options via the JavaScript API.
In light of this vulnerability, we’re also auditing our security reporting workflows to ensure they’re up to date. This will include steps like adding a SECURITY.md file to our repository and ensuring our private channels and processes are up to date and documented with the team.
Today we’re shipping Bootstrap v4.3.1 and v3.4.1 to patch an XSS vulnerability, CVE-2019-8331. Also included in v4.3.1 is a small fix to some RFS (responsive font sizes) mixins that were added in v4.3.0.
+
Earlier this week a developer reported an XSS issue similar to the data-target vulnerability that was fixed in v4.1.2 and v3.4.0: the data-template attribute for our tooltip and popover plugins lacked proper XSS sanitization of the HTML that can be passed into the attribute’s value.
+
To resolve the issue, we’ve implemented a new JavaScript sanitizer to only allow whitelisted HTML elements in data attribute. You may modify our sanitization implementation to customize the HTML element whitelist, totally disable the sanitization, or pass your own sanitize function (useful if you use your own library). However, for added protection, there is no way to modify the sanitization via data attributes—you must modify these plugin options via the JavaScript API.
In light of this vulnerability, we’re also auditing our security reporting workflows to ensure they’re up to date. This will include steps like adding a SECURITY.md file to our repository and ensuring our private channels and processes are up to date and documented with the team.
Checkout the full v4.1.3 ship list and GitHub project for the full details. Up next is v4.2, so stay tuned for some awesome new features like toasts, dismissible badges, negative margins (responsive grid gutters!), spinners, and more!
Head to the v4.1.x docs to see the latest in action. The full release has been published to npm and will soon appear on the Bootstrap CDN and Rubygems.
We’ve been busy these last couple months since launching v4.1.1, but we’re back with another bug fix and some sweeping changes to how we build and publish our docs after the issues stemming from our v4.1.x launches.
-
When we launched v4.1, we ran into unexpected issues with having to rearrange asset paths after deploying, resulting in broken image URLs, a busted service worker, and more. Since then, we’re ironed out most of the kinks and introduced a new docs directory structure inside the repo. Nothing should change for anyone using our docs, but those contributing to the project and developing locally may need to rebase their changes or update their branches accordingly.
-
Beyond the file structure changes, here are the highlights for v4.1.2:
-
-
Fixed an XSS vulnerability in tooltip, collapse, and scrollspy plugins
-
Improved how we query elements in our JavaScript plugins
-
Inline SVGs now have the same vertical alignment as images
-
Fixed issues with double transitions on carousels
-
Added Edge and IE10-11 fallbacks to our floating labels example
-
Various improvements to form controls, including disabled states on file inputs and unified focus styles for selects
-
Miscellaneous build tool improvements and documentation fixes
-
-
Checkout the full v4.1.2 ship list and GitHub project for the full details. Up next will either be v4.1.3 or v4.2 depending on how smoothly this release goes and how well we can keep up with reviewing and merging pull requests.
-
Head to the v4.1.x docs to see the latest in action. The full release has been published to npm and will soon appear on the Bootstrap CDN and Rubygems.
We’ve been busy these last couple months since launching v4.1.1, but we’re back with another bug fix and some sweeping changes to how we build and publish our docs after the issues stemming from our v4.1.x launches.
+
When we launched v4.1, we ran into unexpected issues with having to rearrange asset paths after deploying, resulting in broken image URLs, a busted service worker, and more. Since then, we’re ironed out most of the kinks and introduced a new docs directory structure inside the repo. Nothing should change for anyone using our docs, but those contributing to the project and developing locally may need to rebase their changes or update their branches accordingly.
+
Beyond the file structure changes, here are the highlights for v4.1.2:
+
+
Fixed an XSS vulnerability in tooltip, collapse, and scrollspy plugins
+
Improved how we query elements in our JavaScript plugins
+
Inline SVGs now have the same vertical alignment as images
+
Fixed issues with double transitions on carousels
+
Added Edge and IE10-11 fallbacks to our floating labels example
+
Various improvements to form controls, including disabled states on file inputs and unified focus styles for selects
+
Miscellaneous build tool improvements and documentation fixes
+
+
Checkout the full v4.1.2 ship list and GitHub project for the full details. Up next will either be v4.1.3 or v4.2 depending on how smoothly this release goes and how well we can keep up with reviewing and merging pull requests.
+
Head to the v4.1.x docs to see the latest in action. The full release has been published to npm and will soon appear on the Bootstrap CDN and Rubygems.
Finally, one last thank you to everyone who’s contributed to Bootstrap 4. It’s been a crazy journey and I’m personally relieved, thrilled, and anxious to call it stable. There have been roughly 6,000 commits to v4 since we first starting working on it back in 2015. We’ve gone every which direction and rewrote far too many things far too many times, but I’m so very happy and fortunate with where we landed.
Cheers once again to everyone who’s contributed to and built with Bootstrap. It’s an honor to be building these kind of tools alongside and for all of you.
Welcome to the final beta of v4! It’s been over two months since we shipped our second beta and we’ve been busy making the last breaking changes before moving to our next stable release, v4.0.0! We have a few more breaking changes than we were planning, but fret not, we’ve detailed them all.
-
Beta 3 primarily focuses around our forms, but it also includes key fixes to tables, some global styles, our documentation, and some JavaScript bugs. Following this release, we’ll address a few issues and PRs before doing a stable v4 release a week or two into the New Year.
-
Let’s dive into all the highlights.
-
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>’s display.
-
-
-
Deleted the .col-form-legend class, consolidating it’s styles into the .col-form-label class.
In addition to the breaking changes, we’ve addressed a few more general issues that may impact your project.
-
-
-
Restored cursor: pointer to 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_modules folder, you’ll need to update your build tools.
-
-
-
Print styles have moved to bottom of the import stack to properly override styles.
Stable v4.0.0 is our next release and we already have a GitHub project board to track issues and PRs. There will be no breaking changes from Beta 3 to stable, so our changelog should be short and sweet. Expect some linting, Sass variable improvements, updated docs Examples, and more build tool improvements.
-
With our next release, the master branch will once again become our default branch. We’ll merge v4-dev into master, meaning v3’s source code will only be in our v3-dev branch and past releases.
Welcome to the final beta of v4! It’s been over two months since we shipped our second beta and we’ve been busy making the last breaking changes before moving to our next stable release, v4.0.0! We have a few more breaking changes than we were planning, but fret not, we’ve detailed them all.
+
Beta 3 primarily focuses around our forms, but it also includes key fixes to tables, some global styles, our documentation, and some JavaScript bugs. Following this release, we’ll address a few issues and PRs before doing a stable v4 release a week or two into the New Year.
+
Let’s dive into all the highlights.
+
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>’s display.
+
+
+
Deleted the .col-form-legend class, consolidating it’s styles into the .col-form-label class.
In addition to the breaking changes, we’ve addressed a few more general issues that may impact your project.
+
+
+
Restored cursor: pointer to 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_modules folder, you’ll need to update your build tools.
+
+
+
Print styles have moved to bottom of the import stack to properly override styles.
Stable v4.0.0 is our next release and we already have a GitHub project board to track issues and PRs. There will be no breaking changes from Beta 3 to stable, so our changelog should be short and sweet. Expect some linting, Sass variable improvements, updated docs Examples, and more build tool improvements.
+
With our next release, the master branch will once again become our default branch. We’ll merge v4-dev into master, meaning v3’s source code will only be in our v3-dev branch and past releases.
Alpha 4 is here to address those pesky build and package errors, a few CSS bugs, and some documentation inconsistencies we introduced in our last release.
-
This is a super small release compared to our previous alphas, so here’s the rundown on what’s changed:
-
-
Fixed package.json errors
-
Additional migration notices for more components
-
Fix broken flexbox utilities on flexbox grid page
-
Fix inconsistent checkbox and radio markup, as well as validation styles
-
Minor tweaks to cards, alerts, utilities, and input groups
-
-
At the time of release, the Bootstrap CDN hasn’t been updated for Alpha 4. Apologies for the delay, and stay tuned for an update on when they’re live.
Alpha 4 is here to address those pesky build and package errors, a few CSS bugs, and some documentation inconsistencies we introduced in our last release.
+
This is a super small release compared to our previous alphas, so here’s the rundown on what’s changed:
+
+
Fixed package.json errors
+
Additional migration notices for more components
+
Fix broken flexbox utilities on flexbox grid page
+
Fix inconsistent checkbox and radio markup, as well as validation styles
+
Minor tweaks to cards, alerts, utilities, and input groups
+
+
At the time of release, the Bootstrap CDN hasn’t been updated for Alpha 4. Apologies for the delay, and stay tuned for an update on when they’re live.
Today is a special day for Bootstrap. Not only is it our fourth birthday, but after a year of development, we’re finally shipping the first alpha release of Bootstrap 4. Hell yeah!
-
Bootstrap 4 has been a massive undertaking that touches nearly every line of code. We’re stoked to share it with you and hear your feedback. We’ve got a lot of news to share with you, so let’s jump right into it.
There are a ton of major changes to Bootstrap and it’s impossible to cover them all in detail here, so here are some of our favorite highlights:
-
-
Moved from Less to Sass. Bootstrap now compiles faster than ever thanks to Libsass, and we join an increasingly large community of Sass developers.
-
Improved grid system. We’ve added a new grid tier to better target mobile devices and completely overhauled our semantic mixins.
-
Opt-in flexbox support is here. The future is now—switch a boolean variable and recompile your CSS to take advantage of a flexbox-based grid system and components.
-
Dropped wells, thumbnails, and panels for cards. Cards are a brand new component to Bootstrap, but they’ll feel super familiar as they do nearly everything wells, thumbnails, and panels did, only better.
-
Consolidated all our HTML resets into a new module, Reboot. Reboot steps in where Normalize.css stops, giving you more opinionated resets like box-sizing: border-box, margin tweaks, and more all in a single Sass file.
-
Brand new customization options. Instead of relegating style embellishments like gradients, transitions, shadows, and more to a separate stylesheet like v3, we’ve moved all those options into Sass variables. Want default transitions on everything or to disable rounded corners? Simply update a variable and recompile.
-
Dropped IE8 support and moved to rem and em units. Dropping support for IE8 means we can take advantage of the best parts of CSS without being held back with CSS hacks or fallbacks. Pixels have been swapped for rems and ems where appropriate to make responsive typography and component sizing even easier. If you need IE8 support, keep using Bootstrap 3.
-
Rewrote all our JavaScript plugins. Every plugin has been rewritten in ES6 to take advantage of the newest JavaScript enhancements. They also now come with UMD support, generic teardown methods, option type checking, and tons more.
-
Improved auto-placement of tooltips and popovers thanks to the help of a library called Tether.
-
Improved documentation. We rewrote it all in Markdown and added a few handy plugins to streamline examples and code snippets to make working with our docs way easier. Improved search is also on its way.
-
And tons more! Custom form controls, margin and padding classes, new utility classes, and more have also been included.
-
-
And that barely scratches the surface of the 1,100 commits and 120,000 lines of changes in v4 so far. Plus, we’re not even done yet!
We need your help to make Bootstrap 4 the best it can be. Starting today, the source code for v4 will be available in a v4-dev branch on GitHub. In addition, we have a v4 development and tracking pull request that includes a master checklist of changes we’ve made and our remaining possible todos. We’d love for y’all to help chip away at those todos.
-
The general development and release plan looks something like this:
-
-
A few alpha releases while things are still in flux.
-
Two beta releases after features and functionality are locked down to really test things out.
-
Two release candidates (RCs) to really test things out closer to production environments.
-
Then, the final release!
-
-
For those jamming on v4 with us, we also have a dedicated v4 Slack channel. Jump in to talk shop and work with your fellow Bootstrappers. If you haven’t yet, join our official Slack room!.
-
If you’re not keen on pushing code to v4, we’d love to hear from you in our issue tracker with bug reports, questions, and general feedback.
-
Supporting v3
-
When we shipped Bootstrap 3, we immediately discontinued all support for v2.x, causing a lot of pain for all our users out there. That was a mistake we won’t be making again. For the foreseeable future, we’ll be maintaining Bootstrap 3 with critical bug fixes and documentation improvements. v3 docs will also continue to be hosted after v4’s final release.
-
One more thing…
-
In addition to shipping the first Bootstrap 4 alpha today, we’re also launching our latest side project, Official Bootstrap Themes.
We’ve talked about building premium themes for Bootstrap since our earliest releases, but never quite found the time or ideal approach until earlier this year. We’ve poured hundreds of hours into these themes and consider them to be much more than traditional re-skins of Bootstrap. They’ve very much their own toolkits, just like Bootstrap.
-
To start, we’re launching with three themes built on Bootstrap 3: a dashboard, an application, and a marketing site. Each theme contains everything you’d find in Bootstrap, plus stunning real world examples, brand new components and plugins, custom documentation, and simple build tools.
-
All themes include a multiple-use license for the purchaser and free updates for bug fixes and documentation updates for the life of the themes.
Today is a special day for Bootstrap. Not only is it our fourth birthday, but after a year of development, we’re finally shipping the first alpha release of Bootstrap 4. Hell yeah!
+
Bootstrap 4 has been a massive undertaking that touches nearly every line of code. We’re stoked to share it with you and hear your feedback. We’ve got a lot of news to share with you, so let’s jump right into it.
There are a ton of major changes to Bootstrap and it’s impossible to cover them all in detail here, so here are some of our favorite highlights:
+
+
Moved from Less to Sass. Bootstrap now compiles faster than ever thanks to Libsass, and we join an increasingly large community of Sass developers.
+
Improved grid system. We’ve added a new grid tier to better target mobile devices and completely overhauled our semantic mixins.
+
Opt-in flexbox support is here. The future is now—switch a boolean variable and recompile your CSS to take advantage of a flexbox-based grid system and components.
+
Dropped wells, thumbnails, and panels for cards. Cards are a brand new component to Bootstrap, but they’ll feel super familiar as they do nearly everything wells, thumbnails, and panels did, only better.
+
Consolidated all our HTML resets into a new module, Reboot. Reboot steps in where Normalize.css stops, giving you more opinionated resets like box-sizing: border-box, margin tweaks, and more all in a single Sass file.
+
Brand new customization options. Instead of relegating style embellishments like gradients, transitions, shadows, and more to a separate stylesheet like v3, we’ve moved all those options into Sass variables. Want default transitions on everything or to disable rounded corners? Simply update a variable and recompile.
+
Dropped IE8 support and moved to rem and em units. Dropping support for IE8 means we can take advantage of the best parts of CSS without being held back with CSS hacks or fallbacks. Pixels have been swapped for rems and ems where appropriate to make responsive typography and component sizing even easier. If you need IE8 support, keep using Bootstrap 3.
+
Rewrote all our JavaScript plugins. Every plugin has been rewritten in ES6 to take advantage of the newest JavaScript enhancements. They also now come with UMD support, generic teardown methods, option type checking, and tons more.
+
Improved auto-placement of tooltips and popovers thanks to the help of a library called Tether.
+
Improved documentation. We rewrote it all in Markdown and added a few handy plugins to streamline examples and code snippets to make working with our docs way easier. Improved search is also on its way.
+
And tons more! Custom form controls, margin and padding classes, new utility classes, and more have also been included.
+
+
And that barely scratches the surface of the 1,100 commits and 120,000 lines of changes in v4 so far. Plus, we’re not even done yet!
We need your help to make Bootstrap 4 the best it can be. Starting today, the source code for v4 will be available in a v4-dev branch on GitHub. In addition, we have a v4 development and tracking pull request that includes a master checklist of changes we’ve made and our remaining possible todos. We’d love for y’all to help chip away at those todos.
+
The general development and release plan looks something like this:
+
+
A few alpha releases while things are still in flux.
+
Two beta releases after features and functionality are locked down to really test things out.
+
Two release candidates (RCs) to really test things out closer to production environments.
+
Then, the final release!
+
+
For those jamming on v4 with us, we also have a dedicated v4 Slack channel. Jump in to talk shop and work with your fellow Bootstrappers. If you haven’t yet, join our official Slack room!.
+
If you’re not keen on pushing code to v4, we’d love to hear from you in our issue tracker with bug reports, questions, and general feedback.
+
Supporting v3
+
When we shipped Bootstrap 3, we immediately discontinued all support for v2.x, causing a lot of pain for all our users out there. That was a mistake we won’t be making again. For the foreseeable future, we’ll be maintaining Bootstrap 3 with critical bug fixes and documentation improvements. v3 docs will also continue to be hosted after v4’s final release.
+
One more thing…
+
In addition to shipping the first Bootstrap 4 alpha today, we’re also launching our latest side project, Official Bootstrap Themes.
We’ve talked about building premium themes for Bootstrap since our earliest releases, but never quite found the time or ideal approach until earlier this year. We’ve poured hundreds of hours into these themes and consider them to be much more than traditional re-skins of Bootstrap. They’ve very much their own toolkits, just like Bootstrap.
+
To start, we’re launching with three themes built on Bootstrap 3: a dashboard, an application, and a marketing site. Each theme contains everything you’d find in Bootstrap, plus stunning real world examples, brand new components and plugins, custom documentation, and simple build tools.
+
All themes include a multiple-use license for the purchaser and free updates for bug fixes and documentation updates for the life of the themes.
Say hello to Bootstrap 3.3.1. As one of our fastest follow up releases, the changelog is focused around a small set of bug fixes for our CSS and JS, loads of accessibility improvements, and several documentation improvements.
Say hello to Bootstrap 3.3.1. As one of our fastest follow up releases, the changelog is focused around a small set of bug fixes for our CSS and JS, loads of accessibility improvements, and several documentation improvements.
Well, we’ll probably have a patch release (v3.2.1), and then I imagine it’s onward to v4. We have a v3.3.0 milestone on GitHub, but it’s still unclear if we’ll ship that before jumping to v4. We’ve been building a list of things we’d like to see in the new version, but we don’t have anything ready for the public yet. We’ll share more details as we have them though. Until then, enjoy!
If you’ve been following the Bootstrap issue tracker lately, you might have noticed the launch of our new bot, @twbs-lmvtfy, on June 15th. After seeing many reports of Bootstrap bugs that ended up actually being caused by folks using invalid HTML, we decided to do what all programmers do when confronted with a repetitive task: Automate it!
The bot is generic and can be used for any GitHub project, not just Bootstrap. If you have a front-end Web project on GitHub that gets lots of issue reports, we invite you to try out LMVTFY.
If you’ve been following the Bootstrap issue tracker lately, you might have noticed the launch of our new bot, @twbs-lmvtfy, on June 15th. After seeing many reports of Bootstrap bugs that ended up actually being caused by folks using invalid HTML, we decided to do what all programmers do when confronted with a repetitive task: Automate it!
The bot is generic and can be used for any GitHub project, not just Bootstrap. If you have a front-end Web project on GitHub that gets lots of issue reports, we invite you to try out LMVTFY.
Just like Bootstrap releases, up next for Ratchet will be documentation improvements and bug fixes as feedback rolls in. Without committing to a date, we also want to add support for iPad and Android tablets.
As always, if you find a bug or want to suggest a feature, just open an issue or a pull request on GitHub.
Today we’re releasing Bootstrap v3.1.1. As our first patch release for the v3.1.x release series, we’ve focused on CSS bug fixes, documentation improvements, and further refinements to our build tools. See the included changelog for more details.
Today we’re releasing Bootstrap v3.1.1. As our first patch release for the v3.1.x release series, we’ve focused on CSS bug fixes, documentation improvements, and further refinements to our build tools. See the included changelog for more details.
We’re already tracking issues for a v3.0.2 release and its changes will be along the same lines as today’s release—bugs and docs. v3.1.0 will likely ship after that sometime with a few new features. As always, no dates have been set yet for any future releases.
Today, on the two year anniversary of releasing Bootstrap to the world, we’re shipping Bootstrap 3.0. It’s been a crazy long ride to say the least and we’re stoked to finally have this out in the wild. Thanks to everyone who’s tested our RCs (er, betas), reported bugs, and contributed code. We couldn’t have done it without you beautiful nerds.
-
What’s new
-
For those who haven’t been following along too closely, here’s a recap of all the biggest changes shipping with Bootstrap 3:
-
-
New design and an optional theme! With v3, we’ve gone flat. Don’t call it a trend—it’s all about customization, folks. Since we simplified the aesthetics though, we thought it’d help to have an optional theme. To use it, check out the Bootstrap theme example.
-
Mobile first and always responsive! Nearly everything has been redesigned and rebuilt to start from your handheld devices and scale up.
-
Brand new Customizer! It’s been redesigned, is now compiled in the browser instead of Heroku, has better dependency support, and even has built-in error handling. Better yet, we now save your customizations to an anonymous Gist for easy reuse, sharing, and modifications.
-
Better box model by default. Everything in Bootstrap gets box-sizing: border-box, making for easier sizing options and an enhanced grid system.
-
Super-powered grid system. With four tiers of grid classes—phones, tablets, desktops, and large desktops—you can do some super crazy awesome layouts.
-
Rewritten JavaScript plugins. All events are now namespaced, no-conflict stuff works way better, and more.
-
New Glyphicons icon font! While they were gone for a while, we’ve since restored the Glyphicons to the main repo. In 2.x, they were images, but now they’re in font format and include 40 new glyphs.
-
Overhauled navbar. It’s now always responsive and comes with some super handy and re-arrangable subcomponents.
-
Modals are way more responsive. We’ve overhauled the modal code to make it way more responsive on mobile devices. They now scroll the entire viewport instead of having a max-height.
-
Added some components! New to the mix are panels and list groups.
-
Removed some components! We’ve dropped the accordion (replaced with collapsible panels), submenus, typeahead, and a few more small items. (Worth celebrating as much as adding new ones.)
-
More consistent base and sizing classes. Buttons, tables, forms, alerts, and more have been updated to have more consistent classes for easier customizer and extensibility.
-
Docs have been blown up, yo. We’ve added a lot of new documentation, not only for our components, but for browser support (including gotchas and bugs), license FAQs, third party support (and workarounds), accessibility, and more.
-
Dropped Internet Explorer 7 and Firefox 3.6 support. For Internet Explorer 8, you’ll need to include Respond.js for all the media queries to work correctly. You can read more about browser support in the docs.
-
-
For our pre-release testers and others who have been following along with the RCs, here’s a list of some of the more prominent changes made since RC2:
-
-
Hella bugs have been fixed (duh, right?).
-
Restored the Glyphicons icon font.
-
Navbars now require a .navbar-default for the standard version.
-
Panels now require a .panel-default for the standard gray variation.
-
Alerts now require a modifier class (e.g., .alert.alert-warning for the previously default yellow alert).
-
Multiple responsive utilities can now be applied to the same element.
-
Examples are back in the main repo and have been fully updated.
-
Docs have been updated for more consistent placement, naming, etc.
-
Customizer compiling bugs have all been fixed.
-
The optional theme has been added and is demonstrated in an example.
-
Jumbotrons are now made to extend the full width of the viewport with a container inside, but if you reverse that, the jumbotron in a container will be rounded and padded.
-
The navbar components have been updated to better account for the presence of containers and more. You’ll see some new margin and padding changes, but no markup changes should be required.
-
-
The numbers game
-
For those keeping track, Bootstrap 3 took nearly nine months to design, develop, and ship. In that time we’ve had:
-
-
Over 2,700 commits from 319 contributors
-
379 files changed, meaning 84,000 additions and deletions
-
Over 900 comments in the pull request
-
Over a 20% reduction in minified CSS (from 127kb to 97kb)
-
-
Beyond this release, numbers everywhere else are looking amazing. It’s been staggering to watch these grow.
-
-
Over 56,000 stars and 19,000 forks on GitHub (still number one, baby!).
-
Over 9,800 closed issues (that’s over 13 a day since we released Bootstrap).
-
Last month, we had nearly 15 million pageviews on our docs (and that barely includes anything from our v3 pre-releases).
-
In the last year, we’ve logged over 3 million downloads just from the docs, 40% of which are from the Customizer.
-
-
This was a massive undertaking and it couldn’t have come out better. Thanks once again to all our contributors and the rest of the community for helping us make this a reality.
-
What about non-responsive sites?
-
With Bootstrap 3 we’ve gone deep on responsive and mobile first—it’s built in and no longer requires a separate stylesheet. That’s great for most folks, but not everyone needs or wants an adaptive web site or application. To help, we’ve added some documentation and an example that disables the adaptive or responsive features with some extra CSS.
While we’re not actively maintaining or supporting 2.3.2, you can still get to the old documentation. Head to https://getbootstrap.com/2.3.2/ and you’ll find everything right where you left it (including the old customizer). We’ll leave this up and available for the foreseeable future.
-
As a side note, we apologize for all the redirect and 404 problems folks ran into during the last few weeks. This was our first time moving an entire repo on GitHub and we hit a huge snag with old builds of our docs and did our best to deal with those to not further confuse folks. We’ll do better next time.
-
Coming up next
-
As always, we’ll have one or two patch releases before hitting our next minor release. Beyond that, we have a few things we’d like to tackle for BS3.1 and are already tracking those as potential additions in #9397. If you’d like something considered for v3.1, check that list. If it’s not there, open a new issue to discuss.
-
No dates have been set for any patch or minor release yet. As soon as we figure that out, we’ll let you know.
-
Download!
-
Woo, all set? Then head to the docs and download yourself some Bootstrap 3!
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!
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.
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.
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.
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.
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.
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.
Bootstrap v5.2.0 is finally stable! We’ve ironed out more bugs, improved more documentation, written new guides and built out new functional environment examples, and so much more!
-
Keep reading for highlights from both beta and stable releases.
-
Docs redesign
-
As previewed in our beta release, the docs have been redesigned! It starts with our new homepage where we have a more complete representation of Bootstrap’s features and an updated design.
The docs sidebar navigation has been overhauled to have always expanded groups for easier browsing, a brand new DocSearch experience with search history, and new responsive offcanvas drawers for both sidebar and navbar on mobile.
We even updated our version picker in the navbar to cross-link between minor releases!
-
-
-
Updated buttons and inputs
-
With our docs redesign, we refreshed buttons and inputs with modified padding and border-radius. Here’s a look at the before and after of our buttons:
-
-
-
Tons of new CSS variables
-
Nearly all our components now have CSS variables for real real-time customization, easier theming, and (soon) color mode support starting with dark mode. You can see what CSS variables are available on every docs page, like our buttons:
Values for virtually every CSS variables are assigned via Sass variable, so customization via CSS and Sass are both well supported. Also included for several components are examples of customizing via CSS variables.
-
-
-
New _maps.scss
-
Bootstrap v5.2.0 introduced a new Sass file with _maps.scss that pulls out several Sass maps from _variables.scss to fix an issue where updates to an original map were not applied to secondary maps that extend it. It’s not ideal, but it resolves a longstanding issue for folks when working with customized maps.
-
For example, updates to $theme-colors were not being applied to other maps that relied on $theme-colors (like the $utilities-colors and more), which created broken customization workflows. To summarize the problem, Sass has a limitation where once a default variable or map has been used, it cannot be updated. There’s a similar shortcoming with CSS variables when they’re used to compose other CSS variables.
-
This is also why variable customizations in Bootstrap have to come after @import "functions";, but before @import "variables"; and the rest of our import stack. The same applies to Sass maps—you must override the defaults before they get used. The following maps have been moved to the new _maps.scss:
-
-
$theme-colors-rgb
-
$utilities-colors
-
$utilities-text
-
$utilities-text-colors
-
$utilities-bg
-
$utilities-bg-colors
-
$negative-spacers
-
$gutters
-
-
Your custom Bootstrap CSS builds should now look like this with a separate maps import.
-
// Functions come first
- @import "functions";
-
- // Optional variable overrides here
-+ $custom-color: #df711b;
-+ $custom-theme-colors: (
-+ "custom": $custom-color
-+ );
-
- // Variables come next
- @import "variables";
-
-+ // Optional Sass map overrides here
-+ $theme-colors: map-merge($theme-colors, $custom-theme-colors);
-+
-+ // Followed by our default maps
-+ @import "maps";
-+
- // Rest of our imports
- @import "mixins";
- @import "utilities";
- @import "root";
- @import "reboot";
- // etc
-
New helpers and utilities
-
We’ve updated our helpers and utilities to make it easier to quickly build and modify custom components:
-
-
-
Added new .text-bg-{color} helpers. Instead of setting individual .text-* and .bg-* utilities, you can now use the .text-bg-* helpers to set a background-color with contrasting foreground color.
Expanded border-radius utilities to include two new sizes, .rounded-4 and .rounded-5, for more options.
-
-
-
Expect more improvements here as v5’s development continues.
-
Responsive offcanvas
-
Our Offcanvas component now has responsive variations. The original .offcanvas class remains unchanged—it hides content across all viewports. To make it responsive, change that .offcanvas class to any .offcanvas-{sm|md|lg|xl|xxl} class.
In addition, we’ve turned every one of those guides into a fully functioning example in our new twbs/examples repo. We’ve even added a couple more examples to the repo, with plans to create even more.
Each guide matches up to a new example in that repo, and nearly all of them can be immediately available in StackBlitz. Now you don’t even need to have a development environment configured on your computer to get started with Bootstrap.
-
-
-
And did we mention that nearly all our code snippets now have an open in StackBlitz button?
-
-
-
And more!
-
-
-
Introduced new $enable-container-classes option. — Now when opting into the experimental CSS Grid layout, .container-* classes will still be compiled, unless this option is set to false. Containers also now keep their gutter values.
-
-
-
Thicker table dividers are now opt-in. — We’ve removed the thicker and more difficult to override border between table groups and moved it to an optional class you can apply, .table-group-divider. See the table docs for an example.
-
-
-
Scrollspy has been rewritten to use the Intersection Observer API, which means you no longer need relative parent wrappers, deprecates offset config, and more. Look for your Scrollspy implementations to be more accurate and consistent in their nav highlighting.
-
-
-
Added .form-check-reverse modifier to flip the order of labels and associated checkboxes/radios.
-
-
-
Added striped columns support to tables via the new .table-striped-columns class.
Today, on the two year anniversary of releasing Bootstrap to the world, we’re shipping Bootstrap 3.0. It’s been a crazy long ride to say the least and we’re stoked to finally have this out in the wild. Thanks to everyone who’s tested our RCs (er, betas), reported bugs, and contributed code. We couldn’t have done it without you beautiful nerds.
+
What’s new
+
For those who haven’t been following along too closely, here’s a recap of all the biggest changes shipping with Bootstrap 3:
+
+
New design and an optional theme! With v3, we’ve gone flat. Don’t call it a trend—it’s all about customization, folks. Since we simplified the aesthetics though, we thought it’d help to have an optional theme. To use it, check out the Bootstrap theme example.
+
Mobile first and always responsive! Nearly everything has been redesigned and rebuilt to start from your handheld devices and scale up.
+
Brand new Customizer! It’s been redesigned, is now compiled in the browser instead of Heroku, has better dependency support, and even has built-in error handling. Better yet, we now save your customizations to an anonymous Gist for easy reuse, sharing, and modifications.
+
Better box model by default. Everything in Bootstrap gets box-sizing: border-box, making for easier sizing options and an enhanced grid system.
+
Super-powered grid system. With four tiers of grid classes—phones, tablets, desktops, and large desktops—you can do some super crazy awesome layouts.
+
Rewritten JavaScript plugins. All events are now namespaced, no-conflict stuff works way better, and more.
+
New Glyphicons icon font! While they were gone for a while, we’ve since restored the Glyphicons to the main repo. In 2.x, they were images, but now they’re in font format and include 40 new glyphs.
+
Overhauled navbar. It’s now always responsive and comes with some super handy and re-arrangable subcomponents.
+
Modals are way more responsive. We’ve overhauled the modal code to make it way more responsive on mobile devices. They now scroll the entire viewport instead of having a max-height.
+
Added some components! New to the mix are panels and list groups.
+
Removed some components! We’ve dropped the accordion (replaced with collapsible panels), submenus, typeahead, and a few more small items. (Worth celebrating as much as adding new ones.)
+
More consistent base and sizing classes. Buttons, tables, forms, alerts, and more have been updated to have more consistent classes for easier customizer and extensibility.
+
Docs have been blown up, yo. We’ve added a lot of new documentation, not only for our components, but for browser support (including gotchas and bugs), license FAQs, third party support (and workarounds), accessibility, and more.
+
Dropped Internet Explorer 7 and Firefox 3.6 support. For Internet Explorer 8, you’ll need to include Respond.js for all the media queries to work correctly. You can read more about browser support in the docs.
+
+
For our pre-release testers and others who have been following along with the RCs, here’s a list of some of the more prominent changes made since RC2:
+
+
Hella bugs have been fixed (duh, right?).
+
Restored the Glyphicons icon font.
+
Navbars now require a .navbar-default for the standard version.
+
Panels now require a .panel-default for the standard gray variation.
+
Alerts now require a modifier class (e.g., .alert.alert-warning for the previously default yellow alert).
+
Multiple responsive utilities can now be applied to the same element.
+
Examples are back in the main repo and have been fully updated.
+
Docs have been updated for more consistent placement, naming, etc.
+
Customizer compiling bugs have all been fixed.
+
The optional theme has been added and is demonstrated in an example.
+
Jumbotrons are now made to extend the full width of the viewport with a container inside, but if you reverse that, the jumbotron in a container will be rounded and padded.
+
The navbar components have been updated to better account for the presence of containers and more. You’ll see some new margin and padding changes, but no markup changes should be required.
+
+
The numbers game
+
For those keeping track, Bootstrap 3 took nearly nine months to design, develop, and ship. In that time we’ve had:
+
+
Over 2,700 commits from 319 contributors
+
379 files changed, meaning 84,000 additions and deletions
+
Over 900 comments in the pull request
+
Over a 20% reduction in minified CSS (from 127kb to 97kb)
+
+
Beyond this release, numbers everywhere else are looking amazing. It’s been staggering to watch these grow.
+
+
Over 56,000 stars and 19,000 forks on GitHub (still number one, baby!).
+
Over 9,800 closed issues (that’s over 13 a day since we released Bootstrap).
+
Last month, we had nearly 15 million pageviews on our docs (and that barely includes anything from our v3 pre-releases).
+
In the last year, we’ve logged over 3 million downloads just from the docs, 40% of which are from the Customizer.
+
+
This was a massive undertaking and it couldn’t have come out better. Thanks once again to all our contributors and the rest of the community for helping us make this a reality.
+
What about non-responsive sites?
+
With Bootstrap 3 we’ve gone deep on responsive and mobile first—it’s built in and no longer requires a separate stylesheet. That’s great for most folks, but not everyone needs or wants an adaptive web site or application. To help, we’ve added some documentation and an example that disables the adaptive or responsive features with some extra CSS.
While we’re not actively maintaining or supporting 2.3.2, you can still get to the old documentation. Head to https://getbootstrap.com/2.3.2/ and you’ll find everything right where you left it (including the old customizer). We’ll leave this up and available for the foreseeable future.
+
As a side note, we apologize for all the redirect and 404 problems folks ran into during the last few weeks. This was our first time moving an entire repo on GitHub and we hit a huge snag with old builds of our docs and did our best to deal with those to not further confuse folks. We’ll do better next time.
+
Coming up next
+
As always, we’ll have one or two patch releases before hitting our next minor release. Beyond that, we have a few things we’d like to tackle for BS3.1 and are already tracking those as potential additions in #9397. If you’d like something considered for v3.1, check that list. If it’s not there, open a new issue to discuss.
+
No dates have been set for any patch or minor release yet. As soon as we figure that out, we’ll let you know.
+
Download!
+
Woo, all set? Then head to the docs and download yourself some Bootstrap 3!
Work on Bootstrap 3 continues and we’re almost ready to do an official release candidate. We’ve addressed nearly all our chosen changes and are now at a point where we’re smoothing things out as much as possible. We’ll share more information on the RC and v3 in the coming weeks.
Today we’re launching a new project to showcase the absolute best projects built on Bootstrap, the Bootstrap Expo.
-
The Bootstrap Expo is all hosted on GitHub, meaning recommending new sites is as easy as opening a new issue. It also keeps the primary Bootstrap repo focused on code and documentation, and not dozens of extraneous images.
-
As a side note, the Expo is the second project appearing under the twbs organization (this blog is already there in private mode). We’ll be moving Bootstrap and the Customizer over with v3 soon.
Today we’re launching a new project to showcase the absolute best projects built on Bootstrap, the Bootstrap Expo.
+
The Bootstrap Expo is all hosted on GitHub, meaning recommending new sites is as easy as opening a new issue. It also keeps the primary Bootstrap repo focused on code and documentation, and not dozens of extraneous images.
+
As a side note, the Expo is the second project appearing under the twbs organization (this blog is already there in private mode). We’ll be moving Bootstrap and the Customizer over with v3 soon.
In the next week or so, we plan on releasing v2.2.2. To date, there are over 50 CSS and documentation related issues already closed, and we want to get those out in your hands. We still have some significant JavaScript issues to work out, but those will be punted to 2.2.3 so we don’t hold up development. Our hope is to have that release out by end of year at the latest.
For a more complete set of changes, view the 2.2.2 milestone on GitHub. Most of the issues not mentioned above are minor CSS tweaks and documentation typos.
-
How to help
-
We would love to have folks help test these changes to prevent further regressions.
-
-
Checkout the 2.2.2-wip branch, or browse the release candidate docs so you can easily load it up on devices and such for testing. Note: downloads on the RC docs do not work.
-
Take a look at the docs and give ’em a run on the docs, on your phone, your (least?) favorite browser, etc.
-
Open a new issue on GitHub to report bugs. Please include as much context and information as possible. If it’s a visual bug, please include a screenshot. If it pertains to JavaScript, consider including a jsfiddle.
-
-
If you’re submitting a pull request against 2.2.2-wip, be sure to read the Contributing to Bootstrap wiki page first.
In the next week or so, we plan on releasing v2.2.2. To date, there are over 50 CSS and documentation related issues already closed, and we want to get those out in your hands. We still have some significant JavaScript issues to work out, but those will be punted to 2.2.3 so we don’t hold up development. Our hope is to have that release out by end of year at the latest.
For a more complete set of changes, view the 2.2.2 milestone on GitHub. Most of the issues not mentioned above are minor CSS tweaks and documentation typos.
+
How to help
+
We would love to have folks help test these changes to prevent further regressions.
+
+
Checkout the 2.2.2-wip branch, or browse the release candidate docs so you can easily load it up on devices and such for testing. Note: downloads on the RC docs do not work.
+
Take a look at the docs and give ’em a run on the docs, on your phone, your (least?) favorite browser, etc.
+
Open a new issue on GitHub to report bugs. Please include as much context and information as possible. If it’s a visual bug, please include a screenshot. If it pertains to JavaScript, consider including a jsfiddle.
+
+
If you’re submitting a pull request against 2.2.2-wip, be sure to read the Contributing to Bootstrap wiki page first.
Two weeks later, we’ve closed another 500 issues against Bootstrap. That includes all the dupes—you nerds like reporting typos—and invalid issues that don’t end up making it on the official release milestone. But, what’s awesome is that we have 2.1.1 ready to rock with 73 bugfixes.
New feature: alert text. We documented these new classes, like .text-success, at the bottom of the Typography section along with the long undocumented .muted.
-
Fixed a lot of typos in the docs. Spelling is hard.
-
Made the .box-shadow() mixin more durable. It no longer requires escaping for multiple shadows, meaning you can easily use variables and functions in them once again.
-
Widened .dl-horizontal dt and .horizontal-form .control-group to better handle the increased font-size.
-
Dropdown submenus improved: now you only see the next level, not all levels, on hover of the submenu toggle.
-
Clarified jQuery and Bootstrap template requirements in Getting Started section.
-
select now utilizes @inputBorder.
-
.lead now scales up from @baseFontSize instead of being a fixed font-size and line-height.
-
Fixed the vertical three color gradient in latest Firefox.
-
Reordered some variables that caused errors in certain Less compilers.
-
-
There’s a bunch more, so do run through the 2.1.1 milestone when you can, but those are the big ones.
-
Next up
-
More bug fixes, more feature improvements. 2.1.2 will be coming shortly and we’ll work to improve a handful of issues that we punted on for 2.1.1. Beyond that, we’ve scoped out the next few releases around a set of key components like modals and carousels.
-
We’ll continue to add new features as appropriate, but we’re primarily focused on improving current functionality in the next few months.
Two weeks later, we’ve closed another 500 issues against Bootstrap. That includes all the dupes—you nerds like reporting typos—and invalid issues that don’t end up making it on the official release milestone. But, what’s awesome is that we have 2.1.1 ready to rock with 73 bugfixes.
New feature: alert text. We documented these new classes, like .text-success, at the bottom of the Typography section along with the long undocumented .muted.
+
Fixed a lot of typos in the docs. Spelling is hard.
+
Made the .box-shadow() mixin more durable. It no longer requires escaping for multiple shadows, meaning you can easily use variables and functions in them once again.
+
Widened .dl-horizontal dt and .horizontal-form .control-group to better handle the increased font-size.
+
Dropdown submenus improved: now you only see the next level, not all levels, on hover of the submenu toggle.
+
Clarified jQuery and Bootstrap template requirements in Getting Started section.
+
select now utilizes @inputBorder.
+
.lead now scales up from @baseFontSize instead of being a fixed font-size and line-height.
+
Fixed the vertical three color gradient in latest Firefox.
+
Reordered some variables that caused errors in certain Less compilers.
+
+
There’s a bunch more, so do run through the 2.1.1 milestone when you can, but those are the big ones.
+
Next up
+
More bug fixes, more feature improvements. 2.1.2 will be coming shortly and we’ll work to improve a handful of issues that we punted on for 2.1.1. Beyond that, we’ve scoped out the next few releases around a set of key components like modals and carousels.
+
We’ll continue to add new features as appropriate, but we’re primarily focused on improving current functionality in the next few months.
Following up on the large 2.0.3 release a few weeks ago, we have a fresh update to address some documentation issues and basic CSS bugs. 2.0.4 includes around thirty closed issues and is our first version under our updated release approach (shorter, more concise releases).
-
As always, here’s a quick overview of some of the top changes.
-
Docs
-
-
Added type="button" to all dismiss buttons in alerts and modals to avoid a bug in which they prevent their parent’s form from properly submitting.
-
Added simple documentation to Base CSS for .lead.
-
Added new CSS test to illustrate how the navbar, static and fixed, behaves.
-
Clarified grid sizing copy to include mention of responsive variations.
-
Reformatted the LESS docs page to prevent terrible table displays at smaller grid sizes.
-
Miscellaneous typos and tweaks.
-
-
CSS
-
-
Refactored forms.less to make our selectors more specific for fewer overrides and less code. Instead of a generic input selector and various resets, we target each type of input like input[type="text"], input[type="password"], etc.
-
Form field state (e.g., success or error) now applies to checkbox and radio labels.
-
Removed redundant CSS on <p> for font-family, font-size, and line-height.
-
Removed redundant color declaration from the <label> element.
-
Added variables for dropdown dividers border colors.
-
legend and .form-actions share the same border-color, #e5e5e5.
-
Fixed some responsive issues with input-prepend and -append, notably with the fluid grid.
-
Added special CSS to prevent max-width: 100%; on images from messing up Google Maps rendering.
-
Scope opened dropdowns to only immediate children to avoid unintended cascade.
-
Similarly, scope floated-right dropdowns to immediate children with .pull-right > .dropdown-menu.
-
Updated .placeholder() mixin to use & operator in Less for proper output when compiling.
-
Added -ms-input-placeholder to .placeholder() mixin.
-
Added CSS3 hyphens mixin.
-
Fixed a bug in IE7/8 where certain form controls would not show text if the parent had a filter opacity set.
Following up on the large 2.0.3 release a few weeks ago, we have a fresh update to address some documentation issues and basic CSS bugs. 2.0.4 includes around thirty closed issues and is our first version under our updated release approach (shorter, more concise releases).
+
As always, here’s a quick overview of some of the top changes.
+
Docs
+
+
Added type="button" to all dismiss buttons in alerts and modals to avoid a bug in which they prevent their parent’s form from properly submitting.
+
Added simple documentation to Base CSS for .lead.
+
Added new CSS test to illustrate how the navbar, static and fixed, behaves.
+
Clarified grid sizing copy to include mention of responsive variations.
+
Reformatted the LESS docs page to prevent terrible table displays at smaller grid sizes.
+
Miscellaneous typos and tweaks.
+
+
CSS
+
+
Refactored forms.less to make our selectors more specific for fewer overrides and less code. Instead of a generic input selector and various resets, we target each type of input like input[type="text"], input[type="password"], etc.
+
Form field state (e.g., success or error) now applies to checkbox and radio labels.
+
Removed redundant CSS on <p> for font-family, font-size, and line-height.
+
Removed redundant color declaration from the <label> element.
+
Added variables for dropdown dividers border colors.
+
legend and .form-actions share the same border-color, #e5e5e5.
+
Fixed some responsive issues with input-prepend and -append, notably with the fluid grid.
+
Added special CSS to prevent max-width: 100%; on images from messing up Google Maps rendering.
+
Scope opened dropdowns to only immediate children to avoid unintended cascade.
+
Similarly, scope floated-right dropdowns to immediate children with .pull-right > .dropdown-menu.
+
Updated .placeholder() mixin to use & operator in Less for proper output when compiling.
+
Added -ms-input-placeholder to .placeholder() mixin.
+
Added CSS3 hyphens mixin.
+
Fixed a bug in IE7/8 where certain form controls would not show text if the parent had a filter opacity set.
Our next release, 2.0.3, is almost ready to rock, but we need your help to get the finish line in the best shape possible. Similar to what we did for the big 2.0 launch, we’re asking for the community’s help in testing out the release’s work-in-progress branch. We have a ton of bug fixes—another 80 or so since 2.0.2—and want to have the highest quality release we can.
+
Why?
+
Good question. 2.0.2 introduced some bad bugs in component behavior, publicized outdated documentation, and introduced some ugly regressions. That sucks, and when those things happen, we get held up tracking them down because we missed something in our haste to get a release out the door. We want to focus all our efforts on the 2.1 release after 2.0.3, and to do that we need to get as bug free as we can with this one.
+
We’ll leave 2.0.3-wip open for widespread testing all this week (April 16-20) and then push a release while Jacob and I are in London on April 24. That should give folks, including us, enough time to test the waters and report any back on any issues.
+
How?
+
Just like last time, we’re pushing out a release candidate of the 2.0.3 code and docs. Here’s how you can help us out:
+
+
Head to GitHub and checkout the 2.0.3-wip branch.
+
Don’t want to check out any code? We’re hosting the latest version of the docs here (http://203rc1.getbootstrap.com) so you can easily load it up on devices and such for testing.
+
Load up the new docs in your favorite, or your least favorite, browser or device and start testing.
+
When you find a bug or have feedback, open a new issue on GitHub. Please include as much context and information as possible. If it’s a visual bug, please include a screenshot. If it pertains to JavaScript, consider including a jsfiddle or jsbin.
+
If it’s a code fix you can make yourself, go ahead and submit a pull request against 2.0.3-wip. Be sure to read the Contributing to Bootstrap wiki page first though for a bit of insight into our code practices. (Unsure how to submit a pull request? Learn more here.)
+
+
+
We’re only human, and we’re bound to make a few mistakes in our code as Bootstrap continues to grow. Thanks in advance for all your help and support—it’s appreciated more than you know.
We don’t have specific dates in mind, but we know we want 2.0.3 out by the end of the month to address those key bugs. 2.1 will follow, but not for at least a month or two after 2.0.3.
Welcome one and all to the new, official Twitter Bootstrap blog. From now on, Jacob and I will be posting info on new releases, documentation changes, great examples of folks using Bootstrap, and more. Stay tuned for our first post on the next two updates for the project.
Welcome one and all to the new, official Twitter Bootstrap blog. From now on, Jacob and I will be posting info on new releases, documentation changes, great examples of folks using Bootstrap, and more. Stay tuned for our first post on the next two updates for the project.
Bootstrap v5.2.0 is finally stable! We’ve ironed out more bugs, improved more documentation, written new guides and built out new functional environment examples, and so much more!
+
Keep reading for highlights from both beta and stable releases.
+
Docs redesign
+
As previewed in our beta release, the docs have been redesigned! It starts with our new homepage where we have a more complete representation of Bootstrap’s features and an updated design.
The docs sidebar navigation has been overhauled to have always expanded groups for easier browsing, a brand new DocSearch experience with search history, and new responsive offcanvas drawers for both sidebar and navbar on mobile.
We even updated our version picker in the navbar to cross-link between minor releases!
+
+
+
Updated buttons and inputs
+
With our docs redesign, we refreshed buttons and inputs with modified padding and border-radius. Here’s a look at the before and after of our buttons:
+
+
+
Tons of new CSS variables
+
Nearly all our components now have CSS variables for real real-time customization, easier theming, and (soon) color mode support starting with dark mode. You can see what CSS variables are available on every docs page, like our buttons:
Values for virtually every CSS variables are assigned via Sass variable, so customization via CSS and Sass are both well supported. Also included for several components are examples of customizing via CSS variables.
+
+
+
New _maps.scss
+
Bootstrap v5.2.0 introduced a new Sass file with _maps.scss that pulls out several Sass maps from _variables.scss to fix an issue where updates to an original map were not applied to secondary maps that extend it. It’s not ideal, but it resolves a longstanding issue for folks when working with customized maps.
+
For example, updates to $theme-colors were not being applied to other maps that relied on $theme-colors (like the $utilities-colors and more), which created broken customization workflows. To summarize the problem, Sass has a limitation where once a default variable or map has been used, it cannot be updated. There’s a similar shortcoming with CSS variables when they’re used to compose other CSS variables.
+
This is also why variable customizations in Bootstrap have to come after @import "functions";, but before @import "variables"; and the rest of our import stack. The same applies to Sass maps—you must override the defaults before they get used. The following maps have been moved to the new _maps.scss:
+
+
$theme-colors-rgb
+
$utilities-colors
+
$utilities-text
+
$utilities-text-colors
+
$utilities-bg
+
$utilities-bg-colors
+
$negative-spacers
+
$gutters
+
+
Your custom Bootstrap CSS builds should now look like this with a separate maps import.
+
// Functions come first
+ @import "functions";
+
+ // Optional variable overrides here
++ $custom-color: #df711b;
++ $custom-theme-colors: (
++ "custom": $custom-color
++ );
+
+ // Variables come next
+ @import "variables";
+
++ // Optional Sass map overrides here
++ $theme-colors: map-merge($theme-colors, $custom-theme-colors);
++
++ // Followed by our default maps
++ @import "maps";
++
+ // Rest of our imports
+ @import "mixins";
+ @import "utilities";
+ @import "root";
+ @import "reboot";
+ // etc
+
New helpers and utilities
+
We’ve updated our helpers and utilities to make it easier to quickly build and modify custom components:
+
+
+
Added new .text-bg-{color} helpers. Instead of setting individual .text-* and .bg-* utilities, you can now use the .text-bg-* helpers to set a background-color with contrasting foreground color.
Expanded border-radius utilities to include two new sizes, .rounded-4 and .rounded-5, for more options.
+
+
+
Expect more improvements here as v5’s development continues.
+
Responsive offcanvas
+
Our Offcanvas component now has responsive variations. The original .offcanvas class remains unchanged—it hides content across all viewports. To make it responsive, change that .offcanvas class to any .offcanvas-{sm|md|lg|xl|xxl} class.
In addition, we’ve turned every one of those guides into a fully functioning example in our new twbs/examples repo. We’ve even added a couple more examples to the repo, with plans to create even more.
Each guide matches up to a new example in that repo, and nearly all of them can be immediately available in StackBlitz. Now you don’t even need to have a development environment configured on your computer to get started with Bootstrap.
+
+
+
And did we mention that nearly all our code snippets now have an open in StackBlitz button?
+
+
+
And more!
+
+
+
Introduced new $enable-container-classes option. — Now when opting into the experimental CSS Grid layout, .container-* classes will still be compiled, unless this option is set to false. Containers also now keep their gutter values.
+
+
+
Thicker table dividers are now opt-in. — We’ve removed the thicker and more difficult to override border between table groups and moved it to an optional class you can apply, .table-group-divider. See the table docs for an example.
+
+
+
Scrollspy has been rewritten to use the Intersection Observer API, which means you no longer need relative parent wrappers, deprecates offset config, and more. Look for your Scrollspy implementations to be more accurate and consistent in their nav highlighting.
+
+
+
Added .form-check-reverse modifier to flip the order of labels and associated checkboxes/radios.
+
+
+
Added striped columns support to tables via the new .table-striped-columns class.
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.
It’s the biggest release since v5 itself—Bootstrap v5.2.0-beta1 is here! This release features redesigned docs, CSS variables for all our components, responsive offcanvas, new helpers and utilities, refined buttons and inputs, and lots of improvements under the hood.
-
Given the size of the update and time since our last release, we’re doing something different and shipping it as a beta first. Keep reading for details.
-
Why so long?
-
I want to start by acknowledging the time it’s taken to ship a new release. As an open source maintainer, I’m constantly worried about not doing or being good enough of a developer for my projects. Pair that with a distributed team all working through this pandemic and me having a heart attack, we’ve all needed some down time. I managed to put together a Bootstrap Icons release with what energy I had before needing another break. The rest of the team has also needed some well deserved down time.
-
I ask that you all please take some time to send some appreciation and support to your favorite open source maintainers. Everyone could use a little more love in this work.
-
All that said, we’re shipping v5.2.0-beta1 first since it’s been so long—we’d love your help testing things out. We’ll follow up with a stable release as soon as possible.
-
Okay, now onto the good parts!
-
Redesigned docs
-
Another release, another docs refresh! From the get go, you’ll notice our Bootstrap Purple™ is much more vibrant now, making everything feel brand new. We’ve rewritten our entire homepage to better show off all the awesome features of Bootstrap.
Stepping into the actual docs, you’ll notice quite a few changes. We’ve streamlined our navbar, done away with our subnav, and changed the sidebar to always show every page link for greater discoverability. Show above is also our refreshed quick start guide, which is now a step-by-step instructional guide for using Bootstrap via CDN.
-
-
-
The refreshed navbar also has a long-awaited new version picker for v5.2.0 and beyond. From any page, click the version and see options to navigate to previous minor releases of that same page. When a page doesn’t exist in an older release, you’ll see a disabled version in the dropdown. We currently have no plans to link pages across major versions.
-
-
-
The docs search is now powered by the latest version of Algolia’s DocSearch, bringing an improved design that even shows your most recent searches.
-
Design tweaks
-
To coincide with our docs redesign, we’ve given our buttons and inputs a slight refresh with some refined border-radius values. It’s a small change, but a welcomed refresh to keep things modern and fresh. Here’s a look at the before and after of our buttons:
With this release, all our components now include CSS variables to enable real-time customization, easier theming, and (soon) color mode support starting with dark mode. Every component page has been updated to include a reference guide of the relevant CSS variables. Take for example our buttons:
Values for virtually every CSS variables are assigned via Sass variable, so customization via CSS and Sass are both well supported. Also included for several components are examples of customizing via CSS variables.
-
-
-
Check out all our components to see how you can customize them to your liking.
-
New _maps.scss
-
Bootstrap v5.2.0-beta1 introduces a new Sass file with _maps.scss that pulls out several Sass maps from _variables.scss to fix an issue where updates to an original map were not applied to secondary maps that extend it. It’s not ideal, but it resolves a longstanding issue for folks when working with customized maps.
-
For example, updates to $theme-colors were not being applied to other maps that relied on $theme-colors (like the $utilities-colors and more), which created broken customization workflows. To summarize the problem, Sass has a limitation where once a default variable or map has been used, it cannot be updated. There’s a similar shortcoming with CSS variables when they’re used to compose other CSS variables.
-
This is also why variable customizations in Bootstrap have to come after @import "functions";, but before @import "variables"; and the rest of our import stack. The same applies to Sass maps—you must override the defaults before they get used. The following maps have been moved to the new _maps.scss:
-
-
$theme-colors-rgb
-
$utilities-colors
-
$utilities-text
-
$utilities-text-colors
-
$utilities-bg
-
$utilities-bg-colors
-
$negative-spacers
-
$gutters
-
-
Your custom Bootstrap CSS builds should now look like this with a separate maps import.
-
// Functions come first
- @import "functions";
-
- // Optional variable overrides here
-+ $custom-color: #df711b;
-+ $custom-theme-colors: (
-+ "custom": $custom-color
-+ );
-
- // Variables come next
- @import "variables";
-
-+ // Optional Sass map overrides here
-+ $theme-colors: map-merge($theme-colors, $custom-theme-colors);
-+
-+ // Followed by our default maps
-+ @import "maps";
-+
- // Rest of our imports
- @import "mixins";
- @import "utilities";
- @import "root";
- @import "reboot";
- // etc
-
New helpers and utilities
-
We’re continuing to invest in our helpers and utilities to make it easier to quickly build and modify custom components.
-
-
-
Added new .text-bg-{color} helpers. Instead of setting individual .text-* and .bg-* utilities, you can now use the .text-bg-* helpers to set a background-color with contrasting foreground color.
Expanded border-radius utilities to include two new sizes, .rounded-4 and .rounded-5, for more options.
-
-
-
Expect more improvements here as v5’s development continues.
-
Responsive offcanvas
-
Our Offcanvas component now has responsive variations. The original .offcanvas class remains unchanged—it hides content across all viewports. To make it responsive, change that .offcanvas class to any .offcanvas-{sm|md|lg|xl|xxl} class.
-
And tons more!
-
-
-
Introduced new $enable-container-classes option. — Now when opting into the experimental CSS Grid layout, .container-* classes will still be compiled, unless this option is set to false. Containers also now keep their gutter values.
-
-
-
Thicker table dividers are now opt-in. — We’ve removed the thicker and more difficult to override border between table groups and moved it to an optional class you can apply, .table-group-divider. See the table docs for an example.
-
-
-
Scrollspy has been rewritten to use the Intersection Observer API, which means you no longer need relative parent wrappers, deprecates offset config, and more. Look for your Scrollspy implementations to be more accurate and consistent in their nav highlighting.
-
-
-
Added .form-check-reverse modifier to flip the order of labels and associated checkboxes/radios.
-
-
-
Added striped columns support to tables via the new .table-striped-columns class.
Much of the work we’ve done in v5.2.0-beta1 has been in support of adding dark mode to Bootstrap. Yes, it’s finally coming in our next minor release!
-
-
-
We’re adding tons of new global CSS variables, cleaning up docs styles, and better supporting overall customization. Some details and topics being worked on for dark mode:
-
-
-
Do we provide a JS plugin for toggling color modes? Right now we’re just building custom functionality for our docs.
-
-
-
Our current implementation is being built with data-theme selectors which allows explicit color mode switching (via user control vs and system preference) and custom color modes beyond light and dark.
-
-
-
We’re adding quite a few new colors outside $theme-colors to improve subtle UI customization. These are being implemented via :root and [data-theme="{theme}"] selectors for global use.
It’s the biggest release since v5 itself—Bootstrap v5.2.0-beta1 is here! This release features redesigned docs, CSS variables for all our components, responsive offcanvas, new helpers and utilities, refined buttons and inputs, and lots of improvements under the hood.
+
Given the size of the update and time since our last release, we’re doing something different and shipping it as a beta first. Keep reading for details.
+
Why so long?
+
I want to start by acknowledging the time it’s taken to ship a new release. As an open source maintainer, I’m constantly worried about not doing or being good enough of a developer for my projects. Pair that with a distributed team all working through this pandemic and me having a heart attack, we’ve all needed some down time. I managed to put together a Bootstrap Icons release with what energy I had before needing another break. The rest of the team has also needed some well deserved down time.
+
I ask that you all please take some time to send some appreciation and support to your favorite open source maintainers. Everyone could use a little more love in this work.
+
All that said, we’re shipping v5.2.0-beta1 first since it’s been so long—we’d love your help testing things out. We’ll follow up with a stable release as soon as possible.
+
Okay, now onto the good parts!
+
Redesigned docs
+
Another release, another docs refresh! From the get go, you’ll notice our Bootstrap Purple™ is much more vibrant now, making everything feel brand new. We’ve rewritten our entire homepage to better show off all the awesome features of Bootstrap.
Stepping into the actual docs, you’ll notice quite a few changes. We’ve streamlined our navbar, done away with our subnav, and changed the sidebar to always show every page link for greater discoverability. Show above is also our refreshed quick start guide, which is now a step-by-step instructional guide for using Bootstrap via CDN.
+
+
+
The refreshed navbar also has a long-awaited new version picker for v5.2.0 and beyond. From any page, click the version and see options to navigate to previous minor releases of that same page. When a page doesn’t exist in an older release, you’ll see a disabled version in the dropdown. We currently have no plans to link pages across major versions.
+
+
+
The docs search is now powered by the latest version of Algolia’s DocSearch, bringing an improved design that even shows your most recent searches.
+
Design tweaks
+
To coincide with our docs redesign, we’ve given our buttons and inputs a slight refresh with some refined border-radius values. It’s a small change, but a welcomed refresh to keep things modern and fresh. Here’s a look at the before and after of our buttons:
With this release, all our components now include CSS variables to enable real-time customization, easier theming, and (soon) color mode support starting with dark mode. Every component page has been updated to include a reference guide of the relevant CSS variables. Take for example our buttons:
Values for virtually every CSS variables are assigned via Sass variable, so customization via CSS and Sass are both well supported. Also included for several components are examples of customizing via CSS variables.
+
+
+
Check out all our components to see how you can customize them to your liking.
+
New _maps.scss
+
Bootstrap v5.2.0-beta1 introduces a new Sass file with _maps.scss that pulls out several Sass maps from _variables.scss to fix an issue where updates to an original map were not applied to secondary maps that extend it. It’s not ideal, but it resolves a longstanding issue for folks when working with customized maps.
+
For example, updates to $theme-colors were not being applied to other maps that relied on $theme-colors (like the $utilities-colors and more), which created broken customization workflows. To summarize the problem, Sass has a limitation where once a default variable or map has been used, it cannot be updated. There’s a similar shortcoming with CSS variables when they’re used to compose other CSS variables.
+
This is also why variable customizations in Bootstrap have to come after @import "functions";, but before @import "variables"; and the rest of our import stack. The same applies to Sass maps—you must override the defaults before they get used. The following maps have been moved to the new _maps.scss:
+
+
$theme-colors-rgb
+
$utilities-colors
+
$utilities-text
+
$utilities-text-colors
+
$utilities-bg
+
$utilities-bg-colors
+
$negative-spacers
+
$gutters
+
+
Your custom Bootstrap CSS builds should now look like this with a separate maps import.
+
// Functions come first
+ @import "functions";
+
+ // Optional variable overrides here
++ $custom-color: #df711b;
++ $custom-theme-colors: (
++ "custom": $custom-color
++ );
+
+ // Variables come next
+ @import "variables";
+
++ // Optional Sass map overrides here
++ $theme-colors: map-merge($theme-colors, $custom-theme-colors);
++
++ // Followed by our default maps
++ @import "maps";
++
+ // Rest of our imports
+ @import "mixins";
+ @import "utilities";
+ @import "root";
+ @import "reboot";
+ // etc
+
New helpers and utilities
+
We’re continuing to invest in our helpers and utilities to make it easier to quickly build and modify custom components.
+
+
+
Added new .text-bg-{color} helpers. Instead of setting individual .text-* and .bg-* utilities, you can now use the .text-bg-* helpers to set a background-color with contrasting foreground color.
Expanded border-radius utilities to include two new sizes, .rounded-4 and .rounded-5, for more options.
+
+
+
Expect more improvements here as v5’s development continues.
+
Responsive offcanvas
+
Our Offcanvas component now has responsive variations. The original .offcanvas class remains unchanged—it hides content across all viewports. To make it responsive, change that .offcanvas class to any .offcanvas-{sm|md|lg|xl|xxl} class.
+
And tons more!
+
+
+
Introduced new $enable-container-classes option. — Now when opting into the experimental CSS Grid layout, .container-* classes will still be compiled, unless this option is set to false. Containers also now keep their gutter values.
+
+
+
Thicker table dividers are now opt-in. — We’ve removed the thicker and more difficult to override border between table groups and moved it to an optional class you can apply, .table-group-divider. See the table docs for an example.
+
+
+
Scrollspy has been rewritten to use the Intersection Observer API, which means you no longer need relative parent wrappers, deprecates offset config, and more. Look for your Scrollspy implementations to be more accurate and consistent in their nav highlighting.
+
+
+
Added .form-check-reverse modifier to flip the order of labels and associated checkboxes/radios.
+
+
+
Added striped columns support to tables via the new .table-striped-columns class.
Much of the work we’ve done in v5.2.0-beta1 has been in support of adding dark mode to Bootstrap. Yes, it’s finally coming in our next minor release!
+
+
+
We’re adding tons of new global CSS variables, cleaning up docs styles, and better supporting overall customization. Some details and topics being worked on for dark mode:
+
+
+
Do we provide a JS plugin for toggling color modes? Right now we’re just building custom functionality for our docs.
+
+
+
Our current implementation is being built with data-theme selectors which allows explicit color mode switching (via user control vs and system preference) and custom color modes beyond light and dark.
+
+
+
We’re adding quite a few new colors outside $theme-colors to improve subtle UI customization. These are being implemented via :root and [data-theme="{theme}"] selectors for global use.
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 v5.1.2 is here with a handful of improvements across our components, plus a fix for an issue in another project that prevented our Sass from compiling properly. Keep reading for the highlights.
-
Highlights
-
-
Temporarily patched a postcss-values-parser issue by rearranging our calc() functions that use negative numbers. This should restore the ability to import and compile Bootstrap’s Sass in create-react-app.
-
Added border-radius sizes to small and large .form-selects
-
Added align-self: center to buttons for improved rendering in flex containers
-
Fixed Collapse regression that prevented toggling between sibling children
-
Updated JS Sanitizer to add sms in the SAFE_URL_PATTERN
-
Improved docs around .img-fluid
-
Added role="switch" to our form switches in our docs
-
Implemented GitHub Issue forms to replace our previous issue templates.
-
-
Up next
-
Up next is our v5.2.0 release, adding more utility improvements and fixing an issue with how Sass handles re-assigned maps and variables. Alongside that, we’ll be shipping an update to v4 soon as well.
Bootstrap v5.1.2 is here with a handful of improvements across our components, plus a fix for an issue in another project that prevented our Sass from compiling properly. Keep reading for the highlights.
+
Highlights
+
+
Temporarily patched a postcss-values-parser issue by rearranging our calc() functions that use negative numbers. This should restore the ability to import and compile Bootstrap’s Sass in create-react-app.
+
Added border-radius sizes to small and large .form-selects
+
Added align-self: center to buttons for improved rendering in flex containers
+
Fixed Collapse regression that prevented toggling between sibling children
+
Updated JS Sanitizer to add sms in the SAFE_URL_PATTERN
+
Improved docs around .img-fluid
+
Added role="switch" to our form switches in our docs
+
Implemented GitHub Issue forms to replace our previous issue templates.
+
+
Up next
+
Up next is our v5.2.0 release, adding more utility improvements and fixing an issue with how Sass handles re-assigned maps and variables. Alongside that, we’ll be shipping an update to v4 soon as well.
Our first patch release for Bootstrap 5 has landed with v5.0.1! We’ve fixed a handful of bugs in our CSS and JS while also resolving a few issues with our docs and examples.
-
Changelog
-
-
Fixed an issue where dropdowns wouldn’t close after clicking into an <input>
-
Validated inputs in .input-groups no longer render behind sibling elements
-
Prevent accent-bg from leaking in nested tables
-
Modal backdrops no longer throw Uncaught TypeError when initialized through JS
-
Refactored disposing properties into the base component
-
Extracted static DATA_KEY and EVENT_KEY to the base component
-
Merged transitionend listener callbacks into one method
-
Popovers and tooltips have a streamlined config property
-
Toasts no longer automatically hide on focus or hover
-
No longer redefining $list-group-color in the list group loop
-
-
Our docs and examples also received a few updates:
-
-
Fixed Sidebars example not rendering correctly in Chrome
-
Fixed RTLCSS stringMap configuration snippet
-
Updated offcanvas navbar example to prevent console error
-
Fixed miscellaneous typos, grammatical errors, and links in the Migration guide
Our first patch release for Bootstrap 5 has landed with v5.0.1! We’ve fixed a handful of bugs in our CSS and JS while also resolving a few issues with our docs and examples.
+
Changelog
+
+
Fixed an issue where dropdowns wouldn’t close after clicking into an <input>
+
Validated inputs in .input-groups no longer render behind sibling elements
+
Prevent accent-bg from leaking in nested tables
+
Modal backdrops no longer throw Uncaught TypeError when initialized through JS
+
Refactored disposing properties into the base component
+
Extracted static DATA_KEY and EVENT_KEY to the base component
+
Merged transitionend listener callbacks into one method
+
Popovers and tooltips have a streamlined config property
+
Toasts no longer automatically hide on focus or hover
+
No longer redefining $list-group-color in the list group loop
+
+
Our docs and examples also received a few updates:
+
+
Fixed Sidebars example not rendering correctly in Chrome
+
Fixed RTLCSS stringMap configuration snippet
+
Updated offcanvas navbar example to prevent console error
+
Fixed miscellaneous typos, grammatical errors, and links in the Migration guide
Bootstrap Icons v1.4.0 adds over 60 new icons as part of a brand new weather category. Also included are some long requested improvements to vertical alignment and a handful of updates to tags and categories.
-
Keep reading for a preview of the new icons and how icon alignment has changed.
-
60+ weather icons
-
-
-
The new weather category includes over 60 icons for various weather and atmospheric conditions. From fog and haze to rainstorms and hurricanes, we now have icons for just about every weather situation. We undoubtedly have some more work to do to refine and add to this new category, but it’s a pretty big addition to the project. Let us know what you think and what’s missing so we can keep adding to it over time.
-
Alignment changes
-
-
-
Also new in v1.4.0 are some alignment changes—before and after are shown above. Previously we used vertical-align: text-top in our CSS to aligning individual icons. This wasn’t as much of an issue when we only had SVGs, but with the addition of icon fonts and their generated CSS in v1.2.0, we had to make some changes.
-
New in this release is a change to vertical-align: -.125em. This new alignment is similar to that found in the tried and true Font Awesome project. This change essentially raises icons up about 1px to better vertically center them with nearby text.
-
It may not be perfect in all implementations, so additional changes might still be needed, but this should give you a stronger baseline to start (pun intended). Should you still run into issues, please don’t hesitate to open an issue on GitHub.
-
And more…
-
We’ve also made several updates under the hood, from dependencies to build tools. This has resulted in improved speeds for our development scripts and more resilient tooling for packaging our icons. We’ve also included category names into the fuzzy search on the homepage, making it a lot easier to search for groups of icons.
-
We still have some work to do on our docs and search, so stay tuned as we’ll eventually add category pages and more for easier browsing and navigating. If you’re reading this and want to help improve the Bootstrap Icons docs, please consider opening a PR anytime.
Bootstrap Icons v1.4.0 adds over 60 new icons as part of a brand new weather category. Also included are some long requested improvements to vertical alignment and a handful of updates to tags and categories.
+
Keep reading for a preview of the new icons and how icon alignment has changed.
+
60+ weather icons
+
+
+
The new weather category includes over 60 icons for various weather and atmospheric conditions. From fog and haze to rainstorms and hurricanes, we now have icons for just about every weather situation. We undoubtedly have some more work to do to refine and add to this new category, but it’s a pretty big addition to the project. Let us know what you think and what’s missing so we can keep adding to it over time.
+
Alignment changes
+
+
+
Also new in v1.4.0 are some alignment changes—before and after are shown above. Previously we used vertical-align: text-top in our CSS to aligning individual icons. This wasn’t as much of an issue when we only had SVGs, but with the addition of icon fonts and their generated CSS in v1.2.0, we had to make some changes.
+
New in this release is a change to vertical-align: -.125em. This new alignment is similar to that found in the tried and true Font Awesome project. This change essentially raises icons up about 1px to better vertically center them with nearby text.
+
It may not be perfect in all implementations, so additional changes might still be needed, but this should give you a stronger baseline to start (pun intended). Should you still run into issues, please don’t hesitate to open an issue on GitHub.
+
And more…
+
We’ve also made several updates under the hood, from dependencies to build tools. This has resulted in improved speeds for our development scripts and more resilient tooling for packaging our icons. We’ve also included category names into the fuzzy search on the homepage, making it a lot easier to search for groups of icons.
+
We still have some work to do on our docs and search, so stay tuned as we’ll eventually add category pages and more for easier browsing and navigating. If you’re reading this and want to help improve the Bootstrap Icons docs, please consider opening a PR anytime.
We’ve updated Bootstrap 4 with a new patch release to fix some bugs, backport some iterative changes from v5, and more. Enjoy!
-
As you may already know, we’re alternating between v4 and v5 releases to keep both versions moving in tandem. This helps us close the gap between v4 and v5 and make updating to v5 as easy as possible.
We’ll be back to v5 with our third alpha release coming in a couple of weeks. After that, we’ll ship another v4 update with v4.6.0 that continues the v5 backports and feature development. Please keep the feedback coming on what we can improve, how our releases are performing, and any other suggestions.
We’ve updated Bootstrap 4 with a new patch release to fix some bugs, backport some iterative changes from v5, and more. Enjoy!
+
As you may already know, we’re alternating between v4 and v5 releases to keep both versions moving in tandem. This helps us close the gap between v4 and v5 and make updating to v5 as easy as possible.
We’ll be back to v5 with our third alpha release coming in a couple of weeks. After that, we’ll ship another v4 update with v4.6.0 that continues the v5 backports and feature development. Please keep the feedback coming on what we can improve, how our releases are performing, and any other suggestions.
Today we’re shipping our fifth and final alpha release of Bootstrap Icons. After today’s alpha release, we’ll be moving onto final touch ups of existing icons, closing out some more requests, and buttoning things up for a stable v1 release. Stay tuned!
-
1,000+ icons
-
This release adds nearly 300 new glyphs, taking us right past 1,000 icons. We’ve fleshed out all our calendar icons to add ranges and events, added a suite of new phone icons, added tons of new devices and hardware icons, dozens of badges, and so much more.
As was the case with our previous alpha releases, not only do we have tons of brand new icons, but also dozens of fixes and refinements to existing ones. We’ve improved our paths to reduce icon file sizes, spending more time making things pixel perfect and with fewer vector hacks in our Figma files. In addition, we’ve updated our icon processing script to read the viewBox dimensions of each SVG individually to set their width and height. In future updates, this will allow us to create icons of various dimensions instead of our default 16x16.
-
New SVG sprite
-
In addition to hundreds of new icons, we’ve added a new bootstrap-icons.svg sprite. For those new to SVG sprites, it allows you to load a single asset and reference fragments of it across your project without inserting the entire HTML for the SVG.
-
Here’s a quick look at how it works once imported:
We hope to include some optimizations around this in the future as it’s our first endeavor into an SVG sprite system. Feedback and ideas are always welcome in our issues!
-
Coming in v1 stable
-
The single biggest feature coming in v1’s stable release will be icon web fonts. There’s a PR underway that requires further SVG path cleanup, as well as some tooling improvements. Overall it feels pretty promising!
-
While icon fonts are great for a handful of implementation reasons, please be aware that they are not inherently the most accessible option for your visitors. SVGs provide more control and styling options, and allow you to be accessible from the start with aria roles and <title>s.
-
If you have additional tips for how we can improve our icons, documentation, or tooling to be more accessible and approachable, don’t hesitate to share.
-
Beyond that, we’ll continue to clean up and improve existing icons and then aim to add a handful of new icons.
-
Download
-
Alpha 5 has been published to GitHub and npm (package name bootstrap-icons). Get your hands on it from GitHub, by updating to v1.0.0-alpha5, or by snagging the icons from Figma.