Updated August 31, 2015 with Bootstrap 4.0.0-alpha

Responsive CSS Framework Comparison

Bootstrap vs. Foundation vs. Skeleton

@vermiliondesignRead the blog post


  Bootstrap 4.0.0-alpha New Foundation v5.5 Skeleton v2.0.1
Summary Updates in version 4.0.0-alpha:
  • Dropped Less in favor of Sass
  • Better grid system for mobile
  • Opt-in flexbox support - use Sass boolean to toggle
  • Wells, Thumbnails, and Panels have been replaced by Cards
  • New reset called Reboot (combination of normalize.css and Bootstrap base styles)
  • Dropped IE8 support
  • Moved from px to rem and em units
  • All JS plugins rewritten in ES6
  • Completely rewritten and improved documentation
Blog post here
  • Grids: Fluid. Best in class grids across all viewports.
  • UI tools: Powerful and modular set of tools. More style agnostic than Bootstrap.
  • History: Performance and efficiency improvements to v4
Updates in version 5.5.0:
  • Now compatible with Sass 3.4
  • Improvements to Dropdowns to keep them from straying outside page boundaries
  • Dropdowns now automatically close when a link is clicked
  • Abide’s validations now work better
  • Split buttons can now support 2 different events
  • Accordions can now use <ul> elements instead of <dl> elements
Blog post here
  • Grids: Fluid
  • UI tools: Limited
  • History: Mobile-first update, new percentage-based grid, more robust form styles, new basic table styling and super basic code styling
Version 4.0.0-alpha 5.5.0 2.0.1
Last Released August 19, 2015 December 12, 2014 December 11, 2014
Website v4-alpha.getbootstrap.com foundation.zurb.com getskeleton.com
GitHub github.com/
Creator Mark Otto and Jacob Thornton at Twitter ZURB Dave Gamache
License MIT License MIT License MIT License
Browser Support Mobile
  • Chrome - Android and iOS
  • Firefox - Android
  • Safari - iOS
  • Android Browser & WebView - Android
  • Chrome - Mac/Win
  • Firefox - Mac/Win
  • IE9+ - Win (IE9 limitations)
  • Opera - Mac/Win
  • Safari - Mac
“Unofficially, Bootstrap should look and behave well enough in Chromium and Chrome for Linux, Firefox for Linux, and Internet Explorer 8 and below, though they are not officially supported.” -Bootstrap 4 Docs
Desktop: Chrome, Firefox, Safari, IE9+
Mobile: iOS (iPhone), iOS (iPad), Android 2, 4 (Phone), Android 2, 4 (Tablet), Windows Phone 7+, Surface
Latest and previous versions of Chrome, Firefox, Opera, and Safari; IE9+
Vermilion Commentary Bootstrap 4.0.0-alpha is a fairly large update to the framework. It has dropped Less support in favor of Sass, converted from px-based to rem-based sizing, improved its grid system, and dropped IE8 support. Also, all its JS plugins were re-written in ES6, it now uses a customized reset CSS file called Reboot, and offers flexbox support via a Sass boolean variable.

In addition to this update, Bootstrap now offers themes at themes.getbootstrap.com.

Also, Bootstrap will continue supporting version 3, unlike the dropping of version 2 support after the release of version 3.

You can read more here.
Foundation 5.5.0 is an iteration of what is now called “Foundation for Sites”. Foundation for Sites is one of three versions of Foundation: Foundation for Apps,
Foundation for Sites,
and Foundation for Email.

Foundation 5 is similar to version 4, with some performance improvements and developer tools. In conjunction with v5, ZURB also announced an official enterprise consulting service.

Version 5 switches to jQuery 2, removing support for Zepto, which was added in v4. This change, along with the addition of fastclick.js, should make performance better for both desktop and mobile users.

New templates were also released with v5 for faster prototyping.

On the Sass side, ZURB added Libsass to improve compilation performance.

Finally, the developer docs have been significantly improved.

You can read more here.
Skeleton 2 was updated in December 2014 after remaining mostly unchanged for about three years.

This update focuses on a new percentage-based grid, mobile-first media queries, a bit more default styling for tables, forms, and code elements, and changed its reset to normalize.css

The default font is now Raleway served by Google and the text is sized in rems

Here is a post about the update: medium.com/@dhg/dear-skeleton-452f4bb07d69

This is still the best approach for simplicity. It is technically not a “framework” since it is meant as a starting point for responsive websites, and it still uses vanilla CSS.


  Bootstrap 4.0.0-alpha New Foundation v5.5 Skeleton v2.0.1
Reset reboot.css (_reboot.scss) normalize.css normalize.css
Sass/Scss Y Y N

Grids and Responsiveness

  Bootstrap 4.0.0-alpha New Foundation v5.5 Skeleton v2.0.1
Base width Fluid (0, 34em, 48em, 62em, 75em) Fluid (max-width 62.5em default) Fluid (max-width 960px default)
Columns 12 1-infinity (12 default) 12
Single column class syntax .col-xs-1 .col-sm-1 .col-md-1 .col-lg-1 .col-xl-1 .small-1.columns .medium-1.columns .large-1.columns .one.column
Two column class syntax .col-xs-2 .col-sm-2 .col-md-2 .col-lg-2 .col-xl-2 .small-2.columns .medium-2.columns .large-2.columns .two.columns
Container syntax <div class="container"> or <div class="container-fluid"> Not available <div class="container">
Row syntax <div class="row"> <div class="col-xs-2 col-sm-4 col-md-6 col-lg-7 col-xl-8">...</div> <div class="col-xs-10 col-sm-8 col-md-6 col-lg-5 col-xl-4">...</div> </div> <div class="row"> <div class="small-8 medium-6 large-4 columns">...</div> <div class="small-4 medium-6 large-8 columns">...</div> </div> <div class="row"> <div class="four columns">...</div> <div class="eight columns">...</div> </div>
Gutter-free row syntax Not available <div class="row collapse"> Not available
Nested column syntax <div class="row"> <div class="col-sm-9"> <div class="row"> <!-- nested columns add up to 12 --> <div class="col-xs-8 col-sm-6">...</div> <div class="col-xs-4 col-sm-6">...</div> </div> </div> </div> <div class="row"> <div class="small-6 columns"> <div class="row"> <!-- nested columns add up to 12 --> <div class="small-6 columns">...</div> <div class="small-6 columns">...</div> </div> </div> </div> Columns cannot be nested
Offset column syntax <div class="row"> <div class="col-md-4">...</div> <div class="col-md-4 col-md-offset-4">...</div> </div> <div class="row"> <div class="large-1 columns">1</div> <div class="large-8 large-offset-3 columns">8, offset 3</div> </div> <div class="row"> <div class="four columns">...</div> <div class="four columns offset-by-four">...</div> </div>
Centered syntax Not available <div class="row"> <div class="small-3 small-centered columns">3 centered</div> </div> Not available
Ordering syntax <div class="row"> <div class="col-md-9 col-md-push-3">...</div> <div class="col-md-3 col-md-pull-9">...</div> </div> <div class="row"> <div class="small-2 push-10 columns">first in mobile/last in desktop</div> <div class="small-10 pull-2 columns">first in desktop/last in mobile</div> </div> Not available
Four column mobile syntax <div class="row"> <div class="col-xs-3">...</div> <div class="col-xs-9">...</div> </div> <!-- Now done through small- column prefixes: --> <div class="row"> <div class="small-3 columns">...</div> <div class="small-9 columns">...</div> </div> Not available
Block grids syntax Not available <!-- Using only the small-block-grid --> <ul class="small-block-grid-2"> <li>...</li> <li>...</li> </ul> <!-- Using only the large-block-grid --> <ul class="large-block-grid-4"> <li>...</li> <li>...</li> </ul> <!-- Using both block grids together for different layouts --> <ul class="small-block-grid-2 large-block-grid-4"> <li>...</li> <li>...</li> </ul> Not available
Visibility class syntax Viewport-based: .hidden-xs-down .hidden-sm-down .hidden-md-down .hidden-lg-down .hidden-xl-down .hidden-xs-up .hidden-sm-up .hidden-md-up .hidden-lg-up .hidden-xl-up Print-based: .visible-print-block .visible-print-inline .visible-print-inline-block .hidden-print Viewport-based: .show-for-small .show-for-medium-down .show-for-medium .show-for-medium-up .show-for-large-down .show-for-large .show-for-large-up .hide-for-small .hide-for-medium-down .hide-for-medium .hide-for-medium-up .hide-for-large-down .hide-for-large .hide-for-large-up Orientation-based: .show-for-landscape .show-for-portrait .hide-for-landscape .hide-for-portrait Device-based: .show-for-touch .hide-for-touch Not available
Media queries syntax // Extra small devices (portrait phones, less than ???px) // No media query since this is the default in Bootstrap // Small devices (landscape phones, 34em and up) @media (min-width: 34em) { ... } // Medium devices (tablets, 48em and up) @media (min-width: 48em) { ... } // Large devices (desktops, 62em and up) @media (min-width: 62em) { ... } // Extra large devices (large desktops, 75em and up) @media (min-width: 75em) { ... } // Sass mixins @include media-breakpoint-up(xs) { ... } @include media-breakpoint-up(sm) { ... } @include media-breakpoint-up(md) { ... } @include media-breakpoint-up(lg) { ... } @include media-breakpoint-up(xl) { ... } // Small screens @media only screen {} /* Define mobile styles */ @media only screen and (max-width: 40em) {} /* max-width 640px, mobile-only styles, use when QAing mobile issues */ // Medium screens @media only screen and (min-width: 40.063em) {} /* min-width 641px, medium screens */ @media only screen and (min-width: 40.063em) and (max-width: 64em) {} /* min-width 641px and max-width 1024px, use when QAing tablet-only issues */ // Large screens @media only screen and (min-width: 64.063em) {} /* min-width 1025px, large screens */ @media only screen and (min-width: 64.063em) and (max-width: 90em) {} /* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */ // XLarge screens @media only screen and (min-width: 90.063em) {} /* min-width 1441px, xlarge screens */ @media only screen and (min-width: 90.063em) and (max-width: 120em) {} /* min-width 1441px and max-width 1920px, use when QAing xlarge screen-only issues */ // XXLarge screens @media only screen and (min-width: 120.063em) {} /* min-width 1921px, xxlarge screens */ /* Larger than mobile */ @media (min-width: 400px) {} /* Larger than phablet (also point when grid becomes active) */ @media (min-width: 550px) {} /* Larger than tablet */ @media (min-width: 750px) {} /* Larger than desktop */ @media (min-width: 1000px) {} /* Larger than Desktop HD */ @media (min-width: 1200px) {}

UI and Widgets

  Bootstrap 4.0.0-alpha New Foundation v5.5 Skeleton v2.0.1
Alerts Y Y N
Badges N Y — .label.round N
Breadcrumbs Y Y N
Buttons Y Y Y
Carousel Y Y — Orbit N
Collapse/Accordion Y — Collapse Y — Sections N
Dropdown Y Y N
Forms Y Y Y
Form Validation Y Y — Abide N
Grids Y Y Y
Icons N Y — with download N
Labels Y Y N
Lists Y Y Y
Lists (horizontal) N Y N
Media Object Y — Media Object N N
Modal window Y Y — Reveal N
Navigation Y Y N
Navigation - Sticky Y — .navbar-fixed- Y — Magellan N
Navigation - Off Canvas Y — Collapsible content Y N
Pagination Y Y N
Panels Y — now Cards Y N
Popovers Y Y — Tooltips N
Pricing tables N Y N
Print styles Y Y N
Progress bars Y Y N
Responsive media Y — Media Object Y — Interchange N
Right-to-Left Unknown as of Aug 29, 2015. See also: RTL-Bootstrap Y — Right-to-Left Support N
Scrollspy Y Y — Magellan N
Tables Y Y Y
Tabs Y Y N
Thumbnails Y — now Cards Y N
Tooltips Y Y N
Tour N Y — Joyride N
Typeahead N N N
Typography Y Y Y
Video scaling Y Y N