Foundation (framework)

Foundation is a free responsive front-end framework, providing a responsive grid and HTML and CSS UI components, templates, and code snippets, including typography, forms, buttons, navigation and other interface elements, as well as optional functionality provided by JavaScript extensions. Foundation is an open source project, and was formerly maintained by ZURB. Since 2019, Foundation has been maintained by volunteers.

Origin
Foundation emerged as a ZURB project to develop front-end code more efficiently. In October 2011, ZURB released Foundation 2.0 as open source under the MIT License. ZURB released Foundation 3.0 in June 2012, 4.0 in February 2013, 5.0 in November 2013, and 6.0 in November 2015. The team started working on the next version of Foundation for Sites 7 which most likely will drop support for older browsers and implement newer technologies like flexbox or maybe calculated grid system.

Foundation for Emails, formerly known as ZURB Ink, was released in September 2013.

Foundation for Apps was released in December 2014.

Features
Foundation was designed for and tested on numerous browsers and devices. It is a responsive framework built with Sass/SCSS. The framework includes most common patterns needed to prototype a responsive site.

Since version 2.0 it also supports responsive design. This means the graphic design of web pages adjusts dynamically, taking into account the characteristics of the device used (PC, tablet, mobile phone). Version 4.0 has taken a mobile-first approach, designing and developing for mobile devices first, and enhancing the web pages and applications for larger screens.

Foundation is open source and available on GitHub. Developers are encouraged to participate in the project and make their own contributions to the platform.

Structure and function
Foundation is modular and consists essentially of a series of Sass stylesheets that implement the various components of the toolkit. Component stylesheets can be included via Sass or by customizing the initial Foundation download. Developers can adapt the Foundation file itself, selecting the components they wish to use in their project.

Grid system and responsive design
Foundation comes standard with a 940 pixel wide, flexible Grid (graphic design) layout. The toolkit is fully responsive to make use of different resolutions and types of devices: mobile phones, portrait and landscape format, tablets and PCs with a low and high resolution (widescreen). This adjusts the width of the columns automatically.

Understanding CSS stylesheet
Foundation provides a set of stylesheets that provide basic style definitions for all key HTML components. These provide a browser and system-wide uniform, modern appearance for formatting text, tables and form elements.

Reusable components
In addition to the regular HTML elements, Foundation contains other commonly used interface elements. These include buttons with advanced features (for example, grouping of buttons or buttons with drop-down option, make and navigation lists, horizontal and vertical tabs, navigation, breadcrumb navigation, pagination, etc.), labels, advanced typographic capabilities, and formatting for messages such as warnings.

JavaScript components and plug-ins
The JavaScript components of Foundation 4 were moved from jQuery JavaScript library to Zepto, on a presumption that the physically smaller, but API-compatible alternative to JQuery would prove faster for the user. However, Foundation 5 moved back to the newer release JQuery-2. "jQuery 2.x has the same API as jQuery 1.x, but does not support Internet Explorer 6, 7, or 8." the official ZURB blog explains, and the unsigned writer claims that the switch back was due to issues of compatibility with customized efforts; and that performance was found to be not as good, on use testing with the newer jQuery-2.

Use
There are three levels of integration for Foundation: CSS, SASS, and Ruby on Rails with the Foundation Rails Gem.

CSS
To use Foundation CSS, default or custom CSS packages can be downloaded from the download page and installed into the appropriate web server folders. Foundation is then integrated into HTML page markup.

Sass
The Foundation Sass install uses Ruby, Node.js, and Git to install Foundation sources. Foundation then provides a command line interface to modify and compile source to CSS for use in HTML page markup.

Foundation Rails gem
The Foundation Rails gem can be installed by adding "gem 'foundation-rails'" to the Rails Application Gemfile.