I get a lot of people asking me what framework I use and what I would recommend. I do not always give a definitive answer, I generally ask what the project is and what they require it to do and advise from there or explain a few frameworks and let them decide or even tell them just to do it themselves to avoid any bloat. So I thought it was worthwhile sharing my thoughts, I aim to explain what frameworks are and what they are used for, alongside a selection of the best that can be downloaded for free. This should help web designers and developers who are starting out to discover resources and possibilities.
What is a framework?
A framework is a standardised set of concepts, practices and criteria for dealing with a common type of problem, which can be used as a reference to help us approach and resolve new problems of a similar nature. A well-built CSS framework or boilerplate can streamline the design process, save huge chunks of development time and ensure your website scales properly on all devices.
To give a more straightforward definition, a framework is defined as a package made up of a structure of files and folders of standardised code (HTML, CSS, JS etc.) which can be used to support the development of websites, as a basis to start building a site.
The aim of frameworks is to provide a common structure so that developers don’t have to redo it from scratch and can reuse the code provided. In this way, most of the time, frameworks allow us to cut out much of the work and save a lot of time.
It’s important to consider the following when choosing your framework, or if you even need one: whether you require a grid, and if so, will it be fluid or fixed? What level of customization do you require? How much do you care about semantics? What level of support and documentation is available? What is the learning curve?
Front-end Frameworks (or CSS Frameworks)
The usual components are:
- CSS source code to create a grid: this allows the developer to position the different elements that make up the site design in a simple and versatile fashion.
- Typography style definitions for HTML elements.
- Solutions for cases of browser incompatibility so the site displays correctly in all browsers.
- Creation of standard CSS classes which can be used to style advanced components of the user interface.
These frameworks help facilitate the development of websites that can adapt to various resolutions for different mobile and desktop devices,. That is, they solved the common problem of making a responsive site. These frameworks offer a responsive solution from the point of installation.
Okay I get it, now show me some!
Seeing as you asked so nicely.
Catering for four layouts (default, tablet, mobile and wide mobile), with three sets of typography presets, Less is a responsive CSS grid system for designing adaptive websites. It takes a graceful degradation approach to responsive design — it serves a default layout of 992 px, and CSS3 media queries serve several child layouts: 768, 480 and 320px. Old desktop and mobile browsers only use the default layout, which, while not ideal for accessibility, means you won’t have to IE-proof any of the child layouts, and can freely use modern CSS. Both desktop apps Less.app and CodeKit make it dead simple to use Less by automatically compiling .less files into standard CSS.
Of interest is Frameless, also built by Joni Korpi, which uses a fixed-width grid rather than a fluid grid. It is the “spiritual successor” to the Less Framework. It’s a much simpler, more flexible idea that can easily integrate into your workflow.
Skeleton is a small boilerplate for responsive, mobile-friendly development. It is built on a lightweight 960 grid, which elegantly scales down to downsized windows, tablets and mobile phones. It’s a tool for rapid development, built with CSS best practices, a well-structured grid, an organized file structure and much more. As a development kit, it stays style-agnostic and supplies only basic styles as a foundation, but is ready to adopt whatever design or style you choose. Its grid system is a variation of the familiar 960 grid, with simple syntax as an effective cross browser. The many media queries are almost exclusively targeted at max and min widths, rather than device sizes and orientations, meaning it’s future-friendly.
The typography is designed to create a strong hierarchy of basic styles – the primary font is Helvetica Neue. The font stack can be easily changed. Older browsers are served the standard 960 grid, so a polyfill like Respond.js would be required
Foundation, from ZURB, is an advanced, lightweight, responsive, front-end framework. Based on a flexible, 12-column grid that can scale to an arbitrary size (defined by the max width of the row) that’s easily nested. This means you can build complicated layouts without creating a lot of custom elements.
Foundation uses “box-sizing: border-box,” so that borders and padding do not affect the overall width of the columns, making the math dead simple. With the mobile-first approach, the content is automatically stacked by default. There is also access to a separate small grid up to the 768px breakpoint.
The grid can be infinitely nested, with the offsets (up to 11) allowing for additional space between columns and rows. Foundation also includes dozens of elements and styles to speed up the prototyping and build phase, while ensuring the entire framework works on any and all devices.
Responsive Grid System
While not strictly a framework, Responsive Grid System offers a quick, easy and flexible way to create a responsive website. You can specify the number of columns (up to 12), which are fluid, with no need to hack offsets or margin-less final columns. Mobile versions of the grid are already baked in, and it plugs straight into your existing HTML and CSS. There’s no need to do any complicated maths — Responsive Grid System uses percentages for the column widths and gutters.
It’s simple to set up: Just choose the number of columns you want and paste them into your master CSS or reference them in the document “head.” They include media queries to stack them on smaller screens.
Built with the power of Compass and SASS, Gumby is a responsive CSS framework. Its foundation is a hybrid grid that allows you to create layouts by defining what grid to use, wherever you want on the page. The built-in UI kit embraces the latest design trends and allows you to choose and mix flat design with more graduated design styles. Use the impressive, integrated Entypo Icons in any web project — they are resolution-independent.
From buttons to responsive images to skip links and intrinsic ratio video embeds, it’s a fully featured, robust framework with a great toolset.
Base is a super simple responsive framework built to function on mobile devices, tablets, netbooks and desktop computers. It also works with screen readers in mind and has nice no-js fallbacks. It’s developed on LESS, a powerful CSS pre-processor that helps you write cleaner, more organized and easily maintained CSS. There are basic styles for headings, tables, blockquotes, forms and more. It works best in modern browsers and IE7 and up.
Semantic Grid System
Built by Tyler Tate, who authored the 1KB CSS Grid (no longer available), the Semantic Grid System can either be fluid or fixed width. It allows you to choose the number of columns, column widths and gutter widths to modify directly in the style sheet. And it’s completely semantic and responsive, meaning the layout adapts to the size of the user’s screen or device, using media queries. The separation of markup and presentation, and the convenience of the CSS grid are two important benefits of the Semantic Grid System.
The Semantic Grid avoids presentational CSS classes in the HTML markup itself, instead using LESS (but SCSS and Stylus can also help) to control the layout in the stylesheet. All modern browsers are supported, as well as IE6 and up.
Responsive Grid System
A simple CSS framework for fast, intuitive website development, the Responsive Grid System is built using the mobile first approach, and is less than 1KB compressed. It’s available with 12, 16 and 24 columns, with media queries for all standard devices. And it has an optional reset, a “clearfix” for clearing floats, and “box-sizing: border-box” for adding additional padding to elements.
The styles for the media queries, grid and reset are all smartly separated into individual CSS files, along with IE-specific styles. You only use what is needed, keeping stylesheet bloat to a minimum.
Compass is an open-source CSS Authoring Framework that uses Sass, an extension of CSS3, to adds rules, variables, mixins and more. It generates well formatted CSS and makes your stylesheets easier to organize and maintain, and it’s full of reusable patterns. It’s device-agnostic and provides common code that would otherwise be duplicated across other frameworks and extensions. The CSS3 module provides cross-browser mixins for CSS properties introduced in CSS3, while the typography module can aid in creating beautiful typographic rhythms. As Compass is packaged with so many common design patterns, it can really speed up development time.
Also of interest is Susy, which is a responsive grid framework for Compass. It lets you establish a grid system, including semantic-friendly breakpoints.
A responsive CSS grid system is 1140px wide; however, it’s fluid, so it responds to the width of most browsers. It’s a “remix” of both the cssgrid.net and 960.gs projects, with built-in debugging CSS to show the structure of any pages being built. It also features sub-columns for added layout options and vertical spacing for CSS classes.
Columnal comes packaged with a PDF of the grid system for sketching and planning, along with wireframe templates for quick development. The responsive layout is supported through the use of Media Queries and by most modern browsers, with IE 6 and 7 degrading to either a 12-column 984px grid or a 960px-wide version.
Images and video shrink to fit, with no need to define the width or height inline. A demo page shows the responsive 12-column grid in action.
Fluid Baseline Grid
The Fluid Baseline Grid System is an HTML5 and CSS3 development kit that provides a solid foundation for quickly designing websites. Built with typographic standards in mind, it combines a fluid column layout and a baseline grid, with a mobile first responsive design approach to deliver an independent, device agnostic framework. Defaulted to a minimal three-column folding grid, which is divided into equal portions, Fluid encourages you to use this as a starting point and change the columns as your project requires. CSS styles are scaled up from the minimum instead of scaled down from the maximum, through the use of Media Queries.
The typography has been well thought-out, designed to establish a hierarchy that improves readability and creates harmony within the text and overall layout. The code is simple, lightweight and unobtrusive, easily modified for each project.
Profound is a responsive grid system for fixed and fluid layouts. It is built in SASS, giving you complete flexibility and full control. You can make the grid fluid and add per-media layouts as needed, as well as change the column and gutter widths or add and remove columns as needed. The grid keeps your markup semantic and, unlike other grid systems, the fluid layouts will look exactly the same in every browser, with negative margins to calculate columns.
The variety of layouts that can be created using Profound is immense, from fixed width to nested grids, through to responsive fluid and multiple grids within the same page. Flexibility is a standout feature.
Built by the team at Design by Front (recently acquired by Monotype), the Goldilocks approach to responsive web design is a boilerplate, with the CSS and HTML based on current best practices. It aims to take the device out of the equation, allowing you to build layouts that work across all contexts, even ones that haven’t been invented yet. Starting with the most common form of content, the paragraph element, and build up to a full layout, using a combination of Ems, Max-Width, Media Queries and Pattern Translations. Consider just three states (multi-column, narrow column and single column) that allow your designs to be resolution-independent.
It also includes good typographic defaults as a base, including print contexts. Overall, the Goldilocks approach is a boilerplate worth consideration.
Gridless is a HTML5 and CSS3 boilerplate for creating responsive, mobile first, cross-browser websites with ease. It comes packed with CSS normalization, beautiful typography, a well-organized folder structure, IE bug fixes and much more. It encourages progressive enhancement and is meant as a starting point, which should be edited, tweaked and overwritten to suit each project’s design requirements. Gridless adapts itself to a device’s width, meaning it’ll work anywhere: old feature phones, newer smartphones, tablets, notebooks and bigger desktops. As IE6/7/8 don’t support media queries, it uses Respond.js as a polyfill.
It’s an extremely simple and straightforward boilerplate, which features optimal caching and safe CSS hacks, instead of conditional classnames, and will work in most modern browsers.
InuitCSS is an object-oriented, powerful, scalable framework. It’s SASS-based and is full of objects and abstractions. It provides little to no design, which means no undoing things, no deleting CSS and no adhering to other people’s design decisions. It is built on a BEM-style naming convention, and is ideally suited to designers who want to focus on the creative and not code, and developers who understand the need for abstraction and an OO approach. InuitCSS gives you design patterns, not design decisions, and features nestable, fluid grids, a double-stranded heading hierarchy, sprites, buttons and a lot more.
InuitCSS is a a modern framework for modern browsers and takes advantage of normalize.css. It is intended for IE8 and above only.
Blueprint is a CSS framework which provides a solid foundation on which to build your project, with an easy-to-use grid, sensible typography, useful plugins and even a stylesheet for printing. A CSS reset eliminates any discrepancies across browsers, and the solid grid can support even the most complex layouts. Blueprint is set on a typographic baseline with powerful scripts for customization, and also includes form and print styles, buttons, tabs, sprites and templates for every step in your workflow.
Blueprint is no longer actively developed; however, with some carefully considered Media Queries, Blueprint layouts could adapt to mobile and tablet devices.
Released in 2005 and continuously developed since then, YAML (Yet Another Multicolumn Layout) is a responsive, modular CSS Framework for creating flexible, accessible websites. It’s built on a flexible grid system, with optimized typography for all standard elements, to allow for rapid prototyping. It’s well prepared for both HTML5 and CSS3 and has a small footprint of only 4.6KB. YAML allows for independent control of grid-column widths and gutters, and the flexibility to use responsive, fixed-width and nested grids, with advanced grid features and configurations. The provision of a complete set of matched building blocks to create complex websites is extensive, from navigation to forms, typography and other add-ons, which all work seamlessly together.
YAML is a stable, versatile layout framework that is regularly updated, with integration resources, tutorials and templates available for various content management systems.
Gridlock is a responsive CSS grid system that utilizes screen size-specific class names and column counts, giving designers and developers the foundation for crafting an experience that better matches the target device. Three distinct grid sizes that correspond to specific screen sizes are used: desktop, tablet and mobile. The desktop features a full 12-column grid; the tablet grid snaps down to six columns; and mobile contains only three columns. The syntax is simple and easy to read, and can be adjusted to fit the target device’s screen size by applying the appropriate class names. Gridlock also includes some faction helper classes.
Particularly useful is the Gridlock bookmarklet, which adds a simple overlay to help debug alignment issues. You can also trigger the bookmarklet to load automatically on each page of a site.
View the demo for a review of Gridlock’s functionality.
960 Grid System
Released in 2008, the 960.gs quickly became a popular choice, as it’s ideally suited to rapid prototyping. All of your site’s elements are within a 960px-wide container, which can be divided into 12, 16 or 24 equally sized columns. A 10px margin is placed at the right and left of the main content column, with all the numbers based on the golden ratio, meaning no funky spacing issues or decimal points to contend with. Rearrange elements independent of the order in which they appear in the markup by using “push” and “pull” CSS classes. This allows you to keep more pertinent info higher in the HTML.
Included in the download are printable sketch sheets, design layouts and templates for several major applications, such as Adobe Photoshop, GIMP and QuarkXPress.
You Want Moorrrreeee!!!
Of course there are many many other frameworks out there and you might want to take a look at them. So just to be nice here are a variety of other CSS systems and frameworks you may also be interested in:
2. 34 Grid
4. Less+ Framework
5. BluCSS Framework
7. Titan Framework
8. Golden Grid System
9. Zen Grids
10. Rock Hammer
11. Kube CSS Framework
12. HTML5 Mobile Boilerplate
13. Proportional Grids
14. Stack Layout
15. Simple Grid
17. Groundwork CSS
20. CSS Horus
22. Toast CSS Framework