B

The Bootstrap Blog

News and announcements for all things Bootstrap, including new releases, Bootstrap Themes, and Bootstrap Jobs.

Bootstrap 4 Beta

Two years in the making, we finally have our first beta release of Bootstrap 4. In that time, we’ve broken all the things at least twenty-seven times over with nearly 5,000 commits, 650+ files changed, 67,000 lines added, and 82,000 lines deleted. We also shipped six major alpha releases, a trio of official Themes, and even a job board for good measure. Put simply? It’s about time.

Beta!?

Long story short, shipping a beta means we’re done breaking all your stuff until our next major version (v5). We’re not perfect, but we’ll be doing our best to keep all the classes, features, and docs URLs as they appear now in this release. We can always add more things, but we cannot take away.

For those who haven’t been using the v4 alpha releases, here are some highlights to get you caught up.

  • Moved from Less to Sass. Bootstrap now compiles faster than ever thanks to Libsass, and we join an increasingly large community of Sass developers.
  • Flexbox and an improved grid system. We’ve moved nearly everything to flexbox, added a new grid tier to better target mobile devices, and completely overhauled our source Sass with better variables, mixins, and now maps, too.
  • 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.
  • Forked Normalize.css and consolidated all our HTML resets into a new CSS module, Reboot. Normalize.css has taken a different path than we’d prefer, dropping some core CSS tweaks we’ve long depended upon. Reboot takes the core of Normalize.css and expands it to include 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, grid classes, 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 and IE9 support, dropped older browser versions, and moved to rem units for component sizing to take advantage of newer CSS support. Aside from our grid, pixels have been swapped for rems and ems where appropriate to make responsive typography and component sizing even easier. Need support for IE8/IE9, Safari 8-, iOS 8-, etc? Keep using Bootstrap 3.
  • Rewrote all our JavaScript plugins. Every plugin has been rewritten in ES6 to take advantage of the newest JavaScript enhancements with new teardown methods, option type checking, new methods, and more.
  • Improved auto-placement of tooltips, popovers, and dropdowns thanks to the help of a library called Popper.js.
  • Redesigned and improved documentation. We redesigned it, 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. We also added an amazing new search form!
  • New build tools completely rewritten in npm scripts instead of Grunt, immensely simplifying the process of developing and contributing to Bootstrap.
  • And so much more! Custom form controls, a redesigned carousel, an overhauled navbar, HTML5 form validation styles, hundreds of responsive utility classes, new components, and more have also been included.

Okay, phew, want to learn even more? Keep reading, or jump right to those brand new docs!

New look

Bootstrap 4 has been sporting a slightly updated look throughout our alpha releases, but it wasn’t until recently that we gave the docs and our components a refresh, too.

Bootstrap 4 beta docs

In addition to a new color palette and new systems fonts, we have a brand new layout for our documentation. New with this beta is an amazing search form powered by Algolia’s DocSearch, an improved page layout with stickied navbar and sidebar, and a new table of contents.


For more details on this release’s changes, take a look at the Beta 1 ship list issue, as well as the closed Beta 1 milestone. Be sure to join our official Slack room! and dive into our issue tracker with bug reports, questions, and general feedback whenever possible.

<3,
@mdo & team

Introducing Bootstrap Jobs

Every month, millions of developers across the world visit Bootstrap’s documentation, reading up on features, implementing components, and learning new techniques. Millions more use it daily in their projects, extending and customizing it through the massive ecosystem of themes, extensions, and tools.

Today, we’re excited to expand that ecosystem once more with an official Bootstrap Jobs board. We’re launching with job opportunities from a handful of the biggest software-driven companies out there, including Airbnb, Stripe, Lyft, Medium, and more.

Bootstrap developers come from all different backgrounds, geographic regions, and skill levels, often with domain expertise across multiple programming languages. They tend to not only write HTML, CSS, and JavaScript, but Ruby, PHP, React, iOS, and more, too. With Bootstrap Jobs, Bootstrap developers have immediate access to a brand new job board just for them from a site they visit nearly 20 million times each month. Companies all over now have a direct and efficient channel to reach this massive audience with relevant job postings.

Looking for your next job? Head on over to https://jobs.getbootstrap.com to search for jobs from some of the best companies out there.

Have a job you’d like to share with Bootstrap developers? Visit https://jobs.getbootstrap.com and click “Post a Job” to get started. Have any questions or feedback, don’t hesitate to email us at jobs@getbootstrap.com.

<3,
The Bootstrap Team

Bootstrap 4 Alpha 6

Alpha 6 has landed, and it’s one of our biggest ships to date. We’ve rewritten our grid system and all major components in flexbox, forging ahead with it as our default layout option as we drop IE9 support. With 700 commits since our last release, we have some catching up to do.

Read one for highlights from this release. We also recommend reviewing the ship list and milestone for a more detailed look at what’s changed.

Embracing Flexbox

Bootstrap 4 is now flexbox by default! Flexbox is an immensely powerful layout tool, providing unparalleled flexibility (hah) and control to our grid system and core components. It comes at the cost of dropping IE9 support, but brings significant improvements to component layout, alignment, and sizing.

Bootstrap flexbox on jsbin.com

If you’re unfamiliar with flexbox, here’s some of the power you can expect to utilize in Bootstrap 4:

  • Automatic equal-width grid columns (e.g., two columns are automatically 50% wide)
  • Equal height and equal width cards
  • Vertical and horizontal centering without hardcoding values with translate or margin
  • Utility classes for easily (and responsively!) changing display, direction, alignment, and more
  • Auto margins for easy spacing
  • Justified navigation and button groups
  • No more HTML white space or broken table-style rendering

Nearly every component now takes advantage of flexbox in place of display: table hacks and floats. That means less reliance on clearfix, more control over DOM and visual order, and fewer bugs. Navs, list groups, cards, and more all utilize flexbox. Even more complex components like the carousel have been modified to use flexbox in some places.

Bootstrap carousel on jsbin.com

Responsive utilities and the great infix

With Alpha 6, we’ve made Bootstrap’s extensive suite of utilities—including classes for display, float, and flexbox, and more—completely responsive. To keep these class names as approachable and representative of their scope as possible, we’ve also made two important changes to their naming scheme.

  • First, we’ve dropped the -xs infix from our lowest (extra small) breakpoint. xs isn’t a responsive breakpoint quite like sm, md, lg, and xl because it doesn’t start applying styles at a min-width and up. It simply applies to everything as there’s no bounding @media query.

  • Second, we’ve renamed several classes to better articulate their property-value pairings. Instead of pull, we use float. Instead of creating new names for the various flexbox properties, we start with the property name.

Put that all together and you end up with updated classes like .col-6, .d-none, .float-right, .d-md-flex, .justify-content-end, and .text-lg-left. These new classes bring immense power and customization to folks building with Bootstrap. They also make it easier for those migrating from v3 with clearer mappings to legacy class names.

More grid improvements

We’re back at it with more grid improvements. This time we’ve added responsive autosizing columns and more container padding options. Add any number of .col-* classes and they’ll automatically be equal in width.

Bootstrap flexbox auto columns on jsbin.com

Padding for grid containers can now be configured across breakpoints with the new $grid-gutter-widths Sass map. In addition, you can remove gutters from grid rows and their columns with the .no-gutters modifier.

Updated navbar

As mentioned in our last release, the Alpha 5 navbar was a little half baked. This time around, we’re completely baked. No, but seriously, the navbar has been rewritten to provide better built-in responsive behaviors and improved layout customization thanks to our move to flexbox.

Bootstrap 4 navbars

Here’s the rundown on what’s changed:

  • Navbars are built with flexbox! Instead of floats, you’ll need flexbox and margin utilities.
  • Navbar navs no longer require the .nav base class. While it provided a starting point, these shared styles often got in the way of navbar behaviors. Now it’s just .navbar-nav and utilities for alignment.
  • The .navbar-toggleable classes are now applied to the .navbar instead of the .collapse within. This allows us to provide better responsive behavior with just one class change.
  • The responsive navbar toggle, .navbar-toggler, has also been updated. The icon is once again a child element, .navbar-toggler-icon, for improved customization. It also includes easy modifiers for absolutely aligning it to the top right or top left.

Check out the navbar docs to learn more and see it in action.

Up next, our first beta

Like you, we’re very much ready for our first beta release. Luckily, we’re in great shape to get there from this alpha. We have the fewest open issues and pulls we’ve had in easily the last 18 months, and the contributions from the community have been outstanding. As we head to our first beta, we’ll be focused on not adding anything new, ideally making as few breaking changes as possible, and emphasizing documentation quality and bug fixes.

We need your help to get there though. Please dive into this latest release and continue to report bugs and submit pull requests as you can. Every bit helps us improve the next release!


For more details on this release’s changes, take a look at the Alpha 6 ship list issue, as well as the closed Alpha 6 milestone. Be sure to join our official Slack room! and dive into our issue tracker with bug reports, questions, and general feedback whenever possible.

Using the Bootstrap CDN? Review the changelog and update your CDN links to point to the latest files:

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>

<3,
@mdo & team

Bootstrap 4 Alpha 5

Alpha 5 has arrived just over a month after Alpha 4 with some major feature improvements and a boat load of bug fixes. We still have a lot of work to do, but we’re closing the gap and getting more stable with each release. Keep reading for the highlights and plans for Alpha 6.

New CSS bundles

We’ve updated our build process to include compiled versions of all our CSS bundles. In addition to the longstanding default compiled and minified bundles, we now include compiled CSS files for our flexbox mode, grid system only, and Reboot only bundles. Each bundle includes a compiled, minified, and Sass map, just like the default compiled CSS.

Grid updates

Our grid system has been updated and is more flexible than ever. New in Alpha 5 are breakpoint specific grid gutters. That’s right, now you can customize the width of your gutters across each and every grid tier by modifying the Sass map.

The .container behaviors have changed slightly in Alpha 5. We now set the width of each container alongside a max-width: 100%; to ensure proper rendering across browsers in both our default and flexbox modes. Similarly, we fixed a bug in our flexbox grid where columns didn’t properly collapse at lower breakpoints.

Lastly, we’ve changed a few breakpoint and container dimensions. The sm tier’s container is now smaller than it’s viewport dimensions and the lg tier has changed from 940px to 960px for grid columns that more cleanly by 12.

Utilities overhaul

Utility classes got a ton of attention with Alpha 5 and will continue to in Alpha 6. Major changes in this release include:

  • Simpler margin and padding syntax (e.g., now mx-auto instead of m-x-auto).

  • Renamed .pull-*-left and .pull-*-right to their CSS properties (e.g., now .float-*-left and .float-*-right).

  • Separated background and color utilities for more explicit styling.

  • Renamed image utilities, moving from .img-rounded and .img-circle to .rounded and .rounded-circle, respectively.

  • Removed the display: block; from .img-fluid as it’s unnecessary for creating responsive images (the inline-block default works great as-is).

  • Added new vertical-align utilities with .align-top, .align-middle, and more.

Be sure to scope out the open issues in the Alpha 6 milestone. There are more updates coming to utilities to add more responsive variations, more consistent naming, and more.

We’ve put a ton of time into the navbar for Alpha 5, but honestly it’s still not done. Rather than hold back the progress we’ve made for it until Alpha 6, we’re including a somewhat half-baked iteration.

Here’s a look at what’s new, how it works, and what might change in our next release.

  • First up, the navbar has a brand new toggler that features a customizable SVG-based background-image. With the power of Sass variables, that allows us to easily change the color of those hamburger menu icons.

  • Second, the default styles for the brand and navigation have largely been tweaked. There’s less custom styling overall and an emphasis on positioning and flexibility.

  • Building on that, we overhauled the collapse plugin integration for responsive navbars. With the help of some utility classes and collapse classes for each grid tier, you can easily pick the breakpoint for collapsing your navbar without having to recompile your Sass. Also included is the auto restyling of dropdown menus for mobile so they no longer hide other navbar content when toggled.

  • Lastly, we’ve updated the styling and documentation for various navbar subcomponents. There’s more flexibility and examples of the .navbar-brand, better form control support, higher nav contrast, themed responsive toggles, and more.

The navbar is a tricky one—there’s so much functionality and styling that can go into them. We’ve outlined the next major pieces for the navbar, but there’s likely more we’re missing. Be sure to give the updated component a whirl and report back with your feedback.

Getting to Alpha 6

We’re planning on one more major alpha release before getting into the slightly more stable beta ships. There’s still more to do around our major components—the navbar, flexbox variants, utilities, and accessibilty—before we button things up.

Once done, we’ll review all on our docs and update all our example templates to the latest and greatest. From there we’ll need your help to test these changes and report bugs. Stay tuned for more updates as we get closer to that release.

Until then, have at it with Alpha 5!


For more details on this release’s changes, take a look at the Alpha 5 ship list issue, as well as the closed Alpha 5 milestone. Be sure to join our official Slack room! and dive into our issue tracker with bug reports, questions, and general feedback whenever possible.

Using the Bootstrap CDN? Review the changelog and update your CDN links to point to the latest files:

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css" integrity="sha384-AysaV+vQoT3kOAXZkl02PThvDr8HYKPZhNT5h/CXfBThSRXQ6jW5DO2ekP5ViFdi" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/bootstrap.min.js" integrity="sha384-BLiI7JTZm+JWlgKa0M0kGRpJbF2J8q+qreVrKBC47e3K6BW78kGLrCkeRX6I9RoK" crossorigin="anonymous"></script>

<3,
@mdo & team

Bootstrap 4 Alpha 4

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.

For more details on this release’s changes, take a look at the Alpha 4 ship list issue, as well as the closed Alpha 4 milestone. Be sure to join our official Slack room! and dive into our issue tracker with bug reports, questions, and general feedback whenever possible.

Using the Bootstrap CDN? Review the changelog and update your CDN links to point to the latest files:

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.4/css/bootstrap.min.css" integrity="sha384-2hfp1SzUoho7/TsGGGDaFdsuuDL0LX2hnUp6VkX3CUQ2K4K+xjboZdsXyp4oUHZj" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.4/js/bootstrap.min.js" integrity="sha384-VjEeINv9OSwtWFLAtmc4JCtEJXXBub00gtSnszmspDLCtC0I4z4nqz7rEFbIZLLU" crossorigin="anonymous"></script>

<3,
@mdo & team