Responsive CSS Framework Comparison

Updated December 7, 2015 with Foundation 6

Overview

  Foundation 6 New Foundation 5.5 Foundation 4 Foundation 3
Summary Fountation 6 Updates:
  • 50% code reduction
  • Components built with more attention to Web Accessibility
  • Fewer default styles to override
  • Customizable Sass Grid
    • Flexbox grid toggling
    • Custom breakpoints
  • ZURB prototyping tools
  • Motion UI
  • More flexible navigation patterns
  • 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. Best in class grids across all viewports.
  • UI tools: Powerful and modular set of tools. More style agnostic than Bootstrap.
  • History: Mobile-first update to the boilerplate developed by ZURB for client projects
  • Grids: Fluid. More robust grid tools than Bootstrap and Skeleton.
  • UI tools: Good for rapid prototyping, but not as expansive as Bootstrap
  • History: Built by ZURB as boilerplate for client projects
Version 6 5.5.0 4.3.2 3.2.5
Last Released November 19, 2015 December 12, 2014 September 23, 2013 January 26, 2013
Website foundation.zurb.com/sites foundation.zurb.com
/sites/docs/v/5.5.3
foundation.zurb.com
/sites/docs/v/4.3.2
foundation.zurb.com
/sites/docs/v/3.2.5
GitHub github.com/zurb/
foundation-sites
github.com/zurb/
foundation-sites/
releases/tag/v5.5.3
github.com/zurb/
foundation-sites/
releases/tag/v4.3.2
github.com/zurb/
foundation-sites/
releases/tag/v3.2.5
Creator ZURB ZURB ZURB ZURB
License MIT License MIT License MIT License MIT License
Browser Support
  • Last Two Versions of:
    • Chrome
    • Firefox
    • Safari
    • Opera
    • Mobile Safari
    • IE Mobile
  • IE 9+
  • Android Browser 2.3+
Desktop: Chrome, Firefox, Safari, IE9+
Mobile: iOS (iPhone), iOS (iPad), Android 2, 4 (Phone), Android 2, 4 (Tablet), Windows Phone 7+, Surface
Desktop: Chrome, Firefox, Safari, IE9+
Mobile: iOS (iPhone), iOS (iPad), Android 2, 4 (Phone), Android 2, 4 (Tablet), Windows Phone 7+, Surface
Desktop: Chrome, Firefox, Safari, IE8+
Mobile: iOS (iPhone), iOS (iPad), Android 2 (Phone), Android 2 (Tablet), Windows Phone 7
Vermilion Commentary Foundation 6 is a fairly major update which includes more grid flexibility, custom breakpoints, optional flexbox, and more.

Like Bootstrap 4, Flexbox is now toggleable via Sass in Foundation 6.

The Sass/CSS has been reworked and consolidated, and there are fewer default styles to override on common elements.

Sass/CSS and JavaScript components have been refactored to allow a 50% overall file size reduction and more modularity.

The code for components is by default more accessible than previous versions in terms of keyboard and screenreader support.

Responsive menus can swap between dropdown, drilldown, and accordion navigation patterns per breakpoint.

The documentation now includes a nifty search feature for quick component/mixin/function searching.

There is an hour and 20min long Foundation 6 screencast that is well worth watching and learning from.
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.
Foundation 4 was rewritten as a mobile-first implementation, and has a slightly different grid syntax.

This version provides access to both a small and large grid, so your HTML syntax may become more verbose, but also more flexible.

IE8 is no longer supported and the typography has changed from px- to em-based.

A detailed migration guide is available.
Foundation 3 is not quite a drop-in upgrade for v2.

Important changes include removing .container elements, adding modular scale typography, and dropping IE7 support (v3 uses box-sizing: border-box).

Visibility classes moved from device-based to feature-based names (.show-on-phones is gone, but .show-on-touch was added).

CSS

  Foundation 6 New Foundation 5.5 Foundation 4 Foundation 3
Reset normalize.css normalize.css normalize.css normalize.css
LESS N N N N
Sass/Scss Y Y Y Y

Grids and Responsiveness

  Foundation 6 New Foundation 5.5 Foundation 4 Foundation 3
Base width Fluid (max-width 75rem default) Fluid (max-width 62.5em default) Fluid (max-width 62.5em default) Fluid (max-width 100%)
Columns 1-infinity (12 default) 1-infinity (12 default) 1-16 with customizer (12 default) 12-24 with customizer
Single column class syntax .small-1.columns .medium-1.columns .large-1.columns .[custom]-1.columns .small-1.columns .medium-1.columns .large-1.columns .small-1.columns .medium-1.columns .large-1.columns .one.column
Two column class syntax .small-2.columns .medium-2.columns .large-2.columns .[custom]-2.columns .small-2.columns .medium-2.columns .large-2.columns .small-2.columns .medium-2.columns .large-2.columns .two.columns
Container syntax <div class="row"> <div class="row"> <div class="row"> <div class="container">
Row syntax <div class="row"> <div class="small-8 medium-6 large-4 [custom]-2 columns">...</div> <div class="small-4 medium-6 large-8 [custom]-10 columns">...</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="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 <div class="row large-collapse medium-uncollapse [custom]-collapse"> <div class="row collapse"> <div class="row collapse"> <div class="row collapse">
Nested column syntax <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> <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> <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> <div class="row"> <div class="six columns"> <div class="row"> <!-- nested columns add up to 12 --> <div class="six columns">...</div> <div class="six columns">...</div> </div> </div> </div>
Offset column syntax <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="large-1 columns">1</div> <div class="large-8 large-offset-3 columns">8, offset 3</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 <div class="row"> <div class="small-3 small-centered columns">3 centered</div> </div> <div class="row"> <div class="small-3 small-centered columns">3 centered</div> </div> <div class="row"> <div class="small-3 small-centered columns">3 centered</div> </div> <div class="row"> <div class="three columns centered">...</div> </div>
Ordering syntax <div class="row"> <div class="small-2 push-10 columns">first in small/last in large</div> <div class="small-10 pull-2 columns">first in large/last in small</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> <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> <div class="row"> <div class="two columns push-ten">first in mobile/last in desktop</div> <div class="ten columns pull-two">first in desktop/last in mobile</div> </div>
Four column mobile syntax <!-- small- or [custom]- column prefixes: --> <div class="row"> <div class="small-3 [custom]-3 columns">...</div> <div class="small-9 [custom]-9 columns">...</div> </div> <!-- Now done through small- column prefixes: --> <div class="row"> <div class="small-3 columns">...</div> <div class="small-9 columns">...</div> </div> <!-- Now done through small- column prefixes: --> <div class="row"> <div class="small-3 columns">...</div> <div class="small-9 columns">...</div> </div> <div class="row display"> <div class="three mobile-one columns">...</div> <div class="nine mobile-three columns">...</div> </div>
Block grids syntax <!-- Using multiple block grids with various breakpoints --> <div class="row small-up-1 medium-up-2 large-up-4 [custom]-up-6"> <div class="column">...</div> <div class="column">...</div> <div class="column">...</div> <div class="column">...</div> <div class="column">...</div> <div class="column">...</div> </div> <!-- 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> <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> <li>...</li> <li>...</li> </ul> <!-- 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> <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> <li>...</li> <li>...</li> </ul> <ul class="block-grid two-up"> <li>Two-up element</li> <li>Two-up element</li> <li>Two-up element</li> <li>Two-up element</li> <li>Two-up element</li> </ul>
Visibility class syntax Screen Size: .show-for-medium .show-for-[custom] .show-for-medium-only .show-for-[custom]-only .hide-for-medium .hide-for-[custom] .hide-for-medium-only .hide-for-[custom]-only Generic (CAUTION: hides from screenreaders): .hide (display: none;) .invisible (visibility: hidden;) Orientation: .show-for-landscape .show-for-portrait .hide-for-landscape .hide-for-portrait Accessibility: .show-for-sr (hides visually only) .show-on-focus (for skip-links and such) 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 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 Viewport-based: .show-for-xlarge .show-for-large .show-for-large-up .show-for-medium .show-for-medium-down .show-for-small .hide-for-xlarge .hide-for-large .hide-for-large-up .hide-for-medium .hide-for-medium-down .hide-for-small Landscape-based: .show-for-landscape .show-for-portrait Touch-based: .show-for-touch .hide-for-touch Print-based: .print-only .hide-on-print
Media queries syntax // Small None // Medium @media screen and (min-width: 40em) // Large @media screen and (min-width: 64em) // [Custom] @media screen and (min-width: [custom]em) // CUSTOM BREAKPOINTS (Sass) $breakpoints: ( //all px values are converted to ems small: 0px, medium: 640px, large: 1024px, xlarge: 1200px, xxlarge: 1440px, [custom]: ...px, ); // 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 */ /* Styles for screens that are at least 768px; */ @media only screen and (min-width: 48em) {} /* Medium Displays: 768px - 1279px */ @media only screen and (min-width: 48em) {} /* Large Displays: 1280px - 1440px */ @media only screen and (min-width: 80em) {} /* X-Large Displays: 1400px and up */ @media only screen and (min-width: 90em) {} /* Orientation: landscape */ @media screen and (orientation: landscape) {} /* Orientation: portrait */ @media screen and (orientation: portrait) {} /* Foundation Block Grids for above small breakpoint */ @media only screen and (min-width: 48em) {} /* Top bar */ @media only screen and (min-width: 58.75em) {} /* Very large display targeting */ @media only screen and (min-width: 1441px) {} /* Medium display targeting */ @media only screen and (max-width: 1279px) and (min-width: 768px) {} /* Small display targeting */ @media only screen and (max-width: 767px) {} /* Small display targeting */ @media only screen and (max-width: 767px) {} /* Landscape orientation targeting */ @media screen and (orientation: landscape) {} /* Portrait orientation targeting */ @media screen and (orientation: portrait) {} /* Mobile styles */ @media only screen and (max-device-width: 1280px) {} @media only screen and (max-width: 1279px) and (min-width: 768px) {}

UI and Widgets

  Foundation 6 New Foundation 5.5 Foundation 4 Foundation 3
Alerts Y — Callout Y Y Y
Badges Y — .badge Y — .label.round Y — .label.round Y
Breadcrumbs Y Y Y Y
Buttons Y Y Y Y
Carousel Y — Orbit is back Y — Orbit [deprecated] Y — Orbit Y — Orbit
Collapse/Accordion Y — Accordion Y — Sections Y — Sections Y
Dropdown Y — Dropdown, Drilldown, & Accordion menus Y Y Y
Forms Y Y Y Y
Form Validation Y — Abide Y — Abide Y — Abide N
Grids Y Y Y Y
Icons Y — with download Y — with download Y — with download Y — with download
Labels Y Y Y Y
Lists Y — Menu Y Y Y
Lists (horizontal) Y — horizontal is default in Menu Y Y Y
Media Object Y — Media Object N N N
Modals Y — Reveal Y — Reveal Y — Reveal Y — Reveal
Navigation Y — Menu Y Y Y
Navigation - Sticky Y — Magellan Y — Magellan Y — Magellan Y — Magellan
Navigation - Off Canvas Y Y N N
Pagination Y Y Y Y
Panels Y — Callout Y Y Y
Popovers Y — Tooltips Y — Tooltips Y — Tooltips N
Print styles Y Y Y Y
Progress bars Y Y Y Y
Responsive media Y — Interchange Y — Interchange Y — Interchange N
Right-to-Left Y — Right-to-Left Support Y Y N
Scrollspy Y — Magellan Y — Magellan Y — Magellan Y — Magellan
Tables Y Y Y Y
Tabs Y Y Y Y
Thumbnails Y Y Y Y
Tooltips Y Y Y Y
Tour N - coming back in v6.1 Y — Joyride Y — Joyride Y — Joyride
Typeahead N N N Y
Typography Y Y Y Y
Video scaling Y Y Y Y