diff --git a/README.md b/README.md
index c86f4887..5a9cc39d 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,22 @@ A SASS UI library from the Buildit's Gravity design system.
---
+## Table of contents
+* [Using this library](#using-this-library)
+ * [Pre-requisites](#pre-requisites)
+ * [Installation](#installation)
+ * [Build integration](#build-integration)
+ * [Usage](#usage)
+* [Development](#development)
+ * [One-time setup](#one-time-setup)
+ * [Building and running the pattern library locally](#building-and-running-the-pattern-library-locally)
+ * [Building the UI library only](#building-the-ui-library-only)
+ * [Making commits](#making-commits)
+ * [Further information](#further-information)
+* [Deployment](#deployment)
+ * [Travis CI notes](#travis-ci-notes)
+ * [Further information](#further-information-1)
+
## Using this library
@@ -17,23 +33,107 @@ A SASS UI library from the Buildit's Gravity design system.
* [SASS](http://sass-lang.com/) compilation setup in your project
* `npm` (>= v5.8.0)
+
+If you intend to compile Gravity's SASS yourself, we strong recommend:
+
* [Eyeglass](https://github.com/sass-eyeglass/eyeglass) (>= 1.4.1)
+
### Installation
```bash
$ npm install --save-dev @buildit/gravity-ui-sass
```
-### Usage
+### Build integration
+
+Once installed as a dependency, you need to integrate Gravity into your project's build. The [Gravity UI library NPM package](https://www.npmjs.com/package/@buildit/gravity-ui-sass) ships with the following files:
+
+* **Pre-compiled CSS file**
+ * The SASS source from which the CSS was compiled
+* **An SVG file** containing symbol definitions for all Gravity SVG icons
+ * A JSON file containing metadata about the individual SVG icons
+* **Pre-compiled client-side JS file**
+
+You must integrate these into your own project builds as follows:
+
+#### CSS styles
+You need to get Gravity's CSS into your website or app somehow. Possible strategies include:
+
+* Copying Gravity's pre-compiled CSS file to your build output and linking to it from your HTML.
+* Combining Gravity's pre-compiled CSS with your own CSS code.
+ * You can keep them in separate CSS files and link to them individually from your HTML, or you can concatenate the CSS.
+ * Whichever way you choose, **Gravity's CSS must come first** since it includes normalisation rules and sets global default styles.
+* Compiling Gravity's SASS source to CSS yourself.
+ * By itself this is probably pointless (just grab the pre-compiled CSS!), but when adding your own, bespoke styling on top of Gravity this is useful. As with the CSS, you should ensure that Gravity's rules come first in the output. In practice, this amounts to making sure `@import "gravity-ui-sass";` is the first statement in our main SASS file.
+* Embedding Gravity's CSS in a bundle
+ * `import`ing Gravity's CSS or SASS into a JS bundle (with the appropriate loaders setup) is a perfectly valid approach
+ * However, you should **avoid using tools that mangle the CSS class names** (e.g. [CSS Modules](https://github.com/css-modules/css-modules)). Gravity's CSS is designed to be global. Attempting to scope it is not supported and may well break things. If you do this, you're on your own.
+ * That being said, for any _additional_ CSS rules you add _after_ the Gravity ones, you are of course free to use whatever tool or approach you like.
+
+If your chosen approach uses Gravity's pre-compiled CSS, you **must use the [build API](./docs/build-api.md)** to grab the file's path and/or filename.
+
+If your chosen approach uses Gravity's SASS sources, you are encouraged to use [Eyeglass](https://github.com/linkedin/eyeglass) to avoid needing to manually configure `includePaths`. If Eyeglass is not an option, then you **must use the [build API](./docs/build-api.md)** to grab the path and/or filenames for Gravity's SASS files.
+
+
+#### SVG symbols
+Currently, Gravity's SVG symbol definitions need to be inlined into your HTML. Then, whereever you want to _use_ one of the available icons or logos, you should use an inline SVG that references the required symbol's `id` like so:
+
+```html
+
+```
+
+The `height` and `width` properties should be set to ensure that your inline SVG's intrinsic size matches the aspect ratio of the referenced symbol. If you omit them, browsers will [default to a width of `150px` and a height of `100px`](https://www.sitepoint.com/replaced-elements-html-myths-realities/) and the chosen symbol will appear centered within that area.
-In your own SASS you can then include Gravity like so:
+The `aria-lebblledby` should be set to provide a text alternative for the SVG (equivalent to `alt` in `` elements). All of Gravity's SVG symbol definitions contain alternative texts in their `
` elements and these have unique `id`s, so that they can be referenced from elsewhere via `aria-lebblledby`.
-```sass
-@import 'gravity-ui-sass';
+You can look up these values manually in [Gravity's pattern library](http://style.buildit.digital/?p=particles-svg-symbols). For convenience and possible automation, Gravity also ships with a JSON file that contains the symbol and title IDs and the intrinsic width and height values for every available symbol. The format of this file is as follows:
+
+```js
+{
+ "symbols": [
+ {
+ "symbolId": "buildit-logo-hollow",
+ "titleId": "buildit-logo-hollow__title",
+ "width": "700px",
+ "height": "700px"
+ },
+ // ...
+ ]
+}
```
-You can view all the available UI components in the [Buildit Living Style Guide](http://style.buildit.digital/).
+As with the CSS, you **must use the [build API](./docs/build-api.md)** to grab the path and/or filename(s) to Gravity's symbols SVG file and symbol info JSON file.
+
+#### JS
+
+_TBD_ (Currently, Gravity is first and foremost a CSS library. It is however likely that future releases will add some kind of JS for interactive UI components. When that happens, this section will be updated accordingly)
+
+
+### Usage
+Once the Gravity library has been integrated into your build, all you need to do is **produce the appropriate DOM elements**. You can view all the available styles and UI components in the [Buildit Living Pattern Library](http://style.buildit.digital/). Use the "Show pattern info" option to view the Nunjucks template and rendered HTML for the component you are viewing.
+
+
+
+You need to recreate the same HTML DOM structure in your project (via static HTML, dynamically via JS or a combination of both - it doesn't matter), and you will get the same appearance.
+
+This is pretty much the same process as using other UI libraries like [Bootstrap CSS](https://getbootstrap.com/) or [Semantic UI](https://semantic-ui.com/). There is one very important difference though: Those libraries tend to use class names exclusively to bind the CSS styles to your markup, meaning that the actual HTML element used rarely matters. For example, in Bootstrap `