Skip to main content
Figuration v4.4 is now available!
Get Started

An overview of Figuration, including how to use it, basic templates, examples, and more.

Quick Start

Looking to quickly add Figuration to your project? Use the CDN links. Using a package manager or need to download the source files? Head to the downloads page.

Page Contents

Using the CDN

Quickly add Figuration to your project by using the CDN services provided for free by the awesome folks over at jsDelivr. If you are using a package manager, or need to download the source files, more information can be found on the download page.

CSS

Copy-paste the stylesheet <link> into your <head> before all other stylesheets to load our CSS.

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/figuration@3.0.5/dist/css/figuration.min.css" integrity="sha384-sbMy/2TCMTSy8n0Bhf+mWR+qF5SwEri4qcB9oVo/QOVbMvv1GpVGPvJK0wOeAISY" crossorigin="anonymous">

JavaScript

Figuration's widgets, our interactive components, require jQuery, along with our own JavaScript library to function. Add our JavaScript widgets and jQuery, either in the <head>, or near the end of your pages, right before the closing </body> tag. Be sure to place jQuery first, as our code depends on it.

Our widgets work with either the full version of jQuery, or the jQuery's slim build.

<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/figuration@3.0.5/dist/js/figuration.min.js" integrity="sha384-seOgUqc1HwlrtouWwDFAcMDvL0SwHbMCgK2s91pPLHXSv33mmFFfV6rq1HRyWs90" crossorigin="anonymous"></script>

Basic Template

Be sure to have your pages set up with the latest design and development standards. That means using the HTML5 doctype, and including the viewport meta tag to allow responsive behaviors.

Essentially something like this:

<!DOCTYPE html>
<html lang="en-us">
<head>
<title>Hello, world!</title>

<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<!-- Figuration CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/figuration@3.0.5/dist/css/figuration.min.css" integrity="sha384-sbMy/2TCMTSy8n0Bhf+mWR+qF5SwEri4qcB9oVo/QOVbMvv1GpVGPvJK0wOeAISY" crossorigin="anonymous">

<!-- jQuery and Figuration JS -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/figuration@3.0.5/dist/js/figuration.min.js" integrity="sha384-seOgUqc1HwlrtouWwDFAcMDvL0SwHbMCgK2s91pPLHXSv33mmFFfV6rq1HRyWs90" crossorigin="anonymous"></script>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>

That should be all you need for overall page requirements. Visit the Layout docs to begin building out your content and components.

Right-to-left Support

Working with a language that reads from right to left? Use the rtl version of the Figuration CSS. The markup and classes are the same between the ltr and rtl versions of Figuration.

Pro Tip! We have included a way to preview layout, component, and widget behavior with the documentation. Use the settings menu in the top navbar to change between text directions.

The steps needed to switch from ltr to rtl mode are:

  • Add the dir="rtl" attribute to the <html> tag.

  • Update the lang attribute on the <html> tag to match the language being used.

    <!-- This example is for a right-to-left Arabic layout -->
    <html lang="ar" dir="rtl">
  • Load the rtl version of the Figuration CSS. Load this in place of the default Figuration CSS.

    <!-- Figuration RTL CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/figuration@3.0.5/dist/css/figuration-rtl.min.css" integrity="sha384-1byAtnG9FnOj0w2Vg1AmnuZ2rajVRyAr4j4BUAVZNdaCgCpfKAcpBc3G7rcw0Y01" crossorigin="anonymous">

When complete, the basic template for a right-to-left markup should look like the following example.

<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<title>Hello, world!</title>

<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<!-- Figuration RTL CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/figuration@3.0.5/dist/css/figuration-rtl.min.css" integrity="sha384-1byAtnG9FnOj0w2Vg1AmnuZ2rajVRyAr4j4BUAVZNdaCgCpfKAcpBc3G7rcw0Y01" crossorigin="anonymous">

<!-- jQuery and Figuration JS -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/figuration@3.0.5/dist/js/figuration.min.js" integrity="sha384-seOgUqc1HwlrtouWwDFAcMDvL0SwHbMCgK2s91pPLHXSv33mmFFfV6rq1HRyWs90" crossorigin="anonymous"></script>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>

Important Markup

Figuration depends a handful of important global styles and settings that you'll need to be aware of when using it, all of which are almost exclusively geared towards the normalization of cross browser styles.

HTML5 Doctype

Figuration requires the use of the HTML5 doctype. Without it, you'll see some incomplete styling.

<!DOCTYPE html>
<html lang="en-us">
...
</html>

Responsive Meta Tag

Figuration is developed mobile first, a strategy in which we optimize code for mobile devices first and then scale up components as necessary using CSS media queries. To ensure proper rendering and touch zooming for all devices, add the responsive viewport meta tag to your <head>.

<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

You can see an example of this in action in the basic template.

Box-sizing

For more straightforward sizing in CSS, we switch the global box-sizing value from content-box to border-box. This ensures padding does not affect the final computed width of an element, but it can cause problems with some third party software like Google Maps and Google Custom Search Engine.

On the rare occasion you need to override it, use something like the following:

.selector-for-some-widget {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}

With the above snippet, nested elements—including generated content via ::before and ::after—will all inherit the specified box-sizing for that .selector-for-some-widget.

Learn more about box model and sizing at CSS Tricks.

Reboot

For improved cross-browser rendering, we use Bootstrap's Reboot to correct inconsistencies across browsers and devices while providing slightly more opinionated resets to common HTML elements.

MutationObserver

This is not shown in the Basic Template shown above, but if you require supporting Internet Explorer 10, you may need to add a MutationObserver polyfill to use our JavaScript Widgets to their fullest potential. We have done some brief testing with the webcomponents.org MutationObserver polyfill have found it to be work reasonably. You can load it conditionally for Internet Explorer 10 as shown in the following example. This snippet needs to be placed before loading the Figuration JavaScript.

<!--[if lt IE 10]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/0.7.24/MutationObserver.min.js" integrity="sha384-8HHYYRe45k4Xq40fi/cZaaby4FJgnOOVmnRzX3OWtwpfiUPfx7tnK2QkDPuIRGm0" crossorigin="anonymous"></script>
<![endif]-->

Community

We are just getting started so there is not much of a community yet. Please spread the word and help us expand.