diff --git a/bower.json b/bower.json
index 78a9b3a14..d60d1e3f0 100644
--- a/bower.json
+++ b/bower.json
@@ -1,7 +1,7 @@
{
"name": "tachyons",
"description": "Functional CSS for humans",
- "main": "css/tachyons.min.css",
+ "main": "css/tachyons.css",
"authors": [
"mrmrs"
],
diff --git a/build/index.js b/build/index.js
new file mode 100644
index 000000000..8a5086761
--- /dev/null
+++ b/build/index.js
@@ -0,0 +1,31 @@
+const fs = require('fs')
+const globby = require('globby')
+const stripComments = require('strip-css-comments')
+
+const pattern = [
+ 'src/**/*.css',
+ '!src/tachyons.css',
+ '!src/_debug-children.css',
+ '!src/_debug-grid.css',
+ '!src/_nested.css',
+ '!src/_normalize.css',
+ '!src/_media-queries.css',
+ '!src/_module-template.css'
+]
+
+const mq = stripComments(fs.readFileSync('src/_media-queries.css', 'utf8'))
+
+globby(pattern)
+ .then(paths => paths.forEach(processPackage))
+ .catch(console.error)
+
+const processPackage = path => {
+ const name = path.replace('src/_', '').replace('.css', '')
+ let css = fs.readFileSync(path, 'utf8')
+
+ if (/@media/.test(css)) {
+ css = `${mq}${css}`
+ }
+
+ fs.writeFileSync(`packages/tachyons-${name}/src/tachyons-${name}.css`, css)
+}
diff --git a/changelog.md b/changelog.md
new file mode 100644
index 000000000..797a31225
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,189 @@
+# Tachyons Changelog
+
+### 5.0.0
+
+First and foremost, we've introduced an official changelog for v5 of Tachyons.
+We want to ensure that anyone can quickly check out what's changed for each version.
+Especially because, as we all know, semver for css is nebulous at best.
+
+##### Breaking changes
+
+- Remove `ns` mq
+
+TODO: Thorough description as to how this change will affect users.
+
+##### Other changes
+
+The majority of changes for v5 are changing how things work behind the scenes.
+We've sought out automating everything that can be possibly automated.
+With a project as ambitious as Tachyons is, having to manually update, version and deploy became quite a chore.
+
+Now its `npm run` :tada:.
+
+- Monorepo build process
+- `npm run pkg` - to update css for all modules
+- Automatic git updates to modules via CI
+- Tests for all packages, including linting and rendering
+- All the docs
+- Better build scripts
+
+### 4.2.1
+
+#### Comments: There is no substitute
+
+
+
+This patch fixes a small bug in class naming and also adds comments to the css partials in the src/ directory.
+
+After making another pass through the source code I was horrified to find how many glaring inconsistencies there were in the code comments for each module. Especially regarding naming systems. It never ceases to amaze me how bad past me is at writing code.
+
+In an effort to not have poorly documented code I woke up this morning, made some coffee, and tried to make the comments more clear and more consistent. They aren't perfect yet. But
+ they are less glaringly awful. I hope.
+
+### Bug fix
+
+
+There were two different classes called striped--moon-gray which is very silly because they were set to different values. So that has been fixed. No more duplicative classes and the class striped--light-gray has been added in as originally intended.
+
+### 4.3 news
+Next up I'll be adding some more table striping utilities along with some additional aspect ratios used for fluid embeds.
+
+Cheers.
+
+### 4.2.0
+
+#### High Times
+
+
+
+Without a doubt this is my favorite release ever. We fixed a couple of bugs and also
+added some new goodness.
+
+## Additions
+
+#####_debug-grid.css
+Added some classes to help enable lining things up. If you place the ```.grid-debug``` class on an element you'll get an 8px grid on the background with a slightly transparent blue line. To get a 16px grid use the class ```.grid-debug-16```
+
+##### 8px grid
+
+
+##### 16px grid
+
+
+#### vh units
+Added some classes for setting the height of the element based off of the screen height as opposed to the height of the parent. You can now use vh-100, vh-75, vh-50, or vh-25 to set the height of an element to 100, 75, 50, or 25% of the screen height. Shout out to @yoshuawuyts for the recommendation.
+
+#### outlines
+You can now place a 1px outline on an element with the ```class="outline"``` it will be set to the currentColor of the element.
+
+#### line-height
+Made some slight tweaks to line-height values. ```lh-copy``` is now set to 1.5 and ```lh-title``` is set to 1.25. This will hopefully help people worried about baseline grids a little bit.
+
+#### pill shaped links / buttons
+Added a class called br-pill that makes things look like pills with a border-radius of 9999px. Shout out to @matthewmueller for getting this in.
+
+
+
+
+## Bug Fixes
+
+
+#### Animation fix
+The .glow class was not animating properly. This has been fixed.
+
+
+#### Filename consistency
+Renamed _debug_children.css to _debug-children.css to follow the naming pattern of the other partials
+
+##### Until next time
+I think that is about it. Thanks to everyone who has given feedback and helped out with docs fixes. It's all really helpful.
+
+### 4.1.3
+
+## They're back
+
+
+
+We accidentally were not including the images partial or the z-index partial in the main build.
+The 4.1.3 fixes this 100% completely embarrassing mistake by including them back in.
+
+If you use the CDN link you can find the new version at
+```
+https://npmcdn.com/tachyons@4.1.3/css/tachyons.min.css
+```
+
+### 4.1.1
+
+##### More Simple. Fewer Dependencies.
+
+Originally tachyons was a monolithic repo. Eventually along the way I started splitting things up onto NPM as when I went to work at other places sometimes I would only need a handful of modules and if a clients build system allowed for it I could just grab them quickly from npm and add them to the outputted css. I was separately maintaining publishing the mono repo and the modules though.
+
+When @johnotander and I started working on v4 one of the things we talked about was having a single source of truth and making it easier to keep everything in sync. So we would install through npm and then copy files over to source. This then caused a new problem, each module needed to be fully encapsulated - so when we would copy them from node_modules to src - we left in a lot of duplicated variables and custom media props. As Tachyons is all about immutability - this seems not the best :)
+
+In practice this caused us to have a bug where the custom media props in our npm modules were being overridden somewhere and this was largely invisible to everyone.
+
+So in the interest of simplicity, we've removed all the tachyons modules as dependencies and have removed the function of copying over the modules from the node_modules directory. Instead we'll just maintain this as an encapsulated project. I think it's more simple this way and I don't think the added complexity was worth keeping the npm copy function around for this version of the project.
+
+###### TL;DR THE BIG CHANGES
+
+* We've removed all the duplicate variable and custom-media-prop declarations.
+* We removed tachyons modules as dev dependencies
+
+Note: Nothing has changed in the outputted css besides some comments. As no new features were added, this is really just a patch to fix a bug.
+
+
+
+### 4.1.0
+
+
+
+
+Since we launched v4 we've had a number of small bug fixes and a few slight additions to some modules.
+Largely things are still the same but there are a couple of new things to play with.
+
+* The flex box module now supports ```display: inline-flex``` and ```flex-direction: row```
+* Hovers now includes a shadow on hover
+* Hover module now duplicates all hover styles for focus as well #a11y
+* There was a file in src called _gradients.css that should not have been there so it was deleted. It wasn't compiled into the css so you shouldn't notice any changes.
+* License has changed to ISC
+* Removed duplicate flexbox dependency declaration in package.json
+* Updated comments in flex box module because apparently I forgot to add notes on the media query extensions
+
+More to come soon. We've started working on v5 which won't be too much of a big change. The breaking part is that we are changing media queries. Right now -ns covers both the -m and -l range. -m is a scoped media query that cuts off when large kicks in. We're going to change it so that there aren't any max-widths in the media queries at all and everything will be completely min-width based. It's the difference between:
+
+v4
+```
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+```
+
+v5
+```
+@custom-media --breakpoint-medium screen and (min-width: 30em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+```
+
+We're also going to remove the copy from npm to src functionality in the mono repo. We'll still keep all the modules on npm individually, but we'll just manage this as it's own package. After some user testing / observation / feedback / and dogfooding - we're going to try and make this even more stripped back in simple in regards to the infrastructure. v5 won't likely include any fancy new features. Just some refined goodness as we continue to learn. We'll keep you updated.
+
+Cheers,
+
+@mrmrs & @johnotander
+
+### 4.0.0
+
+##### v4 is official
+
+
+
+After a lot of fun chats and hard work with @johnotander - we're excited to pull tachyons out of beta and officially release v4.
+
+A few notable changes:
+- Reintroduces colors
+- Flexbox support
+- More typographic utilities
+- Some changes to class names
+
+### Pre 4.0.0
+
+TODO
diff --git a/css/tachyons.css b/css/tachyons.css
index 198109150..10ad50885 100644
--- a/css/tachyons.css
+++ b/css/tachyons.css
@@ -1,4 +1,4 @@
-/* TACHYONS v4.2.1 | http://github.com/tachyons-css/tachyons */
+/*! TACHYONS v4.7.3 | http://tachyons.io */
/*
*
* ________ ______
@@ -22,47 +22,52 @@
*
*/
/* External Library Includes */
-/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
+/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
+/* Document
+ ========================================================================== */
/**
- * 1. Change the default font family in all browsers (opinionated).
- * 2. Correct the line height in all browsers.
- * 3. Prevent adjustments of font size after orientation changes in IE and iOS.
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in
+ * IE on Windows Phone and in iOS.
*/
-html { font-family: sans-serif; /* 1 */ line-height: 1.15; /* 2 */ -ms-text-size-adjust: 100%; /* 3 */ -webkit-text-size-adjust: 100%; /* 3 */ }
+html { line-height: 1.15; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }
+/* Sections
+ ========================================================================== */
/**
* Remove the margin in all browsers (opinionated).
*/
body { margin: 0; }
-/* HTML5 display definitions
- ========================================================================== */
/**
* Add the correct display in IE 9-.
- * 1. Add the correct display in Edge, IE, and Firefox.
- * 2. Add the correct display in IE.
*/
-article, aside, details, /* 1 */
-figcaption, figure, footer, header, main,
-/* 2 */
-menu, nav, section, summary {/* 1 */ display: block; }
+article, aside, footer, header, nav, section { display: block; }
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+h1 { font-size: 2em; margin: .67em 0; }
+/* Grouping content
+ ========================================================================== */
/**
* Add the correct display in IE 9-.
+ * 1. Add the correct display in IE.
*/
-audio, canvas, progress, video { display: inline-block; }
+figcaption, figure, main {/* 1 */ display: block; }
/**
- * Add the correct display in iOS 4-7.
+ * Add the correct margin in IE 8.
*/
-audio:not([controls]) { display: none; height: 0; }
+figure { margin: 1em 40px; }
/**
- * Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
*/
-progress { vertical-align: baseline; }
+hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ }
/**
- * Add the correct display in IE 10-.
- * 1. Add the correct display in IE.
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
*/
-template, /* 1 */
-[hidden] { display: none; }
-/* Links
+pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ }
+/* Text-level semantics
========================================================================== */
/**
* 1. Remove the gray background on active links in IE 10.
@@ -70,14 +75,7 @@ template, /* 1 */
*/
a { background-color: transparent; /* 1 */ -webkit-text-decoration-skip: objects; /* 2 */ }
/**
- * Remove the outline on focused links when they are also active or hovered
- * in all browsers (opinionated).
- */
-a:active, a:hover { outline-width: 0; }
-/* Text-level semantics
- ========================================================================== */
-/**
- * 1. Remove the bottom border in Firefox 39-.
+ * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ }
@@ -90,14 +88,14 @@ b, strong { font-weight: inherit; }
*/
b, strong { font-weight: bolder; }
/**
- * Add the correct font style in Android 4.3-.
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
*/
-dfn { font-style: italic; }
+code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ }
/**
- * Correct the font size and margin on `h1` elements within `section` and
- * `article` contexts in Chrome, Firefox, and Safari.
+ * Add the correct font style in Android 4.3-.
*/
-h1 { font-size: 2em; margin: 0.67em 0; }
+dfn { font-style: italic; }
/**
* Add the correct background and color in IE 9-.
*/
@@ -116,40 +114,28 @@ sup { top: -0.5em; }
/* Embedded content
========================================================================== */
/**
- * Remove the border on images inside links in IE 10-.
- */
-img { border-style: none; }
-/**
- * Hide the overflow in IE.
+ * Add the correct display in IE 9-.
*/
-svg:not(:root) { overflow: hidden; }
-/* Grouping content
- ========================================================================== */
+audio, video { display: inline-block; }
/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
+ * Add the correct display in iOS 4-7.
*/
-code, kbd, pre, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ }
+audio:not([controls]) { display: none; height: 0; }
/**
- * Add the correct margin in IE 8.
+ * Remove the border on images inside links in IE 10-.
*/
-figure { margin: 1em 40px; }
+img { border-style: none; }
/**
- * 1. Add the correct box sizing in Firefox.
- * 2. Show the overflow in Edge and IE.
+ * Hide the overflow in IE.
*/
-hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ }
+svg:not(:root) { overflow: hidden; }
/* Forms
========================================================================== */
/**
- * 1. Change font properties to `inherit` in all browsers (opinionated).
+ * 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
-button, input, optgroup, select, textarea { font: inherit; /* 1 */ margin: 0; /* 2 */ }
-/**
- * Restore the font weight unset by the previous rule.
- */
-optgroup { font-weight: bold; }
+button, input, optgroup, select, textarea { font-family: sans-serif; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ }
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
@@ -178,9 +164,9 @@ button::-moz-focus-inner, [type="button"]::-moz-focus-inner,
button:-moz-focusring, [type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
/**
- * Change the border, margin, and padding in all browsers (opinionated).
+ * Correct the padding in Firefox.
*/
-fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
+fieldset { padding: .35em .75em .625em; }
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
@@ -188,6 +174,11 @@ fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.7
* `fieldset` elements in all browsers.
*/
legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ }
+/**
+ * 1. Add the correct display in IE 9-.
+ * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+progress { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ }
/**
* Remove the default vertical scrollbar in IE.
*/
@@ -208,30 +199,87 @@ textarea { overflow: auto; }
*/
[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ }
/**
- * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.
+ * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
-/**
- * Correct the text style of placeholders in Chrome, Edge, and Safari.
- */
-::-webkit-input-placeholder { color: inherit; opacity: 0.54; }
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ }
+/* Interactive
+ ========================================================================== */
+/*
+ * Add the correct display in IE 9-.
+ * 1. Add the correct display in Edge, IE, and Firefox.
+ */
+details, /* 1 */
+menu { display: block; }
+/*
+ * Add the correct display in all browsers.
+ */
+summary { display: list-item; }
+/* Scripting
+ ========================================================================== */
+/**
+ * Add the correct display in IE 9-.
+ */
+canvas { display: inline-block; }
+/**
+ * Add the correct display in IE.
+ */
+template { display: none; }
+/* Hidden
+ ========================================================================== */
+/**
+ * Add the correct display in IE 10-.
+ */
+[hidden] { display: none; }
/* Modules */
/*
- Box Sizing
+
+ BOX SIZING
+
*/
-html, body, div, article, section, main, footer, header, form, fieldset, pre,
-code, p, ul, ol, li, dl, dt, dd, textarea, input[type="email"],
-input[type="number"], input[type="password"], input[type="tel"],
-input[type="text"], input[type="url"], .border-box { box-sizing: border-box; }
+html, body, div, article, section, main, footer, header, form, fieldset, legend,
+pre, code, a, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, textarea, table,
+td, th, tr, input[type="email"], input[type="number"], input[type="password"],
+input[type="tel"], input[type="text"], input[type="url"], .border-box { box-sizing: border-box; }
+/*
+
+ ASPECT RATIOS
+
+*/
+/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
+ * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
+ * Make sure there are no height and width attributes on the embedded media.
+ * Adapted from: https://github.com/suitcss/components-flex-embed
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ *
+ * */
+.aspect-ratio { height: 0; position: relative; }
+.aspect-ratio--16x9 { padding-bottom: 56.25%; }
+.aspect-ratio--9x16 { padding-bottom: 177.77%; }
+.aspect-ratio--4x3 { padding-bottom: 75%; }
+.aspect-ratio--3x4 { padding-bottom: 133.33%; }
+.aspect-ratio--6x4 { padding-bottom: 66.6%; }
+.aspect-ratio--4x6 { padding-bottom: 150%; }
+.aspect-ratio--8x5 { padding-bottom: 62.5%; }
+.aspect-ratio--5x8 { padding-bottom: 160%; }
+.aspect-ratio--7x5 { padding-bottom: 71.42%; }
+.aspect-ratio--5x7 { padding-bottom: 140%; }
+.aspect-ratio--1x1 { padding-bottom: 100%; }
+.aspect-ratio--object { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
/*
IMAGES
+ Docs: http://tachyons.io/docs/elements/images/
*/
/* Responsive images! */
@@ -239,6 +287,7 @@ img { max-width: 100%; }
/*
BACKGROUND SIZE
+ Docs: http://tachyons.io/docs/themes/background-size/
Media Query Extensions:
-ns = not-small
@@ -250,8 +299,33 @@ img { max-width: 100%; }
Often used in combination with background image set as an inline style
on an html element.
*/
-.cover { background-size: cover; }
-.contain { background-size: contain; }
+.cover { background-size: cover !important; }
+.contain { background-size: contain !important; }
+/*
+
+ BACKGROUND POSITION
+
+ Base:
+ bg = background
+
+ Modifiers:
+ -center = center center
+ -top = top center
+ -right = center right
+ -bottom = bottom center
+ -left = center left
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.bg-center { background-repeat: no-repeat; background-position: center center; }
+.bg-top { background-repeat: no-repeat; background-position: top center; }
+.bg-right { background-repeat: no-repeat; background-position: center right; }
+.bg-bottom { background-repeat: no-repeat; background-position: bottom center; }
+.bg-left { background-repeat: no-repeat; background-position: center left; }
/*
OUTLINES
@@ -268,6 +342,7 @@ img { max-width: 100%; }
/*
BORDERS
+ Docs: http://tachyons.io/docs/themes/borders/
Base:
b = border
@@ -295,6 +370,7 @@ img { max-width: 100%; }
/*
BORDER COLORS
+ Docs: http://tachyons.io/docs/themes/borders/
Border colors can be used to extend the base
border classes ba,bt,bb,br,bl found in the _borders.css file.
@@ -303,7 +379,11 @@ img { max-width: 100%; }
to that of the current text color. These classes are for the cases
where you desire for the text and border colors to be different.
- b = border
+ Base:
+ b = border
+
+ Modifiers:
+ --color-name = each color variable name is also a border color name
*/
.b--black { border-color: #000; }
@@ -313,6 +393,7 @@ img { max-width: 100%; }
.b--gray { border-color: #777; }
.b--silver { border-color: #999; }
.b--light-silver { border-color: #aaa; }
+.b--moon-gray { border-color: #ccc; }
.b--light-gray { border-color: #eee; }
.b--near-white { border-color: #f4f4f4; }
.b--white { border-color: #fff; }
@@ -340,18 +421,22 @@ img { max-width: 100%; }
.b--black-05 { border-color: rgba( 0, 0, 0, .05 ); }
.b--black-025 { border-color: rgba( 0, 0, 0, .025 ); }
.b--black-0125 { border-color: rgba( 0, 0, 0, .0125 ); }
-.b--dark-red { border-color: #f00008; }
-.b--red { border-color: #ff3223; }
-.b--orange { border-color: #f3a801; }
-.b--gold { border-color: #f2c800; }
-.b--yellow { border-color: #ffde37; }
-.b--purple { border-color: #7d5da9; }
-.b--light-purple { border-color: #8d4f92; }
-.b--hot-pink { border-color: #d62288; }
-.b--dark-pink { border-color: #c64774; }
-.b--pink { border-color: #f49cc8; }
-.b--dark-green { border-color: #006c71; }
-.b--green { border-color: #41d69f; }
+.b--dark-red { border-color: #e7040f; }
+.b--red { border-color: #ff4136; }
+.b--light-red { border-color: #ff725c; }
+.b--orange { border-color: #ff6300; }
+.b--gold { border-color: #ffb700; }
+.b--yellow { border-color: #ffd700; }
+.b--light-yellow { border-color: #fbf1a9; }
+.b--purple { border-color: #5e2ca5; }
+.b--light-purple { border-color: #a463f2; }
+.b--dark-pink { border-color: #d5008f; }
+.b--hot-pink { border-color: #ff41b4; }
+.b--pink { border-color: #ff80cc; }
+.b--light-pink { border-color: #ffa3d7; }
+.b--dark-green { border-color: #137752; }
+.b--green { border-color: #19a974; }
+.b--light-green { border-color: #9eebcf; }
.b--navy { border-color: #001b44; }
.b--dark-blue { border-color: #00449e; }
.b--blue { border-color: #357edd; }
@@ -359,14 +444,14 @@ img { max-width: 100%; }
.b--lightest-blue { border-color: #cdecff; }
.b--washed-blue { border-color: #f6fffe; }
.b--washed-green { border-color: #e8fdf5; }
-.b--washed-yellow { border-color: #fff8d5; }
-.b--light-pink { border-color: #efa4b8; }
-.b--light-yellow { border-color: #f3dd70; }
-.b--light-red { border-color: #ffd3c0; }
+.b--washed-yellow { border-color: #fffceb; }
+.b--washed-red { border-color: #ffdfdf; }
.b--transparent { border-color: transparent; }
+.b--inherit { border-color: inherit; }
/*
BORDER RADIUS
+ Docs: http://tachyons.io/docs/themes/border-radius/
Base:
br = border-radius
@@ -402,6 +487,7 @@ img { max-width: 100%; }
/*
BORDER STYLES
+ Docs: http://tachyons.io/docs/themes/borders/
Depends on base border module in _borders.css
@@ -427,6 +513,7 @@ img { max-width: 100%; }
/*
BORDER WIDTHS
+ Docs: http://tachyons.io/docs/themes/borders/
Base:
bw = border-width
@@ -459,6 +546,7 @@ img { max-width: 100%; }
/*
BOX-SHADOW
+ Docs: http://tachyons.io/docs/themes/box-shadow/
Media Query Extensions:
-ns = not-small
@@ -466,11 +554,11 @@ img { max-width: 100%; }
-l = large
*/
-.shadow-1 { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
-.shadow-2 { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
-.shadow-3 { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
-.shadow-4 { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
-.shadow-5 { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+.shadow-1 { box-shadow: 0 0 4px 2px rgba( 0, 0, 0, .2 ); }
+.shadow-2 { box-shadow: 0 0 8px 2px rgba( 0, 0, 0, .2 ); }
+.shadow-3 { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, .2 ); }
+.shadow-4 { box-shadow: 2px 2px 8px 0 rgba( 0, 0, 0, .2 ); }
+.shadow-5 { box-shadow: 4px 4px 8px 0 rgba( 0, 0, 0, .2 ); }
/*
CODE
@@ -480,6 +568,7 @@ img { max-width: 100%; }
/*
COORDINATES
+ Docs: http://tachyons.io/docs/layout/position/
Use in combination with the position module.
@@ -526,6 +615,7 @@ img { max-width: 100%; }
/*
CLEARFIX
+ http://tachyons.io/docs/layout/clearfix/
*/
/* Nicolas Gallaghers Clearfix solution
@@ -540,6 +630,7 @@ img { max-width: 100%; }
/*
DISPLAY
+ Docs: http://tachyons.io/docs/layout/display
Base:
d = display
@@ -551,9 +642,9 @@ img { max-width: 100%; }
it = inline-table
t = table
tc = table-cell
- tr = table-row
- tcol = table-column
- tcolg = table-column-group
+ t-row = table-row
+ t-columm = table-column
+ t-column-group = table-column-group
Media Query Extensions:
-ns = not-small
@@ -596,16 +687,19 @@ img { max-width: 100%; }
.flex-column { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
.flex-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
.flex-wrap { -ms-flex-wrap: wrap; flex-wrap: wrap; }
-.items-start { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
-.items-end { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
-.items-center { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
-.items-baseline { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
-.items-stretch { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+.flex-column-reverse { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; }
+.flex-row-reverse { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; }
+.flex-wrap-reverse { -ms-flex-wrap: wrap-reverse; flex-wrap: wrap-reverse; }
+.items-start { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
+.items-end { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; }
+.items-center { -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
+.items-baseline { -webkit-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; }
+.items-stretch { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; }
.self-start { -ms-flex-item-align: start; align-self: flex-start; }
.self-end { -ms-flex-item-align: end; align-self: flex-end; }
-.self-center { -ms-flex-item-align: center; align-self: center; }
+.self-center { -ms-flex-item-align: center; -ms-grid-row-align: center; align-self: center; }
.self-baseline { -ms-flex-item-align: baseline; align-self: baseline; }
-.self-stretch { -ms-flex-item-align: stretch; align-self: stretch; }
+.self-stretch { -ms-flex-item-align: stretch; -ms-grid-row-align: stretch; align-self: stretch; }
.justify-start { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
.justify-end { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
.justify-center { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
@@ -630,6 +724,7 @@ img { max-width: 100%; }
/*
FLOATS
+ http://tachyons.io/docs/layout/floats/
1. Floated elements are automatically rendered as block level elements.
Setting floats to display inline will fix the double margin bug in
@@ -657,9 +752,10 @@ img { max-width: 100%; }
/*
FONT FAMILY GROUPS
+ Docs: http://tachyons.io/docs/typography/font-family/
*/
-.sans-serif { font-family: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, helvetica, 'helvetica neue', ubuntu, roboto, noto, 'segoe ui', arial, sans-serif; }
+.sans-serif { font-family: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, 'helvetica neue', helvetica, ubuntu, roboto, noto, 'segoe ui', arial, sans-serif; }
.serif { font-family: georgia, times, serif; }
.system-sans-serif { font-family: sans-serif; }
.system-serif { font-family: serif; }
@@ -671,6 +767,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
.helvetica { font-family: 'helvetica neue', helvetica, sans-serif; }
.avenir { font-family: 'avenir next', avenir, sans-serif; }
/* Serif Typefaces */
+.athelas { font-family: athelas, georgia, serif; }
.georgia { font-family: georgia, serif; }
.times { font-family: times, serif; }
.bodoni { font-family: "Bodoni MT", serif; }
@@ -680,6 +777,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
FONT STYLE
+ Docs: http://tachyons.io/docs/typography/font-style/
Media Query Extensions:
-ns = not-small
@@ -692,6 +790,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
FONT WEIGHT
+ Docs: http://tachyons.io/docs/typography/font-weight/
Base
fw = font-weight
@@ -727,15 +826,19 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
FORMS
-
+
*/
.input-reset { -webkit-appearance: none; -moz-appearance: none; }
+.button-reset::-moz-focus-inner, .input-reset::-moz-focus-inner { border: 0; padding: 0; }
/*
HEIGHTS
+ Docs: http://tachyons.io/docs/layout/heights/
Base:
h = height
+ min-h = min-height
+ min-vh = min-height vertical screen height
vh = vertical screen height
Modifiers
@@ -770,17 +873,20 @@ code, .code { font-family: Consolas, monaco, monospace; }
.h-50 { height: 50%; }
.h-75 { height: 75%; }
.h-100 { height: 100%; }
+.min-h-100 { min-height: 100%; }
/* Screen Height Percentage */
.vh-25 { height: 25vh; }
.vh-50 { height: 50vh; }
.vh-75 { height: 75vh; }
.vh-100 { height: 100vh; }
+.min-vh-100 { min-height: 100vh; }
/* String Properties */
.h-auto { height: auto; }
.h-inherit { height: inherit; }
/*
LETTER SPACING
+ Docs: http://tachyons.io/docs/typography/tracking/
Media Query Extensions:
-ns = not-small
@@ -794,6 +900,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
LINE HEIGHT / LEADING
+ Docs: http://tachyons.io/docs/typography/line-height
Media Query Extensions:
-ns = not-small
@@ -807,22 +914,25 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
LINKS
+ Docs: http://tachyons.io/docs/elements/links/
*/
-.link { text-decoration: none; -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
-.link:link, .link:visited { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
-.link:hover { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
-.link:active { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
-.link:focus { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link { text-decoration: none; transition: color .15s ease-in; }
+.link:link, .link:visited { transition: color .15s ease-in; }
+.link:hover { transition: color .15s ease-in; }
+.link:active { transition: color .15s ease-in; }
+.link:focus { transition: color .15s ease-in; outline: 1px dotted currentColor; }
/*
LISTS
+ http://tachyons.io/docs/elements/lists/
*/
.list { list-style-type: none; }
/*
MAX WIDTHS
+ Docs: http://tachyons.io/docs/layout/max-widths/
Base:
mw = max-width
@@ -866,6 +976,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
WIDTHS
+ Docs: http://tachyons.io/docs/layout/widths/
Base:
w = width
@@ -880,16 +991,21 @@ code, .code { font-family: Consolas, monaco, monospace; }
-10 = literal value 10%
-20 = literal value 20%
-25 = literal value 25%
+ -30 = literal value 30%
-33 = literal value 33%
-34 = literal value 34%
-40 = literal value 40%
-50 = literal value 50%
-60 = literal value 60%
+ -70 = literal value 70%
-75 = literal value 75%
-80 = literal value 80%
+ -90 = literal value 90%
-100 = literal value 100%
- -auto = string value auto
+ -third = 100% / 3 (Not supported in opera mini or IE8)
+ -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8)
+ -auto = string value auto
Media Query Extensions:
@@ -907,14 +1023,19 @@ code, .code { font-family: Consolas, monaco, monospace; }
.w-10 { width: 10%; }
.w-20 { width: 20%; }
.w-25 { width: 25%; }
+.w-30 { width: 30%; }
.w-33 { width: 33%; }
.w-34 { width: 34%; }
.w-40 { width: 40%; }
.w-50 { width: 50%; }
.w-60 { width: 60%; }
+.w-70 { width: 70%; }
.w-75 { width: 75%; }
.w-80 { width: 80%; }
+.w-90 { width: 90%; }
.w-100 { width: 100%; }
+.w-third { width: calc( 100% / 3 ); }
+.w-two-thirds { width: calc( 100% / 1.5 ); }
.w-auto { width: auto; }
/*
@@ -941,6 +1062,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
POSITIONING
+ Docs: http://tachyons.io/docs/layout/position/
Media Query Extensions:
-ns = not-small
@@ -955,6 +1077,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
OPACITY
+ Docs: http://tachyons.io/docs/themes/opacity/
*/
.o-100 { opacity: 1; }
@@ -970,11 +1093,26 @@ code, .code { font-family: Consolas, monaco, monospace; }
.o-05 { opacity: .05; }
.o-025 { opacity: .025; }
.o-0 { opacity: 0; }
+/*
+
+ ROTATIONS
+
+*/
+.rotate-45 { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+.rotate-90 { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+.rotate-135 { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+.rotate-180 { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+.rotate-225 { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+.rotate-270 { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+.rotate-315 { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
/*
SKINS
+ Docs: http://tachyons.io/docs/themes/skins/
Classes for setting foreground and background colors on elements.
+ If you haven't declared a border color, but set border on an element, it will
+ be set to the current text color.
*/
/* Text colors */
@@ -1008,18 +1146,22 @@ code, .code { font-family: Consolas, monaco, monospace; }
.light-gray { color: #eee; }
.near-white { color: #f4f4f4; }
.white { color: #fff; }
-.dark-red { color: #f00008; }
-.red { color: #ff3223; }
-.orange { color: #f3a801; }
-.gold { color: #f2c800; }
-.yellow { color: #ffde37; }
-.purple { color: #7d5da9; }
-.light-purple { color: #8d4f92; }
-.hot-pink { color: #d62288; }
-.dark-pink { color: #c64774; }
-.pink { color: #f49cc8; }
-.dark-green { color: #006c71; }
-.green { color: #41d69f; }
+.dark-red { color: #e7040f; }
+.red { color: #ff4136; }
+.light-red { color: #ff725c; }
+.orange { color: #ff6300; }
+.gold { color: #ffb700; }
+.yellow { color: #ffd700; }
+.light-yellow { color: #fbf1a9; }
+.purple { color: #5e2ca5; }
+.light-purple { color: #a463f2; }
+.dark-pink { color: #d5008f; }
+.hot-pink { color: #ff41b4; }
+.pink { color: #ff80cc; }
+.light-pink { color: #ffa3d7; }
+.dark-green { color: #137752; }
+.green { color: #19a974; }
+.light-green { color: #9eebcf; }
.navy { color: #001b44; }
.dark-blue { color: #00449e; }
.blue { color: #357edd; }
@@ -1027,10 +1169,9 @@ code, .code { font-family: Consolas, monaco, monospace; }
.lightest-blue { color: #cdecff; }
.washed-blue { color: #f6fffe; }
.washed-green { color: #e8fdf5; }
-.washed-yellow { color: #fff8d5; }
-.light-pink { color: #efa4b8; }
-.light-yellow { color: #f3dd70; }
-.light-red { color: #ffd3c0; }
+.washed-yellow { color: #fffceb; }
+.washed-red { color: #ffdfdf; }
+.color-inherit { color: inherit; }
.bg-black-90 { background-color: rgba( 0, 0, 0, .9 ); }
.bg-black-80 { background-color: rgba( 0, 0, 0, .8 ); }
.bg-black-70 { background-color: rgba( 0, 0, 0, .7 ); }
@@ -1063,18 +1204,22 @@ code, .code { font-family: Consolas, monaco, monospace; }
.bg-near-white { background-color: #f4f4f4; }
.bg-white { background-color: #fff; }
.bg-transparent { background-color: transparent; }
-.bg-dark-red { background-color: #f00008; }
-.bg-red { background-color: #ff3223; }
-.bg-orange { background-color: #f3a801; }
-.bg-gold { background-color: #f2c800; }
-.bg-yellow { background-color: #ffde37; }
-.bg-purple { background-color: #7d5da9; }
-.bg-light-purple { background-color: #8d4f92; }
-.bg-hot-pink { background-color: #d62288; }
-.bg-dark-pink { background-color: #c64774; }
-.bg-pink { background-color: #f49cc8; }
-.bg-dark-green { background-color: #006c71; }
-.bg-green { background-color: #41d69f; }
+.bg-dark-red { background-color: #e7040f; }
+.bg-red { background-color: #ff4136; }
+.bg-light-red { background-color: #ff725c; }
+.bg-orange { background-color: #ff6300; }
+.bg-gold { background-color: #ffb700; }
+.bg-yellow { background-color: #ffd700; }
+.bg-light-yellow { background-color: #fbf1a9; }
+.bg-purple { background-color: #5e2ca5; }
+.bg-light-purple { background-color: #a463f2; }
+.bg-dark-pink { background-color: #d5008f; }
+.bg-hot-pink { background-color: #ff41b4; }
+.bg-pink { background-color: #ff80cc; }
+.bg-light-pink { background-color: #ffa3d7; }
+.bg-dark-green { background-color: #137752; }
+.bg-green { background-color: #19a974; }
+.bg-light-green { background-color: #9eebcf; }
.bg-navy { background-color: #001b44; }
.bg-dark-blue { background-color: #00449e; }
.bg-blue { background-color: #357edd; }
@@ -1082,65 +1227,245 @@ code, .code { font-family: Consolas, monaco, monospace; }
.bg-lightest-blue { background-color: #cdecff; }
.bg-washed-blue { background-color: #f6fffe; }
.bg-washed-green { background-color: #e8fdf5; }
-.bg-washed-yellow { background-color: #fff8d5; }
-.bg-light-pink { background-color: #efa4b8; }
-.bg-light-yellow { background-color: #f3dd70; }
-.bg-light-red { background-color: #ffd3c0; }
-/* Skins for specific pseudoclasses */
+.bg-washed-yellow { background-color: #fffceb; }
+.bg-washed-red { background-color: #ffdfdf; }
+.bg-inherit { background-color: inherit; }
+/*
+
+ SKINS:PSEUDO
+
+ Customize the color of an element when
+ it is focused or hovered over.
+
+ */
.hover-black:hover { color: #000; }
+.hover-black:focus { color: #000; }
.hover-near-black:hover { color: #111; }
+.hover-near-black:focus { color: #111; }
.hover-dark-gray:hover { color: #333; }
+.hover-dark-gray:focus { color: #333; }
.hover-mid-gray:hover { color: #555; }
+.hover-mid-gray:focus { color: #555; }
.hover-gray:hover { color: #777; }
+.hover-gray:focus { color: #777; }
.hover-silver:hover { color: #999; }
+.hover-silver:focus { color: #999; }
.hover-light-silver:hover { color: #aaa; }
+.hover-light-silver:focus { color: #aaa; }
.hover-moon-gray:hover { color: #ccc; }
+.hover-moon-gray:focus { color: #ccc; }
.hover-light-gray:hover { color: #eee; }
+.hover-light-gray:focus { color: #eee; }
.hover-near-white:hover { color: #f4f4f4; }
+.hover-near-white:focus { color: #f4f4f4; }
.hover-white:hover { color: #fff; }
+.hover-white:focus { color: #fff; }
+.hover-black-90:hover { color: rgba( 0, 0, 0, .9 ); }
+.hover-black-90:focus { color: rgba( 0, 0, 0, .9 ); }
+.hover-black-80:hover { color: rgba( 0, 0, 0, .8 ); }
+.hover-black-80:focus { color: rgba( 0, 0, 0, .8 ); }
+.hover-black-70:hover { color: rgba( 0, 0, 0, .7 ); }
+.hover-black-70:focus { color: rgba( 0, 0, 0, .7 ); }
+.hover-black-60:hover { color: rgba( 0, 0, 0, .6 ); }
+.hover-black-60:focus { color: rgba( 0, 0, 0, .6 ); }
+.hover-black-50:hover { color: rgba( 0, 0, 0, .5 ); }
+.hover-black-50:focus { color: rgba( 0, 0, 0, .5 ); }
+.hover-black-40:hover { color: rgba( 0, 0, 0, .4 ); }
+.hover-black-40:focus { color: rgba( 0, 0, 0, .4 ); }
+.hover-black-30:hover { color: rgba( 0, 0, 0, .3 ); }
+.hover-black-30:focus { color: rgba( 0, 0, 0, .3 ); }
+.hover-black-20:hover { color: rgba( 0, 0, 0, .2 ); }
+.hover-black-20:focus { color: rgba( 0, 0, 0, .2 ); }
+.hover-black-10:hover { color: rgba( 0, 0, 0, .1 ); }
+.hover-black-10:focus { color: rgba( 0, 0, 0, .1 ); }
+.hover-white-90:hover { color: rgba( 255, 255, 255, .9 ); }
+.hover-white-90:focus { color: rgba( 255, 255, 255, .9 ); }
+.hover-white-80:hover { color: rgba( 255, 255, 255, .8 ); }
+.hover-white-80:focus { color: rgba( 255, 255, 255, .8 ); }
+.hover-white-70:hover { color: rgba( 255, 255, 255, .7 ); }
+.hover-white-70:focus { color: rgba( 255, 255, 255, .7 ); }
+.hover-white-60:hover { color: rgba( 255, 255, 255, .6 ); }
+.hover-white-60:focus { color: rgba( 255, 255, 255, .6 ); }
+.hover-white-50:hover { color: rgba( 255, 255, 255, .5 ); }
+.hover-white-50:focus { color: rgba( 255, 255, 255, .5 ); }
+.hover-white-40:hover { color: rgba( 255, 255, 255, .4 ); }
+.hover-white-40:focus { color: rgba( 255, 255, 255, .4 ); }
+.hover-white-30:hover { color: rgba( 255, 255, 255, .3 ); }
+.hover-white-30:focus { color: rgba( 255, 255, 255, .3 ); }
+.hover-white-20:hover { color: rgba( 255, 255, 255, .2 ); }
+.hover-white-20:focus { color: rgba( 255, 255, 255, .2 ); }
+.hover-white-10:hover { color: rgba( 255, 255, 255, .1 ); }
+.hover-white-10:focus { color: rgba( 255, 255, 255, .1 ); }
+.hover-inherit:hover, .hover-inherit:focus { color: inherit; }
.hover-bg-black:hover { background-color: #000; }
+.hover-bg-black:focus { background-color: #000; }
.hover-bg-near-black:hover { background-color: #111; }
+.hover-bg-near-black:focus { background-color: #111; }
.hover-bg-dark-gray:hover { background-color: #333; }
+.hover-bg-dark-gray:focus { background-color: #333; }
+.hover-bg-dark-gray:focus { background-color: #555; }
.hover-bg-mid-gray:hover { background-color: #555; }
.hover-bg-gray:hover { background-color: #777; }
+.hover-bg-gray:focus { background-color: #777; }
.hover-bg-silver:hover { background-color: #999; }
+.hover-bg-silver:focus { background-color: #999; }
.hover-bg-light-silver:hover { background-color: #aaa; }
+.hover-bg-light-silver:focus { background-color: #aaa; }
.hover-bg-moon-gray:hover { background-color: #ccc; }
+.hover-bg-moon-gray:focus { background-color: #ccc; }
.hover-bg-light-gray:hover { background-color: #eee; }
+.hover-bg-light-gray:focus { background-color: #eee; }
.hover-bg-near-white:hover { background-color: #f4f4f4; }
+.hover-bg-near-white:focus { background-color: #f4f4f4; }
.hover-bg-white:hover { background-color: #fff; }
+.hover-bg-white:focus { background-color: #fff; }
.hover-bg-transparent:hover { background-color: transparent; }
-.hover-bg-dark-red:hover { background-color: #f00008; }
-.hover-bg-red:hover { background-color: #ff3223; }
-.hover-bg-orange:hover { background-color: #f3a801; }
-.hover-bg-gold:hover { background-color: #f2c800; }
-.hover-bg-yellow:hover { background-color: #ffde37; }
-.hover-bg-purple:hover { background-color: #7d5da9; }
-.hover-bg-light-purple:hover { background-color: #8d4f92; }
-.hover-bg-hot-pink:hover { background-color: #d62288; }
-.hover-bg-dark-pink:hover { background-color: #c64774; }
-.hover-bg-pink:hover { background-color: #f49cc8; }
-.hover-bg-dark-green:hover { background-color: #006c71; }
-.hover-bg-green:hover { background-color: #41d69f; }
+.hover-bg-transparent:focus { background-color: transparent; }
+.hover-bg-black-90:hover { background-color: rgba( 0, 0, 0, .9 ); }
+.hover-bg-black-90:focus { background-color: rgba( 0, 0, 0, .9 ); }
+.hover-bg-black-80:hover { background-color: rgba( 0, 0, 0, .8 ); }
+.hover-bg-black-80:focus { background-color: rgba( 0, 0, 0, .8 ); }
+.hover-bg-black-70:hover { background-color: rgba( 0, 0, 0, .7 ); }
+.hover-bg-black-70:focus { background-color: rgba( 0, 0, 0, .7 ); }
+.hover-bg-black-60:hover { background-color: rgba( 0, 0, 0, .6 ); }
+.hover-bg-black-60:focus { background-color: rgba( 0, 0, 0, .6 ); }
+.hover-bg-black-50:hover { background-color: rgba( 0, 0, 0, .5 ); }
+.hover-bg-black-50:focus { background-color: rgba( 0, 0, 0, .5 ); }
+.hover-bg-black-40:hover { background-color: rgba( 0, 0, 0, .4 ); }
+.hover-bg-black-40:focus { background-color: rgba( 0, 0, 0, .4 ); }
+.hover-bg-black-30:hover { background-color: rgba( 0, 0, 0, .3 ); }
+.hover-bg-black-30:focus { background-color: rgba( 0, 0, 0, .3 ); }
+.hover-bg-black-20:hover { background-color: rgba( 0, 0, 0, .2 ); }
+.hover-bg-black-20:focus { background-color: rgba( 0, 0, 0, .2 ); }
+.hover-bg-black-10:hover { background-color: rgba( 0, 0, 0, .1 ); }
+.hover-bg-black-10:focus { background-color: rgba( 0, 0, 0, .1 ); }
+.hover-bg-white-90:hover { background-color: rgba( 255, 255, 255, .9 ); }
+.hover-bg-white-90:focus { background-color: rgba( 255, 255, 255, .9 ); }
+.hover-bg-white-80:hover { background-color: rgba( 255, 255, 255, .8 ); }
+.hover-bg-white-80:focus { background-color: rgba( 255, 255, 255, .8 ); }
+.hover-bg-white-70:hover { background-color: rgba( 255, 255, 255, .7 ); }
+.hover-bg-white-70:focus { background-color: rgba( 255, 255, 255, .7 ); }
+.hover-bg-white-60:hover { background-color: rgba( 255, 255, 255, .6 ); }
+.hover-bg-white-60:focus { background-color: rgba( 255, 255, 255, .6 ); }
+.hover-bg-white-50:hover { background-color: rgba( 255, 255, 255, .5 ); }
+.hover-bg-white-50:focus { background-color: rgba( 255, 255, 255, .5 ); }
+.hover-bg-white-40:hover { background-color: rgba( 255, 255, 255, .4 ); }
+.hover-bg-white-40:focus { background-color: rgba( 255, 255, 255, .4 ); }
+.hover-bg-white-30:hover { background-color: rgba( 255, 255, 255, .3 ); }
+.hover-bg-white-30:focus { background-color: rgba( 255, 255, 255, .3 ); }
+.hover-bg-white-20:hover { background-color: rgba( 255, 255, 255, .2 ); }
+.hover-bg-white-20:focus { background-color: rgba( 255, 255, 255, .2 ); }
+.hover-bg-white-10:hover { background-color: rgba( 255, 255, 255, .1 ); }
+.hover-bg-white-10:focus { background-color: rgba( 255, 255, 255, .1 ); }
+.hover-dark-red:hover { color: #e7040f; }
+.hover-dark-red:focus { color: #e7040f; }
+.hover-red:hover { color: #ff4136; }
+.hover-red:focus { color: #ff4136; }
+.hover-light-red:hover { color: #ff725c; }
+.hover-light-red:focus { color: #ff725c; }
+.hover-orange:hover { color: #ff6300; }
+.hover-orange:focus { color: #ff6300; }
+.hover-gold:hover { color: #ffb700; }
+.hover-gold:focus { color: #ffb700; }
+.hover-yellow:hover { color: #ffd700; }
+.hover-yellow:focus { color: #ffd700; }
+.hover-light-yellow:hover { color: #fbf1a9; }
+.hover-light-yellow:focus { color: #fbf1a9; }
+.hover-purple:hover { color: #5e2ca5; }
+.hover-purple:focus { color: #5e2ca5; }
+.hover-light-purple:hover { color: #a463f2; }
+.hover-light-purple:focus { color: #a463f2; }
+.hover-dark-pink:hover { color: #d5008f; }
+.hover-dark-pink:focus { color: #d5008f; }
+.hover-hot-pink:hover { color: #ff41b4; }
+.hover-hot-pink:focus { color: #ff41b4; }
+.hover-pink:hover { color: #ff80cc; }
+.hover-pink:focus { color: #ff80cc; }
+.hover-light-pink:hover { color: #ffa3d7; }
+.hover-light-pink:focus { color: #ffa3d7; }
+.hover-dark-green:hover { color: #137752; }
+.hover-dark-green:focus { color: #137752; }
+.hover-green:hover { color: #19a974; }
+.hover-green:focus { color: #19a974; }
+.hover-light-green:hover { color: #9eebcf; }
+.hover-light-green:focus { color: #9eebcf; }
+.hover-navy:hover { color: #001b44; }
+.hover-navy:focus { color: #001b44; }
+.hover-dark-blue:hover { color: #00449e; }
+.hover-dark-blue:focus { color: #00449e; }
+.hover-blue:hover { color: #357edd; }
+.hover-blue:focus { color: #357edd; }
+.hover-light-blue:hover { color: #96ccff; }
+.hover-light-blue:focus { color: #96ccff; }
+.hover-lightest-blue:hover { color: #cdecff; }
+.hover-lightest-blue:focus { color: #cdecff; }
+.hover-washed-blue:hover { color: #f6fffe; }
+.hover-washed-blue:focus { color: #f6fffe; }
+.hover-washed-green:hover { color: #e8fdf5; }
+.hover-washed-green:focus { color: #e8fdf5; }
+.hover-washed-yellow:hover { color: #fffceb; }
+.hover-washed-yellow:focus { color: #fffceb; }
+.hover-washed-red:hover { color: #ffdfdf; }
+.hover-washed-red:focus { color: #ffdfdf; }
+.hover-bg-dark-red:hover { background-color: #e7040f; }
+.hover-bg-dark-red:focus { background-color: #e7040f; }
+.hover-bg-red:hover { background-color: #ff4136; }
+.hover-bg-red:focus { background-color: #ff4136; }
+.hover-bg-light-red:hover { background-color: #ff725c; }
+.hover-bg-light-red:focus { background-color: #ff725c; }
+.hover-bg-orange:hover { background-color: #ff6300; }
+.hover-bg-orange:focus { background-color: #ff6300; }
+.hover-bg-gold:hover { background-color: #ffb700; }
+.hover-bg-gold:focus { background-color: #ffb700; }
+.hover-bg-yellow:hover { background-color: #ffd700; }
+.hover-bg-yellow:focus { background-color: #ffd700; }
+.hover-bg-light-yellow:hover { background-color: #fbf1a9; }
+.hover-bg-light-yellow:focus { background-color: #fbf1a9; }
+.hover-bg-purple:hover { background-color: #5e2ca5; }
+.hover-bg-purple:focus { background-color: #5e2ca5; }
+.hover-bg-light-purple:hover { background-color: #a463f2; }
+.hover-bg-light-purple:focus { background-color: #a463f2; }
+.hover-bg-dark-pink:hover { background-color: #d5008f; }
+.hover-bg-dark-pink:focus { background-color: #d5008f; }
+.hover-bg-hot-pink:hover { background-color: #ff41b4; }
+.hover-bg-hot-pink:focus { background-color: #ff41b4; }
+.hover-bg-pink:hover { background-color: #ff80cc; }
+.hover-bg-pink:focus { background-color: #ff80cc; }
+.hover-bg-light-pink:hover { background-color: #ffa3d7; }
+.hover-bg-light-pink:focus { background-color: #ffa3d7; }
+.hover-bg-dark-green:hover { background-color: #137752; }
+.hover-bg-dark-green:focus { background-color: #137752; }
+.hover-bg-green:hover { background-color: #19a974; }
+.hover-bg-green:focus { background-color: #19a974; }
+.hover-bg-light-green:hover { background-color: #9eebcf; }
+.hover-bg-light-green:focus { background-color: #9eebcf; }
.hover-bg-navy:hover { background-color: #001b44; }
+.hover-bg-navy:focus { background-color: #001b44; }
.hover-bg-dark-blue:hover { background-color: #00449e; }
+.hover-bg-dark-blue:focus { background-color: #00449e; }
.hover-bg-blue:hover { background-color: #357edd; }
+.hover-bg-blue:focus { background-color: #357edd; }
.hover-bg-light-blue:hover { background-color: #96ccff; }
+.hover-bg-light-blue:focus { background-color: #96ccff; }
.hover-bg-lightest-blue:hover { background-color: #cdecff; }
+.hover-bg-lightest-blue:focus { background-color: #cdecff; }
.hover-bg-washed-blue:hover { background-color: #f6fffe; }
+.hover-bg-washed-blue:focus { background-color: #f6fffe; }
.hover-bg-washed-green:hover { background-color: #e8fdf5; }
-.hover-bg-washed-yellow:hover { background-color: #fff8d5; }
-.hover-bg-light-pink:hover { background-color: #efa4b8; }
-.hover-bg-light-yellow:hover { background-color: #f3dd70; }
-.hover-bg-light-red:hover { background-color: #ffd3c0; }
+.hover-bg-washed-green:focus { background-color: #e8fdf5; }
+.hover-bg-washed-yellow:hover { background-color: #fffceb; }
+.hover-bg-washed-yellow:focus { background-color: #fffceb; }
+.hover-bg-washed-red:hover { background-color: #ffdfdf; }
+.hover-bg-washed-red:focus { background-color: #ffdfdf; }
+.hover-bg-inherit:hover, .hover-bg-inherit:focus { background-color: inherit; }
/* Variables */
/*
SPACING
+ Docs: http://tachyons.io/docs/layout/spacing/
An eight step powers of two scale ranging from 0 to 16rem.
Base:
-
p = padding
m = margin
@@ -1280,9 +1605,72 @@ code, .code { font-family: Consolas, monaco, monospace; }
.mh5 { margin-left: 4rem; margin-right: 4rem; }
.mh6 { margin-left: 8rem; margin-right: 8rem; }
.mh7 { margin-left: 16rem; margin-right: 16rem; }
+/*
+ NEGATIVE MARGINS
+
+ Base:
+ n = negative
+
+ Modifiers:
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.na1 { margin: -.25rem; }
+.na2 { margin: -.5rem; }
+.na3 { margin: -1rem; }
+.na4 { margin: -2rem; }
+.na5 { margin: -4rem; }
+.na6 { margin: -8rem; }
+.na7 { margin: -16rem; }
+.nl1 { margin-left: -.25rem; }
+.nl2 { margin-left: -.5rem; }
+.nl3 { margin-left: -1rem; }
+.nl4 { margin-left: -2rem; }
+.nl5 { margin-left: -4rem; }
+.nl6 { margin-left: -8rem; }
+.nl7 { margin-left: -16rem; }
+.nr1 { margin-right: -.25rem; }
+.nr2 { margin-right: -.5rem; }
+.nr3 { margin-right: -1rem; }
+.nr4 { margin-right: -2rem; }
+.nr5 { margin-right: -4rem; }
+.nr6 { margin-right: -8rem; }
+.nr7 { margin-right: -16rem; }
+.nb1 { margin-bottom: -.25rem; }
+.nb2 { margin-bottom: -.5rem; }
+.nb3 { margin-bottom: -1rem; }
+.nb4 { margin-bottom: -2rem; }
+.nb5 { margin-bottom: -4rem; }
+.nb6 { margin-bottom: -8rem; }
+.nb7 { margin-bottom: -16rem; }
+.nt1 { margin-top: -.25rem; }
+.nt2 { margin-top: -.5rem; }
+.nt3 { margin-top: -1rem; }
+.nt4 { margin-top: -2rem; }
+.nt5 { margin-top: -4rem; }
+.nt6 { margin-top: -8rem; }
+.nt7 { margin-top: -16rem; }
/*
TABLES
+ Docs: http://tachyons.io/docs/elements/tables/
*/
.collapse { border-collapse: collapse; border-spacing: 0; }
@@ -1290,9 +1678,13 @@ code, .code { font-family: Consolas, monaco, monospace; }
.striped--moon-gray:nth-child(odd) { background-color: #ccc; }
.striped--light-gray:nth-child(odd) { background-color: #eee; }
.striped--near-white:nth-child(odd) { background-color: #f4f4f4; }
+.stripe-light:nth-child(odd) { background-color: rgba( 255, 255, 255, .1 ); }
+.stripe-dark:nth-child(odd) { background-color: rgba( 0, 0, 0, .1 ); }
/*
TEXT DECORATION
+ Docs: http://tachyons.io/docs/typography/text-decoration/
+
Media Query Extensions:
-ns = not-small
@@ -1306,6 +1698,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
TEXT ALIGN
+ Docs: http://tachyons.io/docs/typography/text-align/
Base
t = text-align
@@ -1327,6 +1720,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
TEXT TRANSFORM
+ Docs: http://tachyons.io/docs/typography/text-transform/
Base:
tt = text-transform
@@ -1350,6 +1744,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
TYPE SCALE
+ Docs: http://tachyons.io/docs/typography/scale/
Base:
f = font-size
@@ -1361,6 +1756,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
4 = 4th step in size scale
5 = 5th step in size scale
6 = 6th step in size scale
+ 7 = 7th step in size scale
Media Query Extensions:
-ns = not-small
@@ -1382,9 +1778,12 @@ code, .code { font-family: Consolas, monaco, monospace; }
.f4 { font-size: 1.25rem; }
.f5 { font-size: 1rem; }
.f6 { font-size: .875rem; }
+.f7 { font-size: .75rem; }
+/* Small and hard to read for many people so use with extreme caution */
/*
TYPOGRAPHY
+ http://tachyons.io/docs/typography/measure/
Media Query Extensions:
-ns = not-small
@@ -1407,24 +1806,13 @@ code, .code { font-family: Consolas, monaco, monospace; }
UTILITIES
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
*/
-/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
- * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
- * Make sure there are no height and width attributes on the embedded media.
- * Adapted from: https://github.com/suitcss/components-flex-embed
- *
- * Example:
- *
- *
- *
- *
- *
- * */
-.aspect-ratio { height: 0; position: relative; }
-.aspect-ratio--16x9 { padding-bottom: 56.25%; }
-.aspect-ratio--4x3 { padding-bottom: 75%; }
-.aspect-ratio--8x5 { padding-bottom: 62.5%; }
-.aspect-ratio--object { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+/* Equivalent to .overflow-y-scroll */
.overflow-container { overflow-y: scroll; }
.center { margin-right: auto; margin-left: auto; }
/*
@@ -1472,8 +1860,10 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
HOVER EFFECTS
+ Docs: http://tachyons.io/docs/themes/hovers/
- Dim
+ - Glow
- Hide Child
- Underline text
- Grow
@@ -1486,9 +1876,16 @@ code, .code { font-family: Consolas, monaco, monospace; }
Dim element on hover by adding the dim class.
*/
-.dim { opacity: 1; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
-.dim:hover, .dim:focus { opacity: .5; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
-.dim:active { opacity: .8; -webkit-transition: opacity .15s ease-out; transition: opacity .15s ease-out; }
+.dim { opacity: 1; transition: opacity .15s ease-in; }
+.dim:hover, .dim:focus { opacity: .5; transition: opacity .15s ease-in; }
+.dim:active { opacity: .8; transition: opacity .15s ease-out; }
+/*
+
+ Animate opacity to 100% on hover by adding the glow class.
+
+*/
+.glow { transition: opacity .15s ease-in; }
+.glow:hover, .glow:focus { opacity: 1; transition: opacity .15s ease-in; }
/*
Hide child & reveal on hover:
@@ -1503,21 +1900,31 @@ code, .code { font-family: Consolas, monaco, monospace; }
Hidden until hover or focus
*/
-.hide-child .child { opacity: 0; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
-.hide-child:hover .child, .hide-child:focus .child, .hide-child:active .child { opacity: 1; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.hide-child .child { opacity: 0; transition: opacity .15s ease-in; }
+.hide-child:hover .child, .hide-child:focus .child, .hide-child:active .child { opacity: 1; transition: opacity .15s ease-in; }
.underline-hover:hover, .underline-hover:focus { text-decoration: underline; }
/* Can combine this with overflow-hidden to make background images grow on hover
* even if you are using background-size: cover */
-.grow { -moz-osx-font-smoothing: grayscale; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transform: translateZ( 0 ); transform: translateZ( 0 ); -webkit-transition: 0.25s -webkit-transform ease-out; transition: 0.25s -webkit-transform ease-out; transition: 0.25s transform ease-out; transition: 0.25s transform ease-out, 0.25s -webkit-transform ease-out; }
+.grow { -moz-osx-font-smoothing: grayscale; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transform: translateZ( 0 ); transform: translateZ( 0 ); transition: -webkit-transform .25s ease-out; transition: transform .25s ease-out; transition: transform .25s ease-out, -webkit-transform .25s ease-out; }
.grow:hover, .grow:focus { -webkit-transform: scale( 1.05 ); transform: scale( 1.05 ); }
.grow:active { -webkit-transform: scale( .90 ); transform: scale( .90 ); }
-.grow-large { -moz-osx-font-smoothing: grayscale; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transform: translateZ( 0 ); transform: translateZ( 0 ); -webkit-transition: 0.25s -webkit-transform ease-in-out; transition: 0.25s -webkit-transform ease-in-out; transition: 0.25s transform ease-in-out; transition: 0.25s transform ease-in-out, 0.25s -webkit-transform ease-in-out; }
+.grow-large { -moz-osx-font-smoothing: grayscale; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transform: translateZ( 0 ); transform: translateZ( 0 ); transition: -webkit-transform .25s ease-in-out; transition: transform .25s ease-in-out; transition: transform .25s ease-in-out, -webkit-transform .25s ease-in-out; }
.grow-large:hover, .grow-large:focus { -webkit-transform: scale( 1.2 ); transform: scale( 1.2 ); }
.grow-large:active { -webkit-transform: scale( .95 ); transform: scale( .95 ); }
/* Add pointer on hover */
.pointer:hover { cursor: pointer; }
-/* Add shadow on hover */
-.shadow-hover:hover, .shadow-hover:focus { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+/*
+ Add shadow on hover.
+
+ Performant box-shadow animation pattern from
+ http://tobiasahlin.com/blog/how-to-animate-box-shadow/
+*/
+.shadow-hover { cursor: pointer; position: relative; transition: all .5s cubic-bezier( .165, .84, .44, 1 ); }
+.shadow-hover::after { content: ''; box-shadow: 0 0 16px 2px rgba( 0, 0, 0, .2 ); opacity: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; transition: opacity .5s cubic-bezier( .165, .84, .44, 1 ); }
+.shadow-hover:hover::after, .shadow-hover:focus::after { opacity: 1; }
+/* Combine with classes in skins and skins-pseudo for
+ * many different transition possibilities. */
+.bg-animate, .bg-animate:hover, .bg-animate:focus { transition: background-color .15s ease-in-out; }
/*
Z-INDEX
@@ -1564,6 +1971,25 @@ code, .code { font-family: Consolas, monaco, monospace; }
.z-inherit { z-index: inherit; }
.z-initial { z-index: initial; }
.z-unset { z-index: unset; }
+/*
+
+ NESTED
+ Tachyons module for styling nested elements
+ that are generated by a cms.
+
+*/
+.nested-copy-line-height p, .nested-copy-line-height ul,
+.nested-copy-line-height ol { line-height: 1.5; }
+.nested-headline-line-height h1, .nested-headline-line-height h2,
+.nested-headline-line-height h3, .nested-headline-line-height h4,
+.nested-headline-line-height h5, .nested-headline-line-height h6 { line-height: 1.25; }
+.nested-list-reset ul, .nested-list-reset ol { padding-left: 0; margin-left: 0; list-style-type: none; }
+.nested-copy-indent p+p { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+.nested-copy-seperator p+p { margin-top: 1.5em; }
+.nested-img img { width: 100%; max-width: 100%; display: block; }
+.nested-links a { color: #357edd; transition: color .15s ease-in; }
+.nested-links a:hover { color: #96ccff; transition: color .15s ease-in; }
+.nested-links a:focus { color: #96ccff; transition: color .15s ease-in; }
/*
STYLES
@@ -1620,30 +2046,52 @@ code, .code { font-family: Consolas, monaco, monospace; }
/*
DEBUG CHILDREN
+ Docs: http://tachyons.io/docs/debug/
Just add the debug class to any element to see outlines on its
children.
*/
.debug * { outline: 1px solid gold; }
+.debug-white * { outline: 1px solid white; }
+.debug-black * { outline: 1px solid black; }
/*
DEBUG GRID
+ http://tachyons.io/docs/debug-grid/
Can be useful for debugging layout issues
or helping to make sure things line up perfectly.
Just tack one of these classes onto a parent element.
*/
-.debug-grid { background: transparent url( http://tachyons.io/img/8-grid-blue-alpha.png ) repeat top left; }
-.debug-grid-16 { background: transparent url( http://tachyons.io/img/16-grid-blue-alpha.png ) repeat top left; }
-.debug-grid-8-solid { background: white url( http://tachyons.io/img/8-grid.jpg ) repeat top left; }
-.debug-grid-16-solid { background: white url( http://tachyons.io/img/16-grid.png ) repeat top left; }
+.debug-grid { background: transparent url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg== ) repeat top left; }
+.debug-grid-16 { background: transparent url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC ) repeat top left; }
+.debug-grid-8-solid { background: white url( data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z ) repeat top left; }
+.debug-grid-16-solid { background: white url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII= ) repeat top left; }
/* Uncomment out the line below to help debug layout issues */
/* @import './_debug'; */
@media screen and (min-width: 30em) {
- .cover-ns { background-size: cover; }
- .contain-ns { background-size: contain; }
+ .aspect-ratio-ns { height: 0; position: relative; }
+ .aspect-ratio--16x9-ns { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-ns { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-ns { padding-bottom: 75%; }
+ .aspect-ratio--3x4-ns { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-ns { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-ns { padding-bottom: 150%; }
+ .aspect-ratio--8x5-ns { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-ns { padding-bottom: 160%; }
+ .aspect-ratio--7x5-ns { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-ns { padding-bottom: 140%; }
+ .aspect-ratio--1x1-ns { padding-bottom: 100%; }
+ .aspect-ratio--object-ns { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+ .cover-ns { background-size: cover !important; }
+ .contain-ns { background-size: contain !important; }
+ .bg-center-ns { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-ns { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-ns { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-ns { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-ns { background-repeat: no-repeat; background-position: center left; }
.outline-ns { outline: 1px solid; }
.outline-transparent-ns { outline: 1px solid transparent; }
.outline-0-ns { outline: 0; }
@@ -1678,11 +2126,11 @@ code, .code { font-family: Consolas, monaco, monospace; }
.br-0-ns { border-right-width: 0; }
.bb-0-ns { border-bottom-width: 0; }
.bl-0-ns { border-left-width: 0; }
- .shadow-1-ns { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-2-ns { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-3-ns { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-4-ns { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
- .shadow-5-ns { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-1-ns { box-shadow: 0 0 4px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-2-ns { box-shadow: 0 0 8px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-3-ns { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-4-ns { box-shadow: 2px 2px 8px 0 rgba( 0, 0, 0, .2 ); }
+ .shadow-5-ns { box-shadow: 4px 4px 8px 0 rgba( 0, 0, 0, .2 ); }
.top-0-ns { top: 0; }
.left-0-ns { left: 0; }
.right-0-ns { right: 0; }
@@ -1727,16 +2175,19 @@ code, .code { font-family: Consolas, monaco, monospace; }
.flex-column-ns { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
.flex-row-ns { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
.flex-wrap-ns { -ms-flex-wrap: wrap; flex-wrap: wrap; }
- .items-start-ns { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
- .items-end-ns { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
- .items-center-ns { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
- .items-baseline-ns { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
- .items-stretch-ns { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .flex-column-reverse-ns { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; }
+ .flex-row-reverse-ns { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; }
+ .flex-wrap-reverse-ns { -ms-flex-wrap: wrap-reverse; flex-wrap: wrap-reverse; }
+ .items-start-ns { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
+ .items-end-ns { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; }
+ .items-center-ns { -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
+ .items-baseline-ns { -webkit-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; }
+ .items-stretch-ns { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; }
.self-start-ns { -ms-flex-item-align: start; align-self: flex-start; }
.self-end-ns { -ms-flex-item-align: end; align-self: flex-end; }
- .self-center-ns { -ms-flex-item-align: center; align-self: center; }
+ .self-center-ns { -ms-flex-item-align: center; -ms-grid-row-align: center; align-self: center; }
.self-baseline-ns { -ms-flex-item-align: baseline; align-self: baseline; }
- .self-stretch-ns { -ms-flex-item-align: stretch; align-self: stretch; }
+ .self-stretch-ns { -ms-flex-item-align: stretch; -ms-grid-row-align: stretch; align-self: stretch; }
.justify-start-ns { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
.justify-end-ns { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
.justify-center-ns { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
@@ -1782,11 +2233,13 @@ code, .code { font-family: Consolas, monaco, monospace; }
.h-25-ns { height: 25%; }
.h-50-ns { height: 50%; }
.h-75-ns { height: 75%; }
+ .h-100-ns { height: 100%; }
+ .min-h-100-ns { min-height: 100%; }
.vh-25-ns { height: 25vh; }
.vh-50-ns { height: 50vh; }
.vh-75-ns { height: 75vh; }
.vh-100-ns { height: 100vh; }
- .h-100-ns { height: 100%; }
+ .min-vh-100-ns { min-height: 100vh; }
.h-auto-ns { height: auto; }
.h-inherit-ns { height: inherit; }
.tracked-ns { letter-spacing: .1em; }
@@ -1814,14 +2267,19 @@ code, .code { font-family: Consolas, monaco, monospace; }
.w-10-ns { width: 10%; }
.w-20-ns { width: 20%; }
.w-25-ns { width: 25%; }
+ .w-30-ns { width: 30%; }
.w-33-ns { width: 33%; }
.w-34-ns { width: 34%; }
.w-40-ns { width: 40%; }
.w-50-ns { width: 50%; }
.w-60-ns { width: 60%; }
+ .w-70-ns { width: 70%; }
.w-75-ns { width: 75%; }
.w-80-ns { width: 80%; }
+ .w-90-ns { width: 90%; }
.w-100-ns { width: 100%; }
+ .w-third-ns { width: calc( 100% / 3 ); }
+ .w-two-thirds-ns { width: calc( 100% / 1.5 ); }
.w-auto-ns { width: auto; }
.overflow-visible-ns { overflow: visible; }
.overflow-hidden-ns { overflow: hidden; }
@@ -1839,6 +2297,13 @@ code, .code { font-family: Consolas, monaco, monospace; }
.relative-ns { position: relative; }
.absolute-ns { position: absolute; }
.fixed-ns { position: fixed; }
+ .rotate-45-ns { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-ns { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-ns { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-ns { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-ns { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-ns { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-ns { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
.pa0-ns { padding: 0; }
.pa1-ns { padding: .25rem; }
.pa2-ns { padding: .5rem; }
@@ -1951,6 +2416,41 @@ code, .code { font-family: Consolas, monaco, monospace; }
.mh5-ns { margin-left: 4rem; margin-right: 4rem; }
.mh6-ns { margin-left: 8rem; margin-right: 8rem; }
.mh7-ns { margin-left: 16rem; margin-right: 16rem; }
+ .na1-ns { margin: -.25rem; }
+ .na2-ns { margin: -.5rem; }
+ .na3-ns { margin: -1rem; }
+ .na4-ns { margin: -2rem; }
+ .na5-ns { margin: -4rem; }
+ .na6-ns { margin: -8rem; }
+ .na7-ns { margin: -16rem; }
+ .nl1-ns { margin-left: -.25rem; }
+ .nl2-ns { margin-left: -.5rem; }
+ .nl3-ns { margin-left: -1rem; }
+ .nl4-ns { margin-left: -2rem; }
+ .nl5-ns { margin-left: -4rem; }
+ .nl6-ns { margin-left: -8rem; }
+ .nl7-ns { margin-left: -16rem; }
+ .nr1-ns { margin-right: -.25rem; }
+ .nr2-ns { margin-right: -.5rem; }
+ .nr3-ns { margin-right: -1rem; }
+ .nr4-ns { margin-right: -2rem; }
+ .nr5-ns { margin-right: -4rem; }
+ .nr6-ns { margin-right: -8rem; }
+ .nr7-ns { margin-right: -16rem; }
+ .nb1-ns { margin-bottom: -.25rem; }
+ .nb2-ns { margin-bottom: -.5rem; }
+ .nb3-ns { margin-bottom: -1rem; }
+ .nb4-ns { margin-bottom: -2rem; }
+ .nb5-ns { margin-bottom: -4rem; }
+ .nb6-ns { margin-bottom: -8rem; }
+ .nb7-ns { margin-bottom: -16rem; }
+ .nt1-ns { margin-top: -.25rem; }
+ .nt2-ns { margin-top: -.5rem; }
+ .nt3-ns { margin-top: -1rem; }
+ .nt4-ns { margin-top: -2rem; }
+ .nt5-ns { margin-top: -4rem; }
+ .nt6-ns { margin-top: -8rem; }
+ .nt7-ns { margin-top: -16rem; }
.strike-ns { text-decoration: line-through; }
.underline-ns { text-decoration: underline; }
.no-underline-ns { text-decoration: none; }
@@ -1969,12 +2469,14 @@ code, .code { font-family: Consolas, monaco, monospace; }
.f4-ns { font-size: 1.25rem; }
.f5-ns { font-size: 1rem; }
.f6-ns { font-size: .875rem; }
+ .f7-ns { font-size: .75rem; }
.measure-ns { max-width: 30em; }
.measure-wide-ns { max-width: 34em; }
.measure-narrow-ns { max-width: 20em; }
.indent-ns { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
.small-caps-ns { font-variant: small-caps; }
.truncate-ns { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+ .center-ns { margin-right: auto; margin-left: auto; }
.clip-ns { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
.ws-normal-ns { white-space: normal; }
.nowrap-ns { white-space: nowrap; }
@@ -1985,14 +2487,29 @@ code, .code { font-family: Consolas, monaco, monospace; }
.v-btm-ns { vertical-align: bottom; }
}
@media screen and (min-width: 30em) and (max-width: 60em) {
- .cover-m { background-size: cover; }
- .contain-m { background-size: contain; }
+ .aspect-ratio-m { height: 0; position: relative; }
+ .aspect-ratio--16x9-m { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-m { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-m { padding-bottom: 75%; }
+ .aspect-ratio--3x4-m { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-m { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-m { padding-bottom: 150%; }
+ .aspect-ratio--8x5-m { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-m { padding-bottom: 160%; }
+ .aspect-ratio--7x5-m { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-m { padding-bottom: 140%; }
+ .aspect-ratio--1x1-m { padding-bottom: 100%; }
+ .aspect-ratio--object-m { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+ .cover-m { background-size: cover !important; }
+ .contain-m { background-size: contain !important; }
+ .bg-center-m { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-m { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-m { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-m { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-m { background-repeat: no-repeat; background-position: center left; }
.outline-m { outline: 1px solid; }
.outline-transparent-m { outline: 1px solid transparent; }
.outline-0-m { outline: 0; }
- .outline-l { outline: 1px solid; }
- .outline-transparent-l { outline: 1px solid transparent; }
- .outline-0-l { outline: 0; }
.ba-m { border-style: solid; border-width: 1px; }
.bt-m { border-top-style: solid; border-top-width: 1px; }
.br-m { border-right-style: solid; border-right-width: 1px; }
@@ -2024,11 +2541,11 @@ code, .code { font-family: Consolas, monaco, monospace; }
.br-0-m { border-right-width: 0; }
.bb-0-m { border-bottom-width: 0; }
.bl-0-m { border-left-width: 0; }
- .shadow-1-m { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-2-m { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-3-m { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-4-m { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
- .shadow-5-m { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-1-m { box-shadow: 0 0 4px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-2-m { box-shadow: 0 0 8px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-3-m { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-4-m { box-shadow: 2px 2px 8px 0 rgba( 0, 0, 0, .2 ); }
+ .shadow-5-m { box-shadow: 4px 4px 8px 0 rgba( 0, 0, 0, .2 ); }
.top-0-m { top: 0; }
.left-0-m { left: 0; }
.right-0-m { right: 0; }
@@ -2073,16 +2590,19 @@ code, .code { font-family: Consolas, monaco, monospace; }
.flex-column-m { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
.flex-row-m { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
.flex-wrap-m { -ms-flex-wrap: wrap; flex-wrap: wrap; }
- .items-start-m { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
- .items-end-m { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
- .items-center-m { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
- .items-baseline-m { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
- .items-stretch-m { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .flex-column-reverse-m { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; }
+ .flex-row-reverse-m { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; }
+ .flex-wrap-reverse-m { -ms-flex-wrap: wrap-reverse; flex-wrap: wrap-reverse; }
+ .items-start-m { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
+ .items-end-m { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; }
+ .items-center-m { -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
+ .items-baseline-m { -webkit-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; }
+ .items-stretch-m { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; }
.self-start-m { -ms-flex-item-align: start; align-self: flex-start; }
.self-end-m { -ms-flex-item-align: end; align-self: flex-end; }
- .self-center-m { -ms-flex-item-align: center; align-self: center; }
+ .self-center-m { -ms-flex-item-align: center; -ms-grid-row-align: center; align-self: center; }
.self-baseline-m { -ms-flex-item-align: baseline; align-self: baseline; }
- .self-stretch-m { -ms-flex-item-align: stretch; align-self: stretch; }
+ .self-stretch-m { -ms-flex-item-align: stretch; -ms-grid-row-align: stretch; align-self: stretch; }
.justify-start-m { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
.justify-end-m { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
.justify-center-m { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
@@ -2129,10 +2649,12 @@ code, .code { font-family: Consolas, monaco, monospace; }
.h-50-m { height: 50%; }
.h-75-m { height: 75%; }
.h-100-m { height: 100%; }
+ .min-h-100-m { min-height: 100%; }
.vh-25-m { height: 25vh; }
.vh-50-m { height: 50vh; }
.vh-75-m { height: 75vh; }
.vh-100-m { height: 100vh; }
+ .min-vh-100-m { min-height: 100vh; }
.h-auto-m { height: auto; }
.h-inherit-m { height: inherit; }
.tracked-m { letter-spacing: .1em; }
@@ -2160,14 +2682,19 @@ code, .code { font-family: Consolas, monaco, monospace; }
.w-10-m { width: 10%; }
.w-20-m { width: 20%; }
.w-25-m { width: 25%; }
+ .w-30-m { width: 30%; }
.w-33-m { width: 33%; }
.w-34-m { width: 34%; }
.w-40-m { width: 40%; }
.w-50-m { width: 50%; }
.w-60-m { width: 60%; }
+ .w-70-m { width: 70%; }
.w-75-m { width: 75%; }
.w-80-m { width: 80%; }
+ .w-90-m { width: 90%; }
.w-100-m { width: 100%; }
+ .w-third-m { width: calc( 100% / 3 ); }
+ .w-two-thirds-m { width: calc( 100% / 1.5 ); }
.w-auto-m { width: auto; }
.overflow-visible-m { overflow: visible; }
.overflow-hidden-m { overflow: hidden; }
@@ -2185,6 +2712,13 @@ code, .code { font-family: Consolas, monaco, monospace; }
.relative-m { position: relative; }
.absolute-m { position: absolute; }
.fixed-m { position: fixed; }
+ .rotate-45-m { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-m { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-m { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-m { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-m { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-m { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-m { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
.pa0-m { padding: 0; }
.pa1-m { padding: .25rem; }
.pa2-m { padding: .5rem; }
@@ -2297,6 +2831,41 @@ code, .code { font-family: Consolas, monaco, monospace; }
.mh5-m { margin-left: 4rem; margin-right: 4rem; }
.mh6-m { margin-left: 8rem; margin-right: 8rem; }
.mh7-m { margin-left: 16rem; margin-right: 16rem; }
+ .na1-m { margin: -.25rem; }
+ .na2-m { margin: -.5rem; }
+ .na3-m { margin: -1rem; }
+ .na4-m { margin: -2rem; }
+ .na5-m { margin: -4rem; }
+ .na6-m { margin: -8rem; }
+ .na7-m { margin: -16rem; }
+ .nl1-m { margin-left: -.25rem; }
+ .nl2-m { margin-left: -.5rem; }
+ .nl3-m { margin-left: -1rem; }
+ .nl4-m { margin-left: -2rem; }
+ .nl5-m { margin-left: -4rem; }
+ .nl6-m { margin-left: -8rem; }
+ .nl7-m { margin-left: -16rem; }
+ .nr1-m { margin-right: -.25rem; }
+ .nr2-m { margin-right: -.5rem; }
+ .nr3-m { margin-right: -1rem; }
+ .nr4-m { margin-right: -2rem; }
+ .nr5-m { margin-right: -4rem; }
+ .nr6-m { margin-right: -8rem; }
+ .nr7-m { margin-right: -16rem; }
+ .nb1-m { margin-bottom: -.25rem; }
+ .nb2-m { margin-bottom: -.5rem; }
+ .nb3-m { margin-bottom: -1rem; }
+ .nb4-m { margin-bottom: -2rem; }
+ .nb5-m { margin-bottom: -4rem; }
+ .nb6-m { margin-bottom: -8rem; }
+ .nb7-m { margin-bottom: -16rem; }
+ .nt1-m { margin-top: -.25rem; }
+ .nt2-m { margin-top: -.5rem; }
+ .nt3-m { margin-top: -1rem; }
+ .nt4-m { margin-top: -2rem; }
+ .nt5-m { margin-top: -4rem; }
+ .nt6-m { margin-top: -8rem; }
+ .nt7-m { margin-top: -16rem; }
.strike-m { text-decoration: line-through; }
.underline-m { text-decoration: underline; }
.no-underline-m { text-decoration: none; }
@@ -2315,12 +2884,14 @@ code, .code { font-family: Consolas, monaco, monospace; }
.f4-m { font-size: 1.25rem; }
.f5-m { font-size: 1rem; }
.f6-m { font-size: .875rem; }
+ .f7-m { font-size: .75rem; }
.measure-m { max-width: 30em; }
.measure-wide-m { max-width: 34em; }
.measure-narrow-m { max-width: 20em; }
.indent-m { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
.small-caps-m { font-variant: small-caps; }
.truncate-m { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+ .center-m { margin-right: auto; margin-left: auto; }
.clip-m { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
.ws-normal-m { white-space: normal; }
.nowrap-m { white-space: nowrap; }
@@ -2331,8 +2902,29 @@ code, .code { font-family: Consolas, monaco, monospace; }
.v-btm-m { vertical-align: bottom; }
}
@media screen and (min-width: 60em) {
- .cover-l { background-size: cover; }
- .contain-l { background-size: contain; }
+ .aspect-ratio-l { height: 0; position: relative; }
+ .aspect-ratio--16x9-l { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-l { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-l { padding-bottom: 75%; }
+ .aspect-ratio--3x4-l { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-l { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-l { padding-bottom: 150%; }
+ .aspect-ratio--8x5-l { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-l { padding-bottom: 160%; }
+ .aspect-ratio--7x5-l { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-l { padding-bottom: 140%; }
+ .aspect-ratio--1x1-l { padding-bottom: 100%; }
+ .aspect-ratio--object-l { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+ .cover-l { background-size: cover !important; }
+ .contain-l { background-size: contain !important; }
+ .bg-center-l { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-l { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-l { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-l { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-l { background-repeat: no-repeat; background-position: center left; }
+ .outline-l { outline: 1px solid; }
+ .outline-transparent-l { outline: 1px solid transparent; }
+ .outline-0-l { outline: 0; }
.ba-l { border-style: solid; border-width: 1px; }
.bt-l { border-top-style: solid; border-top-width: 1px; }
.br-l { border-right-style: solid; border-right-width: 1px; }
@@ -2346,7 +2938,7 @@ code, .code { font-family: Consolas, monaco, monospace; }
.br4-l { border-radius: 1rem; }
.br-100-l { border-radius: 100%; }
.br-pill-l { border-radius: 9999px; }
- .br--bottom-l { border-radius-top-left: 0; border-radius-top-right: 0; }
+ .br--bottom-l { border-top-left-radius: 0; border-top-right-radius: 0; }
.br--top-l { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.br--right-l { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.br--left-l { border-top-right-radius: 0; border-bottom-right-radius: 0; }
@@ -2364,11 +2956,11 @@ code, .code { font-family: Consolas, monaco, monospace; }
.br-0-l { border-right-width: 0; }
.bb-0-l { border-bottom-width: 0; }
.bl-0-l { border-left-width: 0; }
- .shadow-1-l { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-2-l { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-3-l { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
- .shadow-4-l { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
- .shadow-5-l { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-1-l { box-shadow: 0 0 4px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-2-l { box-shadow: 0 0 8px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-3-l { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, .2 ); }
+ .shadow-4-l { box-shadow: 2px 2px 8px 0 rgba( 0, 0, 0, .2 ); }
+ .shadow-5-l { box-shadow: 4px 4px 8px 0 rgba( 0, 0, 0, .2 ); }
.top-0-l { top: 0; }
.left-0-l { left: 0; }
.right-0-l { right: 0; }
@@ -2413,16 +3005,19 @@ code, .code { font-family: Consolas, monaco, monospace; }
.flex-column-l { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
.flex-row-l { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
.flex-wrap-l { -ms-flex-wrap: wrap; flex-wrap: wrap; }
- .items-start-l { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
- .items-end-l { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
- .items-center-l { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
- .items-baseline-l { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
- .items-stretch-l { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .flex-column-reverse-l { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; }
+ .flex-row-reverse-l { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; }
+ .flex-wrap-reverse-l { -ms-flex-wrap: wrap-reverse; flex-wrap: wrap-reverse; }
+ .items-start-l { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
+ .items-end-l { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; }
+ .items-center-l { -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
+ .items-baseline-l { -webkit-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; }
+ .items-stretch-l { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; }
.self-start-l { -ms-flex-item-align: start; align-self: flex-start; }
.self-end-l { -ms-flex-item-align: end; align-self: flex-end; }
- .self-center-l { -ms-flex-item-align: center; align-self: center; }
+ .self-center-l { -ms-flex-item-align: center; -ms-grid-row-align: center; align-self: center; }
.self-baseline-l { -ms-flex-item-align: baseline; align-self: baseline; }
- .self-stretch-l { -ms-flex-item-align: stretch; align-self: stretch; }
+ .self-stretch-l { -ms-flex-item-align: stretch; -ms-grid-row-align: stretch; align-self: stretch; }
.justify-start-l { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
.justify-end-l { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
.justify-center-l { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
@@ -2469,10 +3064,12 @@ code, .code { font-family: Consolas, monaco, monospace; }
.h-50-l { height: 50%; }
.h-75-l { height: 75%; }
.h-100-l { height: 100%; }
+ .min-h-100-l { min-height: 100%; }
.vh-25-l { height: 25vh; }
.vh-50-l { height: 50vh; }
.vh-75-l { height: 75vh; }
.vh-100-l { height: 100vh; }
+ .min-vh-100-l { min-height: 100vh; }
.h-auto-l { height: auto; }
.h-inherit-l { height: inherit; }
.tracked-l { letter-spacing: .1em; }
@@ -2500,14 +3097,19 @@ code, .code { font-family: Consolas, monaco, monospace; }
.w-10-l { width: 10%; }
.w-20-l { width: 20%; }
.w-25-l { width: 25%; }
+ .w-30-l { width: 30%; }
.w-33-l { width: 33%; }
.w-34-l { width: 34%; }
.w-40-l { width: 40%; }
.w-50-l { width: 50%; }
.w-60-l { width: 60%; }
+ .w-70-l { width: 70%; }
.w-75-l { width: 75%; }
.w-80-l { width: 80%; }
+ .w-90-l { width: 90%; }
.w-100-l { width: 100%; }
+ .w-third-l { width: calc( 100% / 3 ); }
+ .w-two-thirds-l { width: calc( 100% / 1.5 ); }
.w-auto-l { width: auto; }
.overflow-visible-l { overflow: visible; }
.overflow-hidden-l { overflow: hidden; }
@@ -2525,6 +3127,13 @@ code, .code { font-family: Consolas, monaco, monospace; }
.relative-l { position: relative; }
.absolute-l { position: absolute; }
.fixed-l { position: fixed; }
+ .rotate-45-l { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-l { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-l { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-l { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-l { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-l { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-l { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
.pa0-l { padding: 0; }
.pa1-l { padding: .25rem; }
.pa2-l { padding: .5rem; }
@@ -2637,6 +3246,41 @@ code, .code { font-family: Consolas, monaco, monospace; }
.mh5-l { margin-left: 4rem; margin-right: 4rem; }
.mh6-l { margin-left: 8rem; margin-right: 8rem; }
.mh7-l { margin-left: 16rem; margin-right: 16rem; }
+ .na1-l { margin: -.25rem; }
+ .na2-l { margin: -.5rem; }
+ .na3-l { margin: -1rem; }
+ .na4-l { margin: -2rem; }
+ .na5-l { margin: -4rem; }
+ .na6-l { margin: -8rem; }
+ .na7-l { margin: -16rem; }
+ .nl1-l { margin-left: -.25rem; }
+ .nl2-l { margin-left: -.5rem; }
+ .nl3-l { margin-left: -1rem; }
+ .nl4-l { margin-left: -2rem; }
+ .nl5-l { margin-left: -4rem; }
+ .nl6-l { margin-left: -8rem; }
+ .nl7-l { margin-left: -16rem; }
+ .nr1-l { margin-right: -.25rem; }
+ .nr2-l { margin-right: -.5rem; }
+ .nr3-l { margin-right: -1rem; }
+ .nr4-l { margin-right: -2rem; }
+ .nr5-l { margin-right: -4rem; }
+ .nr6-l { margin-right: -8rem; }
+ .nr7-l { margin-right: -16rem; }
+ .nb1-l { margin-bottom: -.25rem; }
+ .nb2-l { margin-bottom: -.5rem; }
+ .nb3-l { margin-bottom: -1rem; }
+ .nb4-l { margin-bottom: -2rem; }
+ .nb5-l { margin-bottom: -4rem; }
+ .nb6-l { margin-bottom: -8rem; }
+ .nb7-l { margin-bottom: -16rem; }
+ .nt1-l { margin-top: -.25rem; }
+ .nt2-l { margin-top: -.5rem; }
+ .nt3-l { margin-top: -1rem; }
+ .nt4-l { margin-top: -2rem; }
+ .nt5-l { margin-top: -4rem; }
+ .nt6-l { margin-top: -8rem; }
+ .nt7-l { margin-top: -16rem; }
.strike-l { text-decoration: line-through; }
.underline-l { text-decoration: underline; }
.no-underline-l { text-decoration: none; }
@@ -2655,12 +3299,14 @@ code, .code { font-family: Consolas, monaco, monospace; }
.f4-l { font-size: 1.25rem; }
.f5-l { font-size: 1rem; }
.f6-l { font-size: .875rem; }
+ .f7-l { font-size: .75rem; }
.measure-l { max-width: 30em; }
.measure-wide-l { max-width: 34em; }
.measure-narrow-l { max-width: 20em; }
.indent-l { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
.small-caps-l { font-variant: small-caps; }
.truncate-l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+ .center-l { margin-right: auto; margin-left: auto; }
.clip-l { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
.ws-normal-l { white-space: normal; }
.nowrap-l { white-space: nowrap; }
diff --git a/css/tachyons.min.css b/css/tachyons.min.css
index b6671ed41..d8638e679 100644
--- a/css/tachyons.min.css
+++ b/css/tachyons.min.css
@@ -1,2 +1,3 @@
-/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.border-box,article,body,code,dd,div,dl,dt,fieldset,footer,form,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],li,main,ol,p,pre,section,textarea,ul{box-sizing:border-box}img{max-width:100%}.cover{background-size:cover}.contain{background-size:contain}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.0125)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.0125)}.b--dark-red{border-color:#f00008}.b--red{border-color:#ff3223}.b--orange{border-color:#f3a801}.b--gold{border-color:#f2c800}.b--yellow{border-color:#ffde37}.b--purple{border-color:#7d5da9}.b--light-purple{border-color:#8d4f92}.b--hot-pink{border-color:#d62288}.b--dark-pink{border-color:#c64774}.b--pink{border-color:#f49cc8}.b--dark-green{border-color:#006c71}.b--green{border-color:#41d69f}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fff8d5}.b--light-pink{border-color:#efa4b8}.b--light-yellow{border-color:#f3dd70}.b--light-red{border-color:#ffd3c0}.b--transparent{border-color:transparent}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{top:0;right:0;bottom:0;left:0}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column,.flex-row{-webkit-box-direction:normal}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.items-end{-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.items-center{-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.items-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;-ms-grid-row-align:baseline;align-items:baseline}.items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.self-start{-ms-flex-item-align:start;align-self:flex-start}.self-end{-ms-flex-item-align:end;align-self:flex-end}.self-center{-ms-flex-item-align:center;align-self:center}.self-baseline{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch{-ms-flex-item-align:stretch;align-self:stretch}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around{-ms-flex-pack:distribute;justify-content:space-around}.content-start{-ms-flex-line-pack:start;align-content:flex-start}.content-end{-ms-flex-line-pack:end;align-content:flex-end}.content-center{-ms-flex-line-pack:center;align-content:center}.content-between{-ms-flex-line-pack:justify;align-content:space-between}.content-around{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch{-ms-flex-line-pack:stretch;align-content:stretch}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}.normal{font-weight:400}.b{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}.input-reset{-webkit-appearance:none;-moz-appearance:none}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}.lh-solid{line-height:1}.lh-title{line-height:1.25}.lh-copy{line-height:1.5}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{-webkit-transition:color .15s ease-in;transition:color .15s ease-in}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-75{width:75%}.w-80{width:80%}.w-100{width:100%}.w-auto{width:auto}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.mid-gray{color:#555}.gray{color:#777}.silver{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#f00008}.red{color:#ff3223}.orange{color:#f3a801}.gold{color:#f2c800}.yellow{color:#ffde37}.purple{color:#7d5da9}.light-purple{color:#8d4f92}.hot-pink{color:#d62288}.dark-pink{color:#c64774}.pink{color:#f49cc8}.dark-green{color:#006c71}.green{color:#41d69f}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fff8d5}.light-pink{color:#efa4b8}.light-yellow{color:#f3dd70}.light-red{color:#ffd3c0}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#f00008}.bg-red{background-color:#ff3223}.bg-orange{background-color:#f3a801}.bg-gold{background-color:#f2c800}.bg-yellow{background-color:#ffde37}.bg-purple{background-color:#7d5da9}.bg-light-purple{background-color:#8d4f92}.bg-hot-pink{background-color:#d62288}.bg-dark-pink{background-color:#c64774}.bg-pink{background-color:#f49cc8}.bg-dark-green{background-color:#006c71}.bg-green{background-color:#41d69f}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fff8d5}.bg-light-pink{background-color:#efa4b8}.bg-light-yellow{background-color:#f3dd70}.bg-light-red{background-color:#ffd3c0}.hover-black:hover{color:#000}.hover-near-black:hover{color:#111}.hover-dark-gray:hover{color:#333}.hover-mid-gray:hover{color:#555}.hover-gray:hover{color:#777}.hover-silver:hover{color:#999}.hover-light-silver:hover{color:#aaa}.hover-moon-gray:hover{color:#ccc}.hover-light-gray:hover{color:#eee}.hover-near-white:hover{color:#f4f4f4}.hover-white:hover{color:#fff}.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:hover{background-color:transparent}.hover-bg-dark-red:hover{background-color:#f00008}.hover-bg-red:hover{background-color:#ff3223}.hover-bg-orange:hover{background-color:#f3a801}.hover-bg-gold:hover{background-color:#f2c800}.hover-bg-yellow:hover{background-color:#ffde37}.hover-bg-purple:hover{background-color:#7d5da9}.hover-bg-light-purple:hover{background-color:#8d4f92}.hover-bg-hot-pink:hover{background-color:#d62288}.hover-bg-dark-pink:hover{background-color:#c64774}.hover-bg-pink:hover{background-color:#f49cc8}.hover-bg-dark-green:hover{background-color:#006c71}.hover-bg-green:hover{background-color:#41d69f}.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:hover{background-color:#fff8d5}.hover-bg-light-pink:hover{background-color:#efa4b8}.hover-bg-light-yellow:hover{background-color:#f3dd70}.hover-bg-light-red:hover{background-color:#ffd3c0}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-top:0;padding-bottom:0}.pv1{padding-top:.25rem;padding-bottom:.25rem}.pv2{padding-top:.5rem;padding-bottom:.5rem}.pv3{padding-top:1rem;padding-bottom:1rem}.pv4{padding-top:2rem;padding-bottom:2rem}.pv5{padding-top:4rem;padding-bottom:4rem}.pv6{padding-top:8rem;padding-bottom:8rem}.pv7{padding-top:16rem;padding-bottom:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-top:0;margin-bottom:0}.mv1{margin-top:.25rem;margin-bottom:.25rem}.mv2{margin-top:.5rem;margin-bottom:.5rem}.mv3{margin-top:1rem;margin-bottom:1rem}.mv4{margin-top:2rem;margin-bottom:2rem}.mv5{margin-top:4rem;margin-bottom:4rem}.mv6{margin-top:8rem;margin-bottom:8rem}.mv7{margin-top:16rem;margin-bottom:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps{font-variant:small-caps}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:6}.overflow-container{overflow-y:scroll}.center{margin-right:auto;margin-left:auto}.clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}.dim{opacity:1}.dim,.dim:focus,.dim:hover{-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;-webkit-transition:opacity .15s ease-out;transition:opacity .15s ease-out}.hide-child .child{opacity:0;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition:-webkit-transform .25s ease-out;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.grow:active{-webkit-transform:scale(.9);transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition:-webkit-transform .25s ease-in-out;transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(.95);transform:scale(.95)}.pointer:hover{cursor:pointer}.shadow-hover:focus,.shadow-hover:hover{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:7}.z-9999{z-index:8}.z-max{z-index:9}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.debug *{outline:1px solid gold}.debug-grid{background:transparent url(http://tachyons.io/img/8-grid-blue-alpha.png) repeat 0 0}.debug-grid-16{background:transparent url(http://tachyons.io/img/16-grid-blue-alpha.png) repeat 0 0}.debug-grid-8-solid{background:#fff url(http://tachyons.io/img/8-grid.jpg) repeat 0 0}.debug-grid-16-solid{background:#fff url(http://tachyons.io/img/16-grid.png) repeat 0 0}@media screen and (min-width:30em){.cover-ns{background-size:cover}.contain-ns{background-size:contain}.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{top:0;right:0;bottom:0;left:0}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.flex-ns{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-ns{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-ns{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-ns{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-ns{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-row-ns{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-ns{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start-ns{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.items-end-ns{-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.items-center-ns{-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.items-baseline-ns{-webkit-box-align:baseline;-ms-flex-align:baseline;-ms-grid-row-align:baseline;align-items:baseline}.items-stretch-ns{-webkit-box-align:stretch;-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.self-start-ns{-ms-flex-item-align:start;align-self:flex-start}.self-end-ns{-ms-flex-item-align:end;align-self:flex-end}.self-center-ns{-ms-flex-item-align:center;align-self:center}.self-baseline-ns{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-ns{-ms-flex-item-align:stretch;align-self:stretch}.justify-start-ns{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-ns{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-ns{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-ns{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-ns{-ms-flex-pack:distribute;justify-content:space-around}.content-start-ns{-ms-flex-line-pack:start;align-content:flex-start}.content-end-ns{-ms-flex-line-pack:end;align-content:flex-end}.content-center-ns{-ms-flex-line-pack:center;align-content:center}.content-between-ns{-ms-flex-line-pack:justify;align-content:space-between}.content-around-ns{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-ns{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-ns{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-ns{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-ns{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-ns{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-ns{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-ns{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-ns{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-ns{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-ns{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-ns{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.fl-ns{float:left}.fl-ns,.fr-ns{display:inline}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.h-100-ns{height:100%}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-100-ns{width:100%}.w-auto-ns{width:auto}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-top:0;padding-bottom:0}.pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.pv3-ns{padding-top:1rem;padding-bottom:1rem}.pv4-ns{padding-top:2rem;padding-bottom:2rem}.pv5-ns{padding-top:4rem;padding-bottom:4rem}.pv6-ns{padding-top:8rem;padding-bottom:8rem}.pv7-ns{padding-top:16rem;padding-bottom:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-top:0;margin-bottom:0}.mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.mv3-ns{margin-top:1rem;margin-bottom:1rem}.mv4-ns{margin-top:2rem;margin-bottom:2rem}.mv5-ns{margin-top:4rem;margin-bottom:4rem}.mv6-ns{margin-top:8rem;margin-bottom:8rem}.mv7-ns{margin-top:16rem;margin-bottom:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-ns{font-variant:small-caps}.truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clip-ns{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.cover-m{background-size:cover}.contain-m{background-size:contain}.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{top:0;right:0;bottom:0;left:0}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.flex-m{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-m{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-m{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-m{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-m{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-m,.flex-row-m{-webkit-box-direction:normal}.flex-row-m{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-m{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start-m{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.items-end-m{-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.items-center-m{-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.items-baseline-m{-webkit-box-align:baseline;-ms-flex-align:baseline;-ms-grid-row-align:baseline;align-items:baseline}.items-stretch-m{-webkit-box-align:stretch;-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.self-start-m{-ms-flex-item-align:start;align-self:flex-start}.self-end-m{-ms-flex-item-align:end;align-self:flex-end}.self-center-m{-ms-flex-item-align:center;align-self:center}.self-baseline-m{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-m{-ms-flex-item-align:stretch;align-self:stretch}.justify-start-m{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-m{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-m{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-m{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-m{-ms-flex-pack:distribute;justify-content:space-around}.content-start-m{-ms-flex-line-pack:start;align-content:flex-start}.content-end-m{-ms-flex-line-pack:end;align-content:flex-end}.content-center-m{-ms-flex-line-pack:center;align-content:center}.content-between-m{-ms-flex-line-pack:justify;align-content:space-between}.content-around-m{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-m{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-m{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-m{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-m{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-m{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-m{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-m{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-m{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-m{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-m{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-m{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.fl-m{float:left}.fl-m,.fr-m{display:inline}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-75-m{width:75%}.w-80-m{width:80%}.w-100-m{width:100%}.w-auto-m{width:auto}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-top:0;padding-bottom:0}.pv1-m{padding-top:.25rem;padding-bottom:.25rem}.pv2-m{padding-top:.5rem;padding-bottom:.5rem}.pv3-m{padding-top:1rem;padding-bottom:1rem}.pv4-m{padding-top:2rem;padding-bottom:2rem}.pv5-m{padding-top:4rem;padding-bottom:4rem}.pv6-m{padding-top:8rem;padding-bottom:8rem}.pv7-m{padding-top:16rem;padding-bottom:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-top:0;margin-bottom:0}.mv1-m{margin-top:.25rem;margin-bottom:.25rem}.mv2-m{margin-top:.5rem;margin-bottom:.5rem}.mv3-m{margin-top:1rem;margin-bottom:1rem}.mv4-m{margin-top:2rem;margin-bottom:2rem}.mv5-m{margin-top:4rem;margin-bottom:4rem}.mv6-m{margin-top:8rem;margin-bottom:8rem}.mv7-m{margin-top:16rem;margin-bottom:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-m{font-variant:small-caps}.truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clip-m{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.cover-l{background-size:cover}.contain-l{background-size:contain}.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-radius-top-left:0;border-radius-top-right:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{top:0;right:0;bottom:0;left:0}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.flex-l{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-l{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-l{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-l{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-l{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-l,.flex-row-l{-webkit-box-direction:normal}.flex-row-l{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-l{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start-l{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.items-end-l{-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.items-center-l{-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.items-baseline-l{-webkit-box-align:baseline;-ms-flex-align:baseline;-ms-grid-row-align:baseline;align-items:baseline}.items-stretch-l{-webkit-box-align:stretch;-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.self-start-l{-ms-flex-item-align:start;align-self:flex-start}.self-end-l{-ms-flex-item-align:end;align-self:flex-end}.self-center-l{-ms-flex-item-align:center;align-self:center}.self-baseline-l{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-l{-ms-flex-item-align:stretch;align-self:stretch}.justify-start-l{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-l{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-l{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-l{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-l{-ms-flex-pack:distribute;justify-content:space-around}.content-start-l{-ms-flex-line-pack:start;align-content:flex-start}.content-end-l{-ms-flex-line-pack:end;align-content:flex-end}.content-center-l{-ms-flex-line-pack:center;align-content:center}.content-between-l{-ms-flex-line-pack:justify;align-content:space-between}.content-around-l{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-l{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-l{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-l{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-l{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-l{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-l{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-l{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-l{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-l{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-l{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-l{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.fl-l{float:left}.fl-l,.fr-l{display:inline}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-75-l{width:75%}.w-80-l{width:80%}.w-100-l{width:100%}.w-auto-l{width:auto}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-top:0;padding-bottom:0}.pv1-l{padding-top:.25rem;padding-bottom:.25rem}.pv2-l{padding-top:.5rem;padding-bottom:.5rem}.pv3-l{padding-top:1rem;padding-bottom:1rem}.pv4-l{padding-top:2rem;padding-bottom:2rem}.pv5-l{padding-top:4rem;padding-bottom:4rem}.pv6-l{padding-top:8rem;padding-bottom:8rem}.pv7-l{padding-top:16rem;padding-bottom:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-top:0;margin-bottom:0}.mv1-l{margin-top:.25rem;margin-bottom:.25rem}.mv2-l{margin-top:.5rem;margin-bottom:.5rem}.mv3-l{margin-top:1rem;margin-bottom:1rem}.mv4-l{margin-top:2rem;margin-bottom:2rem}.mv5-l{margin-top:4rem;margin-bottom:4rem}.mv6-l{margin-top:8rem;margin-bottom:8rem}.mv7-l{margin-top:16rem;margin-bottom:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-l{font-variant:small-caps}.truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clip-l{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}
+/*! TACHYONS v4.7.3 | http://tachyons.io */
+/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}/* 1 */ [type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}/* 1 */ menu,details{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.border-box,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-repeat:no-repeat;background-position:0}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.0125)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.0125)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{top:0;right:0;bottom:0;left:0}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column,.flex-row{-webkit-box-direction:normal}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start{-ms-flex-item-align:start;align-self:flex-start}.self-end{-ms-flex-item-align:end;align-self:flex-end}.self-center{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around{-ms-flex-pack:distribute;justify-content:space-around}.content-start{-ms-flex-line-pack:start;align-content:flex-start}.content-end{-ms-flex-line-pack:end;align-content:flex-end}.content-center{-ms-flex-line-pack:center;align-content:center}.content-between{-ms-flex-line-pack:justify;align-content:space-between}.content-around{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch{-ms-flex-line-pack:stretch;align-content:stretch}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}.normal{font-weight:400}.b{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}.lh-solid{line-height:1}.lh-title{line-height:1.25}.lh-copy{line-height:1.5}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:color .15s ease-in}.link:focus{outline:1px dotted currentColor}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.33333%}.w-two-thirds{width:66.66667%}.w-auto{width:auto}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.mid-gray{color:#555}.gray{color:#777}.silver{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-dark-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-top:0;padding-bottom:0}.pv1{padding-top:.25rem;padding-bottom:.25rem}.pv2{padding-top:.5rem;padding-bottom:.5rem}.pv3{padding-top:1rem;padding-bottom:1rem}.pv4{padding-top:2rem;padding-bottom:2rem}.pv5{padding-top:4rem;padding-bottom:4rem}.pv6{padding-top:8rem;padding-bottom:8rem}.pv7{padding-top:16rem;padding-bottom:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-top:0;margin-bottom:0}.mv1{margin-top:.25rem;margin-bottom:.25rem}.mv2{margin-top:.5rem;margin-bottom:.5rem}.mv3{margin-top:1rem;margin-bottom:1rem}.mv4{margin-top:2rem;margin-bottom:2rem}.mv5{margin-top:4rem;margin-bottom:4rem}.mv6{margin-top:8rem;margin-bottom:8rem}.mv7{margin-top:16rem;margin-bottom:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps{font-variant:small-caps}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overflow-container{overflow-y:scroll}.center{margin-right:auto;margin-left:auto}.clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.grow:active{-webkit-transform:scale(.9);transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(.95);transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{content:"";box-shadow:0 0 16px 2px rgba(0,0,0,.2);opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;transition:opacity .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.nested-copy-indent p+p{text-indent:1em;margin-top:0;margin-bottom:0}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{width:100%;max-width:100%;display:block}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-repeat:no-repeat;background-position:0}.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{top:0;right:0;bottom:0;left:0}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.flex-ns{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-ns{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-ns{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-ns{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-ns{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-row-ns{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-ns{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-column-reverse-ns{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-ns{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-wrap-reverse-ns{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.items-start-ns{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-ns{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-ns{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-ns{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-ns{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-ns{-ms-flex-item-align:start;align-self:flex-start}.self-end-ns{-ms-flex-item-align:end;align-self:flex-end}.self-center-ns{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-ns{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-ns{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-ns{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-ns{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-ns{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-ns{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-ns{-ms-flex-pack:distribute;justify-content:space-around}.content-start-ns{-ms-flex-line-pack:start;align-content:flex-start}.content-end-ns{-ms-flex-line-pack:end;align-content:flex-end}.content-center-ns{-ms-flex-line-pack:center;align-content:center}.content-between-ns{-ms-flex-line-pack:justify;align-content:space-between}.content-around-ns{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-ns{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-ns{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-ns{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-ns{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-ns{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-ns{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-ns{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-ns{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-ns{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-ns{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-ns{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.fl-ns{float:left}.fl-ns,.fr-ns{display:inline}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.33333%}.w-two-thirds-ns{width:66.66667%}.w-auto-ns{width:auto}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-top:0;padding-bottom:0}.pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.pv3-ns{padding-top:1rem;padding-bottom:1rem}.pv4-ns{padding-top:2rem;padding-bottom:2rem}.pv5-ns{padding-top:4rem;padding-bottom:4rem}.pv6-ns{padding-top:8rem;padding-bottom:8rem}.pv7-ns{padding-top:16rem;padding-bottom:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-top:0;margin-bottom:0}.mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.mv3-ns{margin-top:1rem;margin-bottom:1rem}.mv4-ns{margin-top:2rem;margin-bottom:2rem}.mv5-ns{margin-top:4rem;margin-bottom:4rem}.mv6-ns{margin-top:8rem;margin-bottom:8rem}.mv7-ns{margin-top:16rem;margin-bottom:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-ns{font-variant:small-caps}.truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-ns{margin-right:auto;margin-left:auto}.clip-ns{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-repeat:no-repeat;background-position:0}.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{top:0;right:0;bottom:0;left:0}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.flex-m{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-m{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-m{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-m{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-m{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-m,.flex-row-m{-webkit-box-direction:normal}.flex-row-m{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-m{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-column-reverse-m{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-m{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-wrap-reverse-m{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.items-start-m{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-m{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-m{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-m{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-m{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-m{-ms-flex-item-align:start;align-self:flex-start}.self-end-m{-ms-flex-item-align:end;align-self:flex-end}.self-center-m{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-m{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-m{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-m{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-m{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-m{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-m{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-m{-ms-flex-pack:distribute;justify-content:space-around}.content-start-m{-ms-flex-line-pack:start;align-content:flex-start}.content-end-m{-ms-flex-line-pack:end;align-content:flex-end}.content-center-m{-ms-flex-line-pack:center;align-content:center}.content-between-m{-ms-flex-line-pack:justify;align-content:space-between}.content-around-m{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-m{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-m{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-m{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-m{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-m{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-m{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-m{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-m{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-m{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-m{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-m{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.fl-m{float:left}.fl-m,.fr-m{display:inline}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.33333%}.w-two-thirds-m{width:66.66667%}.w-auto-m{width:auto}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-top:0;padding-bottom:0}.pv1-m{padding-top:.25rem;padding-bottom:.25rem}.pv2-m{padding-top:.5rem;padding-bottom:.5rem}.pv3-m{padding-top:1rem;padding-bottom:1rem}.pv4-m{padding-top:2rem;padding-bottom:2rem}.pv5-m{padding-top:4rem;padding-bottom:4rem}.pv6-m{padding-top:8rem;padding-bottom:8rem}.pv7-m{padding-top:16rem;padding-bottom:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-top:0;margin-bottom:0}.mv1-m{margin-top:.25rem;margin-bottom:.25rem}.mv2-m{margin-top:.5rem;margin-bottom:.5rem}.mv3-m{margin-top:1rem;margin-bottom:1rem}.mv4-m{margin-top:2rem;margin-bottom:2rem}.mv5-m{margin-top:4rem;margin-bottom:4rem}.mv6-m{margin-top:8rem;margin-bottom:8rem}.mv7-m{margin-top:16rem;margin-bottom:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-m{font-variant:small-caps}.truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-m{margin-right:auto;margin-left:auto}.clip-m{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-repeat:no-repeat;background-position:0}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{top:0;right:0;bottom:0;left:0}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.flex-l{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-l{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-l{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-l{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-l{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-l,.flex-row-l{-webkit-box-direction:normal}.flex-row-l{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-l{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-column-reverse-l{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-l{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-wrap-reverse-l{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.items-start-l{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-l{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-l{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-l{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-l{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-l{-ms-flex-item-align:start;align-self:flex-start}.self-end-l{-ms-flex-item-align:end;align-self:flex-end}.self-center-l{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-l{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-l{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-l{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-l{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-l{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-l{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-l{-ms-flex-pack:distribute;justify-content:space-around}.content-start-l{-ms-flex-line-pack:start;align-content:flex-start}.content-end-l{-ms-flex-line-pack:end;align-content:flex-end}.content-center-l{-ms-flex-line-pack:center;align-content:center}.content-between-l{-ms-flex-line-pack:justify;align-content:space-between}.content-around-l{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-l{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-l{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-l{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-l{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-l{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-l{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-l{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-l{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-l{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-l{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-l{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.fl-l{float:left}.fl-l,.fr-l{display:inline}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.33333%}.w-two-thirds-l{width:66.66667%}.w-auto-l{width:auto}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-top:0;padding-bottom:0}.pv1-l{padding-top:.25rem;padding-bottom:.25rem}.pv2-l{padding-top:.5rem;padding-bottom:.5rem}.pv3-l{padding-top:1rem;padding-bottom:1rem}.pv4-l{padding-top:2rem;padding-bottom:2rem}.pv5-l{padding-top:4rem;padding-bottom:4rem}.pv6-l{padding-top:8rem;padding-bottom:8rem}.pv7-l{padding-top:16rem;padding-bottom:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-top:0;margin-bottom:0}.mv1-l{margin-top:.25rem;margin-bottom:.25rem}.mv2-l{margin-top:.5rem;margin-bottom:.5rem}.mv3-l{margin-top:1rem;margin-bottom:1rem}.mv4-l{margin-top:2rem;margin-bottom:2rem}.mv5-l{margin-top:4rem;margin-bottom:4rem}.mv6-l{margin-top:8rem;margin-bottom:8rem}.mv7-l{margin-top:16rem;margin-bottom:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-l{font-variant:small-caps}.truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-l{margin-right:auto;margin-left:auto}.clip-l{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}
diff --git a/lerna.json b/lerna.json
new file mode 100644
index 000000000..1af8a581c
--- /dev/null
+++ b/lerna.json
@@ -0,0 +1,4 @@
+{
+ "lerna": "2.0.0",
+ "version": "0.0.0"
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..630a0ea93
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,4124 @@
+{
+ "name": "tachyons",
+ "version": "4.7.4",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "add-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
+ "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz",
+ "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "any-promise": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz",
+ "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=",
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz",
+ "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==",
+ "dev": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
+ "dev": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "array-find-index": {
+ "version": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-ify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
+ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "1.0.3"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ },
+ "author-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-0.2.1.tgz",
+ "integrity": "sha1-i976rGBlqTF5m+wH7u9RuUDgjzw=",
+ "dev": true
+ },
+ "authors-to-markdown": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/authors-to-markdown/-/authors-to-markdown-0.1.0.tgz",
+ "integrity": "sha1-ozgAZCiacl9AzRUhRMIfqjf9Fis=",
+ "dev": true,
+ "requires": {
+ "is-blank": "https://registry.npmjs.org/is-blank/-/is-blank-1.1.0.tgz",
+ "normalize-url": "1.9.1",
+ "parse-author": "0.2.2"
+ }
+ },
+ "autoprefixer": {
+ "version": "6.7.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000708",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "5.2.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
+ "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
+ }
+ }
+ }
+ },
+ "balanced-match": {
+ "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000708",
+ "electron-to-chromium": "1.3.16"
+ }
+ },
+ "builtin-modules": {
+ "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "byline": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
+ "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz",
+ "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"
+ }
+ },
+ "caniuse-api": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
+ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000708",
+ "lodash.memoize": "4.1.2",
+ "lodash.uniq": "4.5.0"
+ }
+ },
+ "caniuse-db": {
+ "version": "1.0.30000708",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000708.tgz",
+ "integrity": "sha1-wuc2vTt/xfbBTkxt/mK5jtFeils=",
+ "dev": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ }
+ },
+ "ci-info": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz",
+ "integrity": "sha1-3FKF8rTiUYIWg2gcOBwziPRuxTQ=",
+ "dev": true
+ },
+ "clap": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz",
+ "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
+ }
+ },
+ "class-repeat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/class-repeat/-/class-repeat-1.0.1.tgz",
+ "integrity": "sha1-knNYMP7Dp7IdkPmMn4CEeZ0kPSg=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "get-css-classes": "https://registry.npmjs.org/get-css-classes/-/get-css-classes-1.1.0.tgz",
+ "has-class-selector": "https://registry.npmjs.org/has-class-selector/-/has-class-selector-1.0.0.tgz",
+ "is-present": "1.0.0"
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
+ "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+ "dev": true
+ },
+ "cmd-shim": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz",
+ "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ }
+ },
+ "coa": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "color": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
+ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
+ "dev": true,
+ "requires": {
+ "clone": "1.0.2",
+ "color-convert": "1.9.0",
+ "color-string": "0.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "colormin": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
+ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
+ "dev": true,
+ "requires": {
+ "color": "0.11.4",
+ "css-color-names": "0.0.4",
+ "has": "1.0.1"
+ },
+ "dependencies": {
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ }
+ }
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "columnify": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz",
+ "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=",
+ "dev": true,
+ "requires": {
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "wcwidth": "1.0.1"
+ }
+ },
+ "command-join": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/command-join/-/command-join-2.0.0.tgz",
+ "integrity": "sha1-Uui5hPSHLZUv8b3IuYOX0nxxRM8=",
+ "dev": true
+ },
+ "comment-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/comment-regex/-/comment-regex-1.0.0.tgz",
+ "integrity": "sha1-fdcCaMg2SKnEzBm/Ry1S5k9jkY0=",
+ "dev": true
+ },
+ "compare-func": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
+ "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
+ "dev": true,
+ "requires": {
+ "array-ify": "1.0.0",
+ "dot-prop": "3.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "dev": true,
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "readable-stream": "2.3.3",
+ "typedarray": "0.0.6"
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
+ "conventional-changelog": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.4.tgz",
+ "integrity": "sha1-EIvHUMKjF+IA4vm0E8qqH4x++js=",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-angular": "1.4.0",
+ "conventional-changelog-atom": "0.1.1",
+ "conventional-changelog-codemirror": "0.1.0",
+ "conventional-changelog-core": "1.9.0",
+ "conventional-changelog-ember": "0.2.6",
+ "conventional-changelog-eslint": "0.1.0",
+ "conventional-changelog-express": "0.1.0",
+ "conventional-changelog-jquery": "0.1.0",
+ "conventional-changelog-jscs": "0.1.0",
+ "conventional-changelog-jshint": "0.1.0"
+ }
+ },
+ "conventional-changelog-angular": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.4.0.tgz",
+ "integrity": "sha512-ukKX22lJl9ewogze1hKbBuff/dGMG2uyGpOhhw0ehhlv6GtdeCxj51YfGOZ5qC89WwsHT7SDXFzBKidwH3pwmQ==",
+ "dev": true,
+ "requires": {
+ "compare-func": "1.3.2",
+ "github-url-from-git": "1.5.0",
+ "q": "1.5.0",
+ "read-pkg-up": "2.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "conventional-changelog-atom": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.1.tgz",
+ "integrity": "sha512-6Nlu/+MiD4gi7k3Z+N1vMJWpaPSdvFPWzPGnH4OXewHAxiAl0L/TT9CGgA01fosPxmYr4hMNtD7kyN0tkg8vIA==",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "conventional-changelog-cli": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.2.tgz",
+ "integrity": "sha512-Z89mXKV0IIB0q8tNvIIZtNNrun3MUuQC0YJPzsF2t5UyaqmqnOpLNLHX28+Pwi+aHI2LQjEar1OmEoZgYP+6Kw==",
+ "dev": true,
+ "requires": {
+ "add-stream": "1.0.0",
+ "conventional-changelog": "1.1.4",
+ "lodash": "4.17.4",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "tempfile": "1.1.1"
+ }
+ },
+ "conventional-changelog-codemirror": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz",
+ "integrity": "sha1-dXelkdv5tTjnoVCn7mL2WihyszQ=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "conventional-changelog-core": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.9.0.tgz",
+ "integrity": "sha1-3l37wJGEdlZQjUo4njXJobxJ5/Q=",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-writer": "1.4.1",
+ "conventional-commits-parser": "1.3.0",
+ "dateformat": "1.0.12",
+ "get-pkg-repo": "1.4.0",
+ "git-raw-commits": "1.2.0",
+ "git-remote-origin-url": "2.0.0",
+ "git-semver-tags": "1.2.1",
+ "lodash": "4.17.4",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "q": "1.5.0",
+ "read-pkg": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "through2": "2.0.3"
+ }
+ },
+ "conventional-changelog-ember": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.6.tgz",
+ "integrity": "sha1-i3NVQZ9RJ0k8TFYkc6svx5LxwrY=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "conventional-changelog-eslint": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz",
+ "integrity": "sha1-pSQR6ZngUBzlALhWsKZD0DMJB+I=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "conventional-changelog-express": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz",
+ "integrity": "sha1-VcbIQcgRliA2wDe9vZZKVK4xD84=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "conventional-changelog-jquery": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz",
+ "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "conventional-changelog-jscs": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz",
+ "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "conventional-changelog-jshint": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz",
+ "integrity": "sha1-AMq46aMxdIer2UxNhGcTQpGNKgc=",
+ "dev": true,
+ "requires": {
+ "compare-func": "1.3.2",
+ "q": "1.5.0"
+ }
+ },
+ "conventional-changelog-writer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz",
+ "integrity": "sha1-P0y00APrtWmJ0w00WJO1KkNjnI4=",
+ "dev": true,
+ "requires": {
+ "compare-func": "1.3.2",
+ "conventional-commits-filter": "1.0.0",
+ "dateformat": "1.0.12",
+ "handlebars": "4.0.10",
+ "json-stringify-safe": "5.0.1",
+ "lodash": "4.17.4",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "split": "1.0.0",
+ "through2": "2.0.3"
+ }
+ },
+ "conventional-commits-filter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz",
+ "integrity": "sha1-b8KmWTcrw/IznPn//34bA0S5MDk=",
+ "dev": true,
+ "requires": {
+ "is-subset": "0.1.1",
+ "modify-values": "1.0.0"
+ }
+ },
+ "conventional-commits-parser": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz",
+ "integrity": "sha1-4ye1MZThp61dxjR57pCZpSsCSGU=",
+ "dev": true,
+ "requires": {
+ "is-text-path": "1.0.1",
+ "JSONStream": "1.3.1",
+ "lodash": "4.17.4",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "split2": "2.1.1",
+ "through2": "2.0.3",
+ "trim-off-newlines": "1.0.1"
+ }
+ },
+ "conventional-recommended-bump": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-1.0.1.tgz",
+ "integrity": "sha512-2FrE8UJwt2EKpICi/E7P+xqyYUysdfMnFYiGV+7ANzJsixkBOrBKrKlCEV2NllCjR0XOmNfnA/mgozC5jAhhGQ==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "1.6.0",
+ "conventional-commits-filter": "1.0.0",
+ "conventional-commits-parser": "2.0.0",
+ "git-raw-commits": "1.2.0",
+ "git-semver-tags": "1.2.1",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ },
+ "dependencies": {
+ "conventional-commits-parser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.0.0.tgz",
+ "integrity": "sha512-8od6g684Fhi5Vpp4ABRv/RBsW1AY6wSHbJHEK6FGTv+8jvAAnlABniZu/FVmX9TcirkHepaEsa1QGkRvbg0CKw==",
+ "dev": true,
+ "requires": {
+ "is-text-path": "1.0.1",
+ "JSONStream": "1.3.1",
+ "lodash": "4.17.4",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "split2": "2.1.1",
+ "through2": "2.0.3",
+ "trim-off-newlines": "1.0.1"
+ }
+ }
+ }
+ },
+ "copy-files": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/copy-files/-/copy-files-0.1.0.tgz",
+ "integrity": "sha1-+jg4XcBH74gZPBxhtqJTqKQn8RY=",
+ "dev": true,
+ "requires": {
+ "async": "0.9.2",
+ "lodash": "2.4.2",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ }
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.2.14"
+ }
+ },
+ "css-color-converter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-color-converter/-/css-color-converter-1.1.0.tgz",
+ "integrity": "sha1-wufZPC6WyK2Msax6Hy5J2AUq3jY=",
+ "dev": true,
+ "requires": {
+ "color-convert": "0.5.3",
+ "color-name": "1.1.3"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
+ "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
+ "dev": true
+ }
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.1.tgz",
+ "integrity": "sha1-XQVI+iVkVu3kqaDCrHqxnT6xrYE=",
+ "dev": true
+ },
+ "css-mqpacker": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/css-mqpacker/-/css-mqpacker-5.0.1.tgz",
+ "integrity": "sha1-by1iJSYj/Xwzpo4biNwTcMiFkh4=",
+ "dev": true,
+ "requires": {
+ "minimist": "1.2.0",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz"
+ }
+ },
+ "css-shorthand-expand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-shorthand-expand/-/css-shorthand-expand-1.1.0.tgz",
+ "integrity": "sha1-EC9yhsvTI3VDC1hJ1OL+o6oh6mQ=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "0.0.1",
+ "css-url-regex": "0.0.1",
+ "hex-color-regex": "1.1.0",
+ "hsl-regex": "1.0.0",
+ "hsla-regex": "1.0.0",
+ "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "repeat-element": "1.1.2",
+ "rgb-regex": "1.0.1",
+ "rgba-regex": "1.0.0",
+ "xtend": "4.0.1"
+ }
+ },
+ "css-shorthand-properties": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.0.0.tgz",
+ "integrity": "sha1-VnvmcRA2ebmqBaSBVeUUdLJ1h38=",
+ "dev": true
+ },
+ "css-unit-converter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
+ "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
+ "dev": true
+ },
+ "css-url-regex": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-0.0.1.tgz",
+ "integrity": "sha1-4Fr4xsKQ1FHvFjK0VepcgbSxOVw=",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
+ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "defined": "1.0.0",
+ "has": "1.0.1",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-calc": "5.3.1",
+ "postcss-colormin": "2.2.2",
+ "postcss-convert-values": "2.6.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-discard-duplicates": "2.1.0",
+ "postcss-discard-empty": "2.1.0",
+ "postcss-discard-overridden": "0.1.1",
+ "postcss-discard-unused": "2.2.3",
+ "postcss-filter-plugins": "2.0.2",
+ "postcss-merge-idents": "2.1.7",
+ "postcss-merge-longhand": "2.0.2",
+ "postcss-merge-rules": "2.1.2",
+ "postcss-minify-font-values": "1.0.5",
+ "postcss-minify-gradients": "1.0.5",
+ "postcss-minify-params": "1.2.2",
+ "postcss-minify-selectors": "2.1.1",
+ "postcss-normalize-charset": "1.1.1",
+ "postcss-normalize-url": "3.0.8",
+ "postcss-ordered-values": "2.2.3",
+ "postcss-reduce-idents": "2.4.0",
+ "postcss-reduce-initial": "1.0.1",
+ "postcss-reduce-transforms": "1.0.4",
+ "postcss-svgo": "2.1.6",
+ "postcss-unique-selectors": "2.0.2",
+ "postcss-value-parser": "3.3.0",
+ "postcss-zindex": "2.2.0"
+ }
+ },
+ "csso": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
+ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+ "dev": true,
+ "requires": {
+ "clap": "1.2.0",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
+ }
+ },
+ "cssstats": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cssstats/-/cssstats-3.1.0.tgz",
+ "integrity": "sha512-zLG+H8tyLITS5uYUu8MVtS0wUU7XhV1298CgF62wWLm/xfJIbbE7WlrIfXtgLWk929/cfrCidSkCpYJrlqsJ/g==",
+ "dev": true,
+ "requires": {
+ "bytes": "2.5.0",
+ "css-selector-tokenizer": "0.7.0",
+ "css-shorthand-expand": "1.1.0",
+ "gzip-size": "3.0.0",
+ "has-class-selector": "https://registry.npmjs.org/has-class-selector/-/has-class-selector-1.0.0.tgz",
+ "has-element-selector": "1.0.0",
+ "has-id-selector": "1.0.0",
+ "has-pseudo-class": "1.0.1",
+ "has-pseudo-element": "1.0.0",
+ "is-blank": "https://registry.npmjs.org/is-blank/-/is-blank-1.1.0.tgz",
+ "is-css-shorthand": "1.0.1",
+ "is-present": "1.0.0",
+ "is-vendor-prefixed": "0.0.1",
+ "lodash": "4.17.4",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-safe-parser": "2.0.1",
+ "specificity": "0.3.1"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+ "dev": true,
+ "requires": {
+ "cssesc": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "regexpu-core": "1.0.0"
+ }
+ },
+ "specificity": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.1.tgz",
+ "integrity": "sha1-8bBoQkzjF64HR42V3jwhz4Xo1Wc=",
+ "dev": true
+ }
+ }
+ },
+ "currently-unhandled": {
+ "version": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
+ }
+ },
+ "dargs": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
+ "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "dateformat": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
+ }
+ },
+ "decamelize": {
+ "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
+ "dev": true
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "dev": true,
+ "requires": {
+ "clone": "1.0.2"
+ }
+ },
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
+ },
+ "detect-indent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
+ "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=",
+ "dev": true
+ },
+ "detect-newline": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz",
+ "integrity": "sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "dot-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
+ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
+ "dev": true,
+ "requires": {
+ "is-obj": "1.0.1"
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.16",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.16.tgz",
+ "integrity": "sha1-0OAmc1dUdwkBrjAaIWZMukXZL30=",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
+ "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "exec-sh": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
+ "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
+ "dev": true,
+ "requires": {
+ "merge": "1.2.0"
+ }
+ },
+ "execa": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.6.3.tgz",
+ "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "extend": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz",
+ "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=",
+ "dev": true
+ },
+ "extend-options": {
+ "version": "https://registry.npmjs.org/extend-options/-/extend-options-0.0.1.tgz",
+ "integrity": "sha1-6TyDMSQ4wTVl5k7Cts6GqYKd0Xs=",
+ "dev": true
+ },
+ "external-editor": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz",
+ "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "0.4.18",
+ "jschardet": "1.5.0",
+ "tmp": "0.0.31"
+ }
+ },
+ "fastparse": {
+ "version": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+ "dev": true
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+ }
+ },
+ "file-exists": {
+ "version": "https://registry.npmjs.org/file-exists/-/file-exists-1.0.0.tgz",
+ "integrity": "sha1-5tJptWVnuJIlgTmOmQ3XB49y1hY=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
+ "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "jsonfile": "3.0.1",
+ "universalify": "0.1.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
+ "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
+ "dev": true
+ },
+ "gather-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz",
+ "integrity": "sha1-szmUr0V6gRVwDUEPMXczy+egkEs=",
+ "dev": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "1.1.2",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "string-width": "1.0.2",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "wide-align": "1.1.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ }
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
+ "dev": true
+ },
+ "get-css-classes": {
+ "version": "https://registry.npmjs.org/get-css-classes/-/get-css-classes-1.1.0.tgz",
+ "integrity": "sha1-W0Tqihks7OdWfARXRjOpKqRJF7M=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ }
+ }
+ },
+ "get-pkg-repo": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz",
+ "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "parse-github-repo-url": "1.4.0",
+ "through2": "2.0.3"
+ }
+ },
+ "get-port": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.1.0.tgz",
+ "integrity": "sha1-7wGxioTKZIaXD/meVERhQac//T4=",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "git-raw-commits": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz",
+ "integrity": "sha1-DzqL/ZmuDy2LkiTViJKXXppS0Dw=",
+ "dev": true,
+ "requires": {
+ "dargs": "4.1.0",
+ "lodash.template": "4.4.0",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "split2": "2.1.1",
+ "through2": "2.0.3"
+ }
+ },
+ "git-remote-origin-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
+ "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=",
+ "dev": true,
+ "requires": {
+ "gitconfiglocal": "1.0.0",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ }
+ },
+ "git-semver-tags": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.1.tgz",
+ "integrity": "sha512-fFyxtzTHCTQKwB4clA2AInVrlflBbVbbJD4NWwmxKXHUgsU/K9kmHNlkPLqFiuy9xu9q3lNopghR4VXeQwZbTQ==",
+ "dev": true,
+ "requires": {
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+ }
+ },
+ "gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=",
+ "dev": true,
+ "requires": {
+ "ini": "1.3.4"
+ }
+ },
+ "github-url-from-git": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz",
+ "integrity": "sha1-+YX+3MCpqledyI16/waNVcxiUaA=",
+ "dev": true
+ },
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "glob": "7.1.2",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "3.0.4",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "gzip-size": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
+ "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
+ },
+ "handlebars": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz",
+ "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=",
+ "dev": true,
+ "requires": {
+ "async": "1.5.2",
+ "optimist": "0.6.1",
+ "source-map": "0.4.4",
+ "uglify-js": "2.8.29"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
+ "has": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "dev": true,
+ "requires": {
+ "function-bind": "1.1.0"
+ }
+ },
+ "has-ansi": {
+ "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ }
+ },
+ "has-class-selector": {
+ "version": "https://registry.npmjs.org/has-class-selector/-/has-class-selector-1.0.0.tgz",
+ "integrity": "sha1-p79Rvs3C133/JQkgPtafNEUODC0=",
+ "dev": true
+ },
+ "has-element-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-element-selector/-/has-element-selector-1.0.0.tgz",
+ "integrity": "sha1-JohCJeEjQ36N+WBMATWB0p0ZC5c=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz"
+ }
+ },
+ "has-flag": {
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "has-id-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-id-selector/-/has-id-selector-1.0.0.tgz",
+ "integrity": "sha1-1BtC6SKFhub+xWZyjOszqucay0U=",
+ "dev": true
+ },
+ "has-pseudo-class": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-pseudo-class/-/has-pseudo-class-1.0.1.tgz",
+ "integrity": "sha1-Bj7cjp9ZRpdq9P9OuzLDMNVW4Ac=",
+ "dev": true,
+ "requires": {
+ "pseudo-classes": "0.0.1"
+ }
+ },
+ "has-pseudo-element": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-pseudo-element/-/has-pseudo-element-1.0.0.tgz",
+ "integrity": "sha1-NMoZEgHAFDcJ9CtLc/HcY7dg8D8=",
+ "dev": true,
+ "requires": {
+ "pseudo-elements": "1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true
+ },
+ "hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
+ "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=",
+ "dev": true
+ },
+ "hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+ "dev": true
+ },
+ "hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
+ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
+ "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==",
+ "dev": true
+ },
+ "immutable-css": {
+ "version": "https://registry.npmjs.org/immutable-css/-/immutable-css-1.1.2.tgz",
+ "integrity": "sha1-RBUWYyKpPVAPrPJoocf5Bw/0YYo=",
+ "dev": true,
+ "requires": {
+ "extend-options": "https://registry.npmjs.org/extend-options/-/extend-options-0.0.1.tgz",
+ "file-exists": "https://registry.npmjs.org/file-exists/-/file-exists-0.1.1.tgz",
+ "get-css-classes": "https://registry.npmjs.org/get-css-classes/-/get-css-classes-1.1.0.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "has-class-selector": "https://registry.npmjs.org/has-class-selector/-/has-class-selector-1.0.0.tgz",
+ "is-css": "https://registry.npmjs.org/is-css/-/is-css-1.0.0.tgz",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "specificity": "https://registry.npmjs.org/specificity/-/specificity-0.1.6.tgz"
+ },
+ "dependencies": {
+ "file-exists": {
+ "version": "https://registry.npmjs.org/file-exists/-/file-exists-0.1.1.tgz",
+ "integrity": "sha1-mT0//7W0nRH+/Mj0XCNVAnRAgDw=",
+ "dev": true
+ }
+ }
+ },
+ "immutable-css-cli": {
+ "version": "https://registry.npmjs.org/immutable-css-cli/-/immutable-css-cli-1.1.1.tgz",
+ "integrity": "sha1-QNHAPN9JtrWqdnAF5SUdxb94K9s=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "file-exists": "https://registry.npmjs.org/file-exists/-/file-exists-1.0.0.tgz",
+ "immutable-css": "https://registry.npmjs.org/immutable-css/-/immutable-css-1.1.2.tgz",
+ "is-blank": "https://registry.npmjs.org/is-blank/-/is-blank-1.1.0.tgz",
+ "is-css": "https://registry.npmjs.org/is-css/-/is-css-1.0.0.tgz",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-import": "https://registry.npmjs.org/postcss-import/-/postcss-import-7.1.3.tgz"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"
+ }
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "inherits": {
+ "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.1.tgz",
+ "integrity": "sha512-QgW3eiPN8gpj/K5vVpHADJJgrrF0ho/dZGylikGX7iqAdRgC9FVKYKWFLx6hZDBFcOLEoSqINYrVPeFAeG/PdA==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "2.0.0",
+ "chalk": "2.0.1",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.1.0",
+ "external-editor": "2.0.4",
+ "figures": "2.0.0",
+ "lodash": "4.17.4",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "through": "2.3.8"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
+ "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "supports-color": "4.2.1"
+ }
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz",
+ "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-blank": {
+ "version": "https://registry.npmjs.org/is-blank/-/is-blank-1.1.0.tgz",
+ "integrity": "sha1-knTdvUY2PLdnB1w4XUq4jGpk3Bc=",
+ "dev": true,
+ "requires": {
+ "is-empty": "https://registry.npmjs.org/is-empty/-/is-empty-0.0.1.tgz",
+ "is-whitespace": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
+ "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"
+ }
+ },
+ "is-ci": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
+ "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
+ "dev": true,
+ "requires": {
+ "ci-info": "1.0.0"
+ }
+ },
+ "is-css": {
+ "version": "https://registry.npmjs.org/is-css/-/is-css-1.0.0.tgz",
+ "integrity": "sha1-nE7hEQaR4Kffnl5qp4Frrj1SbTg=",
+ "dev": true
+ },
+ "is-css-shorthand": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-css-shorthand/-/is-css-shorthand-1.0.1.tgz",
+ "integrity": "sha1-MPldAyEGBf7f3RKOU9rEpEN6kzw=",
+ "dev": true,
+ "requires": {
+ "css-shorthand-properties": "1.0.0"
+ }
+ },
+ "is-empty": {
+ "version": "https://registry.npmjs.org/is-empty/-/is-empty-0.0.1.tgz",
+ "integrity": "sha1-Cf3D1kndpZaRVsCFOpt2vXgcWjM=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-present": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-present/-/is-present-1.0.0.tgz",
+ "integrity": "sha1-Kcm46ObnhqWUwpL8cjmqJL5wuAw=",
+ "dev": true,
+ "requires": {
+ "is-blank": "1.0.0"
+ },
+ "dependencies": {
+ "is-blank": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-blank/-/is-blank-1.0.0.tgz",
+ "integrity": "sha1-YOOb60H5LDsnrLtQKcsPKfmD7mc=",
+ "dev": true,
+ "requires": {
+ "is-empty": "https://registry.npmjs.org/is-empty/-/is-empty-0.0.1.tgz",
+ "is-whitespace": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz"
+ }
+ }
+ }
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-subset": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
+ "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
+ "dev": true
+ },
+ "is-svg": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
+ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "1.1.1"
+ }
+ },
+ "is-text-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
+ "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=",
+ "dev": true,
+ "requires": {
+ "text-extensions": "1.5.0"
+ }
+ },
+ "is-utf8": {
+ "version": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-vendor-prefixed": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/is-vendor-prefixed/-/is-vendor-prefixed-0.0.1.tgz",
+ "integrity": "sha1-Bc8NhTxidNf7K/htU+EHgguca0Q=",
+ "dev": true,
+ "requires": {
+ "vendor-prefixes": "0.0.1"
+ }
+ },
+ "is-whitespace": {
+ "version": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz",
+ "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "js-base64": {
+ "version": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
+ "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "2.7.3"
+ }
+ },
+ "jschardet": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.0.tgz",
+ "integrity": "sha512-+Q8JsoEQbrdE+a/gg1F9XO92gcKXgpE5UACqr0sIubjDmBEkd+OOWPGzQeMrWSLxd73r4dHxBeRW7edHu5LmJQ==",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
+ "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+ }
+ },
+ "jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
+ "dev": true
+ },
+ "JSONStream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
+ "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
+ "dev": true,
+ "requires": {
+ "jsonparse": "1.3.1",
+ "through": "2.3.8"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.5"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true,
+ "optional": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "1.0.0"
+ }
+ },
+ "lerna": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lerna/-/lerna-2.0.0.tgz",
+ "integrity": "sha1-Sacv5w4Grr/X6iPvsqtBq+YOvuo=",
+ "dev": true,
+ "requires": {
+ "async": "1.5.2",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "cmd-shim": "2.0.2",
+ "columnify": "1.5.4",
+ "command-join": "2.0.0",
+ "conventional-changelog-cli": "1.3.2",
+ "conventional-recommended-bump": "1.0.1",
+ "dedent": "0.7.0",
+ "execa": "0.6.3",
+ "find-up": "2.1.0",
+ "fs-extra": "3.0.1",
+ "get-port": "3.1.0",
+ "glob": "7.1.2",
+ "globby": "6.1.0",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "inquirer": "3.2.1",
+ "is-ci": "1.0.10",
+ "load-json-file": "2.0.0",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4",
+ "npmlog": "4.1.2",
+ "p-finally": "1.0.0",
+ "path-exists": "3.0.0",
+ "read-cmd-shim": "1.0.1",
+ "read-pkg": "2.0.0",
+ "rimraf": "2.6.1",
+ "safe-buffer": "5.1.1",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "strong-log-transformer": "1.0.6",
+ "temp-write": "3.3.0",
+ "write-file-atomic": "2.1.0",
+ "write-json-file": "2.2.0",
+ "write-pkg": "3.1.0",
+ "yargs": "8.0.2"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "3.0.4",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "path-type": "2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "load-json-file": {
+ "version": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ },
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.template": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
+ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "3.0.0",
+ "lodash.templatesettings": "4.1.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
+ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "3.0.0"
+ }
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
+ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "macaddress": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz",
+ "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
+ "dev": true
+ },
+ "make-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz",
+ "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=",
+ "dev": true,
+ "requires": {
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ }
+ },
+ "map-obj": {
+ "version": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "math-expression-evaluator": {
+ "version": "1.2.17",
+ "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
+ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "meow": {
+ "version": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "loud-rejection": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "redent": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "trim-newlines": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "merge": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
+ "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
+ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+ }
+ },
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ },
+ "modify-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz",
+ "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=",
+ "dev": true
+ },
+ "moment": {
+ "version": "2.18.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz",
+ "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
+ "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz"
+ }
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+ "dev": true,
+ "requires": {
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "prepend-http": "1.0.4",
+ "query-string": "4.3.4",
+ "sort-keys": "1.1.2"
+ }
+ },
+ "normalize.css": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz",
+ "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "once": {
+ "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "wordwrap": "0.0.3"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "strip-eof": "1.0.0"
+ }
+ }
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
+ "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
+ "dev": true
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "1.1.0"
+ }
+ },
+ "parse-author": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-0.2.2.tgz",
+ "integrity": "sha1-MC0bjkxmUZ0cRd2VED0zKMRJjv0=",
+ "dev": true,
+ "requires": {
+ "author-regex": "0.2.1"
+ }
+ },
+ "parse-github-repo-url": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz",
+ "integrity": "sha1-KGxT4smWLgZBZJ7jrJUI/KTdlZw=",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz"
+ }
+ },
+ "path-exists": {
+ "version": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "path-is-absolute": {
+ "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "perfectionist": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/perfectionist/-/perfectionist-2.4.0.tgz",
+ "integrity": "sha1-wUetNxThJkZ/F2QSnuct+GHUfqA=",
+ "dev": true,
+ "requires": {
+ "comment-regex": "1.0.0",
+ "defined": "1.0.0",
+ "minimist": "1.2.0",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-scss": "0.3.1",
+ "postcss-value-parser": "3.3.0",
+ "read-file-stdin": "0.2.1",
+ "string.prototype.repeat": "0.2.0",
+ "vendors": "1.0.1",
+ "write-file-stdout": "0.0.2"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "pify": {
+ "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ }
+ },
+ "postcss": {
+ "version": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "integrity": "sha1-/ym81tLvuYv+CKAiBV7Fmbvnt2E=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-message-helpers": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "reduce-css-calc": "1.3.0"
+ }
+ },
+ "postcss-class-repeat": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-class-repeat/-/postcss-class-repeat-0.1.0.tgz",
+ "integrity": "sha1-+2zO0SqdmPhZ9HTYGItmbm2oe04=",
+ "dev": true,
+ "requires": {
+ "class-repeat": "1.0.1",
+ "has-class-selector": "https://registry.npmjs.org/has-class-selector/-/has-class-selector-1.0.0.tgz",
+ "is-present": "1.0.0",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-colormin": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
+ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
+ "dev": true,
+ "requires": {
+ "colormin": "1.1.2",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-conditionals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-conditionals/-/postcss-conditionals-2.1.0.tgz",
+ "integrity": "sha1-TR9iqlQEWM56t3n3FlaQHI+Okpo=",
+ "dev": true,
+ "requires": {
+ "css-color-converter": "1.1.0",
+ "css-unit-converter": "1.1.1",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
+ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-css-variables": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/postcss-css-variables/-/postcss-css-variables-0.7.0.tgz",
+ "integrity": "sha1-SqWO6zyFmm8JCQE6sXvspWZSh/0=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "extend": "2.0.1",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-custom-media": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz",
+ "integrity": "sha1-E40loYS/LrVN4S1VpsAcMKnYvYE=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
+ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
+ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
+ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
+ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-discard-unused": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
+ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-filter-plugins": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
+ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "uniqid": "4.1.1"
+ }
+ },
+ "postcss-import": {
+ "version": "https://registry.npmjs.org/postcss-import/-/postcss-import-7.1.3.tgz",
+ "integrity": "sha1-ktECGvKmDfTdwKzzqn/3cmpNbJA=",
+ "dev": true,
+ "requires": {
+ "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-message-helpers": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz"
+ }
+ },
+ "postcss-merge-idents": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-api": "1.6.1",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-selector-parser": "2.2.3",
+ "vendors": "1.0.1"
+ }
+ },
+ "postcss-message-helpers": {
+ "version": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+ "dev": true
+ },
+ "postcss-minify-font-values": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+ "dev": true,
+ "requires": {
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "has": "1.0.1",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-selector-parser": "2.2.3"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "2.1.0",
+ "normalize-url": "1.9.1",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
+ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-safe-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-2.0.1.tgz",
+ "integrity": "sha1-Oz0cS0OiTDlC4vC+eWE4KzSLOxM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "5.2.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
+ "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
+ }
+ }
+ }
+ },
+ "postcss-scss": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-0.3.1.tgz",
+ "integrity": "sha1-ZcYQ2OKn7g5isYNbcbiHBzSBbks=",
+ "dev": true,
+ "requires": {
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+ "dev": true,
+ "requires": {
+ "flatten": "1.0.2",
+ "indexes-of": "1.0.1",
+ "uniq": "1.0.1"
+ }
+ },
+ "postcss-svgo": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
+ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
+ "dev": true,
+ "requires": {
+ "is-svg": "2.1.0",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0",
+ "svgo": "0.7.2"
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
+ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
+ "dev": true
+ },
+ "postcss-zindex": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
+ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "uniqs": "2.0.0"
+ }
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "dev": true
+ },
+ "promise-each": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz",
+ "integrity": "sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=",
+ "dev": true,
+ "requires": {
+ "any-promise": "0.1.0"
+ }
+ },
+ "pseudo-classes": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pseudo-classes/-/pseudo-classes-0.0.1.tgz",
+ "integrity": "sha1-3smD2Upo0D3f3vPwfESvn2wiOls=",
+ "dev": true
+ },
+ "pseudo-elements": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pseudo-elements/-/pseudo-elements-1.0.0.tgz",
+ "integrity": "sha1-S+YMvNhJlpKh1yz90+WDnautFhg=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
+ "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
+ "dev": true
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+ "dev": true,
+ "requires": {
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "strict-uri-encode": "1.1.0"
+ }
+ },
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+ "dev": true,
+ "requires": {
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ }
+ },
+ "read-cmd-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz",
+ "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+ }
+ },
+ "read-file-stdin": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz",
+ "integrity": "sha1-JezP86FTtoCa+ssj7hU4fbng7mE=",
+ "dev": true,
+ "requires": {
+ "gather-stream": "1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "path-type": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz"
+ }
+ },
+ "read-pkg-up": {
+ "version": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "read-pkg": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "redent": {
+ "version": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "strip-indent": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz"
+ }
+ },
+ "reduce-css-calc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
+ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "math-expression-evaluator": "1.2.17",
+ "reduce-function-call": "1.0.2"
+ }
+ },
+ "reduce-function-call": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
+ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
+ }
+ },
+ "regenerate": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
+ "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "1.3.2",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
+ "integrity": "sha1-lYnD8vYUnRQXpAvswWY9tuxrwmw=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "2.0.1",
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+ }
+ },
+ "rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+ "dev": true
+ },
+ "rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+ "dev": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+ "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "3.0.4",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ }
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "2.1.0"
+ }
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "dev": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "single-trailing-newline": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz",
+ "integrity": "sha1-gfCtKtZFGBlFyAlSpcFBSZLulmQ=",
+ "dev": true,
+ "requires": {
+ "detect-newline": "1.0.3"
+ }
+ },
+ "slide": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
+ "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=",
+ "dev": true
+ },
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "1.1.0"
+ }
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+ "dev": true
+ },
+ "specificity": {
+ "version": "https://registry.npmjs.org/specificity/-/specificity-0.1.6.tgz",
+ "integrity": "sha1-qlAQSPluaUhd3JXvn3pbd/ASMqo=",
+ "dev": true
+ },
+ "split": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz",
+ "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=",
+ "dev": true,
+ "requires": {
+ "through": "2.3.8"
+ }
+ },
+ "split2": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz",
+ "integrity": "sha1-eh9VHhdqkOzTNF9yRqDP4XXvT9A=",
+ "dev": true,
+ "requires": {
+ "through2": "2.0.3"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "string.prototype.repeat": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz",
+ "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ }
+ },
+ "strip-bom": {
+ "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
+ }
+ },
+ "strip-css-comments": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-css-comments/-/strip-css-comments-3.0.0.tgz",
+ "integrity": "sha1-elYl7/iisibPiUehElTaluE9rok=",
+ "dev": true,
+ "requires": {
+ "is-regexp": "1.0.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
+ }
+ },
+ "strong-log-transformer": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz",
+ "integrity": "sha1-9/uTdYpppXEUAYEnfuoMLrEwH6M=",
+ "dev": true,
+ "requires": {
+ "byline": "5.0.0",
+ "duplexer": "0.1.1",
+ "minimist": "0.1.0",
+ "moment": "2.18.1",
+ "through": "2.3.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz",
+ "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=",
+ "dev": true
+ }
+ }
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "svgo": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
+ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+ "dev": true,
+ "requires": {
+ "coa": "1.0.4",
+ "colors": "1.1.2",
+ "csso": "2.3.2",
+ "js-yaml": "3.7.0",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "sax": "1.2.4",
+ "whet.extend": "0.9.9"
+ }
+ },
+ "tachyons-build-css": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/tachyons-build-css/-/tachyons-build-css-1.5.0.tgz",
+ "integrity": "sha512-wADwnxB4xWXRPPc/yn3S7NYa1UrOhISgLoL3ZDD5dnO2DUTYV8sxMIyPp+rextmwpZOggSlAuXcYgqK7QJeetA==",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "css-mqpacker": "5.0.1",
+ "cssnano": "3.10.0",
+ "perfectionist": "2.4.0",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-class-repeat": "0.1.0",
+ "postcss-conditionals": "2.1.0",
+ "postcss-css-variables": "0.7.0",
+ "postcss-custom-media": "5.0.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-import": "9.1.0"
+ },
+ "dependencies": {
+ "postcss-import": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-9.1.0.tgz",
+ "integrity": "sha1-lf6YdqHnmvSfvcNYnwH+WqfMHoA=",
+ "dev": true,
+ "requires": {
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz",
+ "postcss-value-parser": "3.3.0",
+ "promise-each": "2.2.0",
+ "read-cache": "1.0.0",
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz"
+ }
+ }
+ }
+ },
+ "tachyons-cli": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/tachyons-cli/-/tachyons-cli-1.0.11.tgz",
+ "integrity": "sha1-tkNEPkS63Ca7c5K6Veb3QB6Hsvs=",
+ "dev": true,
+ "requires": {
+ "authors-to-markdown": "0.1.0",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "copy-files": "0.1.0",
+ "css-mqpacker": "5.0.1",
+ "cssstats": "3.1.0",
+ "file-exists": "2.0.0",
+ "immutable-css": "https://registry.npmjs.org/immutable-css/-/immutable-css-1.1.2.tgz",
+ "is-blank": "https://registry.npmjs.org/is-blank/-/is-blank-1.1.0.tgz",
+ "is-present": "1.0.0",
+ "lodash": "4.17.4",
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "single-trailing-newline": "1.0.0",
+ "tachyons-build-css": "1.5.0"
+ },
+ "dependencies": {
+ "file-exists": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-exists/-/file-exists-2.0.0.tgz",
+ "integrity": "sha1-okFQZlFQ5i1VvFRJKB2I0rCBDco=",
+ "dev": true
+ }
+ }
+ },
+ "temp-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=",
+ "dev": true
+ },
+ "temp-write": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-3.3.0.tgz",
+ "integrity": "sha1-walt4rNgYTQuroH0T/ABrsj2Fak=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "is-stream": "1.1.0",
+ "make-dir": "1.0.0",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "temp-dir": "1.0.0",
+ "uuid": "3.1.0"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "dev": true
+ }
+ }
+ },
+ "tempfile": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
+ "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "1.0.2",
+ "uuid": "2.0.3"
+ }
+ },
+ "text-extensions": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.5.0.tgz",
+ "integrity": "sha1-0cstFLXQvEW/3Kigikc/aMfrDLw=",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.3",
+ "xtend": "4.0.1"
+ }
+ },
+ "tmp": {
+ "version": "0.0.31",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
+ "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "trim-newlines": {
+ "version": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "trim-off-newlines": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz",
+ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=",
+ "dev": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true,
+ "optional": true
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqid": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
+ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
+ "dev": true,
+ "requires": {
+ "macaddress": "0.2.8"
+ }
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "universalify": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
+ "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz"
+ }
+ },
+ "vendor-prefixes": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/vendor-prefixes/-/vendor-prefixes-0.0.1.tgz",
+ "integrity": "sha1-mLQ2f4y3CZIw78IOBA9UrtAY0G0=",
+ "dev": true
+ },
+ "vendors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
+ "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
+ "dev": true
+ },
+ "watch": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz",
+ "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=",
+ "dev": true,
+ "requires": {
+ "exec-sh": "0.2.0",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "dev": true,
+ "requires": {
+ "defaults": "1.0.3"
+ }
+ },
+ "whet.extend": {
+ "version": "0.9.9",
+ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+ "dev": true
+ },
+ "which": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
+ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
+ "dev": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
+ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ }
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true,
+ "optional": true
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write-file-atomic": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz",
+ "integrity": "sha512-0TZ20a+xcIl4u0+Mj5xDH2yOWdmQiXlKf9Hm+TgDXjTMsEYb+gDrmb8e8UNAzMCitX8NBqG4Z/FUQIyzv/R1JQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "imurmurhash": "0.1.4",
+ "slide": "1.1.6"
+ }
+ },
+ "write-file-stdout": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-stdout/-/write-file-stdout-0.0.2.tgz",
+ "integrity": "sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE=",
+ "dev": true
+ },
+ "write-json-file": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.2.0.tgz",
+ "integrity": "sha1-UYYlBruzthnu+reFnx/WxtBTCHY=",
+ "dev": true,
+ "requires": {
+ "detect-indent": "5.0.0",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "make-dir": "1.0.0",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "sort-keys": "1.1.2",
+ "write-file-atomic": "2.1.0"
+ }
+ },
+ "write-pkg": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.1.0.tgz",
+ "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=",
+ "dev": true,
+ "requires": {
+ "sort-keys": "2.0.0",
+ "write-json-file": "2.2.0"
+ },
+ "dependencies": {
+ "sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "1.1.0"
+ }
+ }
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0",
+ "cliui": "3.2.0",
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "read-pkg-up": "2.0.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "7.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "wrap-ansi": "2.1.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ }
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index d1c49c361..35c167f01 100644
--- a/package.json
+++ b/package.json
@@ -1,9 +1,9 @@
{
"name": "tachyons",
- "version": "4.2.1",
+ "version": "4.7.4",
"description": "Functional CSS for humans",
"author": "mrmrs",
- "style": "css/tachyons.css",
+ "style": "css/tachyons.min.css",
"main": "css/tachyons.css",
"files": [
"css",
@@ -13,6 +13,7 @@
"keywords": [
"css",
"oocss",
+ "postcss",
"functional css",
"design",
"responsive",
@@ -20,12 +21,13 @@
],
"license": "MIT",
"devDependencies": {
- "copy-files": "^0.1.0",
+ "globby": "^6.1.0",
"immutable-css-cli": "^1.1.1",
- "normalize.css": "^4.2.0",
- "tachyons-cli": "^1.0.3",
- "tachyons-modules": "^1.1.8",
- "watch": "^0.19.2"
+ "lerna": "2.0.0",
+ "normalize.css": "^7.0.0",
+ "strip-css-comments": "^3.0.0",
+ "tachyons-cli": "^1.0.11",
+ "watch": "^1.0.2"
},
"contributors": [
{
@@ -43,6 +45,7 @@
"build": "npm run build:css && npm run build:minify",
"build:css": "tachyons src/tachyons.css > css/tachyons.css",
"build:minify": "tachyons src/tachyons.css -m > css/tachyons.min.css",
- "build:watch": "watch 'npm run build' ./src/"
+ "build:watch": "watch 'npm run build' ./src/",
+ "dev:update-packages": "node build/index"
}
}
diff --git a/packages/tachyons-aspect-ratios/.gitignore b/packages/tachyons-aspect-ratios/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-aspect-ratios/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-aspect-ratios/code-of-conduct.md b/packages/tachyons-aspect-ratios/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-aspect-ratios/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-aspect-ratios/css/tachyons-aspect-ratios.css b/packages/tachyons-aspect-ratios/css/tachyons-aspect-ratios.css
new file mode 100644
index 000000000..55313185d
--- /dev/null
+++ b/packages/tachyons-aspect-ratios/css/tachyons-aspect-ratios.css
@@ -0,0 +1,76 @@
+/*
+
+ ASPECT RATIOS
+
+*/
+/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
+ * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
+ * Make sure there are no height and width attributes on the embedded media.
+ * Adapted from: https://github.com/suitcss/components-flex-embed
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ *
+ * */
+.aspect-ratio { height: 0; position: relative; }
+.aspect-ratio--16x9 { padding-bottom: 56.25%; }
+.aspect-ratio--9x16 { padding-bottom: 177.77%; }
+.aspect-ratio--4x3 { padding-bottom: 75%; }
+.aspect-ratio--3x4 { padding-bottom: 133.33%; }
+.aspect-ratio--6x4 { padding-bottom: 66.6%; }
+.aspect-ratio--4x6 { padding-bottom: 150%; }
+.aspect-ratio--8x5 { padding-bottom: 62.5%; }
+.aspect-ratio--5x8 { padding-bottom: 160%; }
+.aspect-ratio--7x5 { padding-bottom: 71.42%; }
+.aspect-ratio--5x7 { padding-bottom: 140%; }
+.aspect-ratio--1x1 { padding-bottom: 100%; }
+.aspect-ratio--object { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+@media screen and (min-width: 30em) {
+ .aspect-ratio-ns { height: 0; position: relative; }
+ .aspect-ratio--16x9-ns { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-ns { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-ns { padding-bottom: 75%; }
+ .aspect-ratio--3x4-ns { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-ns { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-ns { padding-bottom: 150%; }
+ .aspect-ratio--8x5-ns { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-ns { padding-bottom: 160%; }
+ .aspect-ratio--7x5-ns { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-ns { padding-bottom: 140%; }
+ .aspect-ratio--1x1-ns { padding-bottom: 100%; }
+ .aspect-ratio--object-ns { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .aspect-ratio-m { height: 0; position: relative; }
+ .aspect-ratio--16x9-m { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-m { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-m { padding-bottom: 75%; }
+ .aspect-ratio--3x4-m { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-m { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-m { padding-bottom: 150%; }
+ .aspect-ratio--8x5-m { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-m { padding-bottom: 160%; }
+ .aspect-ratio--7x5-m { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-m { padding-bottom: 140%; }
+ .aspect-ratio--1x1-m { padding-bottom: 100%; }
+ .aspect-ratio--object-m { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+}
+@media screen and (min-width: 60em) {
+ .aspect-ratio-l { height: 0; position: relative; }
+ .aspect-ratio--16x9-l { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-l { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-l { padding-bottom: 75%; }
+ .aspect-ratio--3x4-l { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-l { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-l { padding-bottom: 150%; }
+ .aspect-ratio--8x5-l { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-l { padding-bottom: 160%; }
+ .aspect-ratio--7x5-l { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-l { padding-bottom: 140%; }
+ .aspect-ratio--1x1-l { padding-bottom: 100%; }
+ .aspect-ratio--object-l { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+}
+
diff --git a/packages/tachyons-aspect-ratios/css/tachyons-aspect-ratios.min.css b/packages/tachyons-aspect-ratios/css/tachyons-aspect-ratios.min.css
new file mode 100644
index 000000000..f2fc2cc0d
--- /dev/null
+++ b/packages/tachyons-aspect-ratios/css/tachyons-aspect-ratios.min.css
@@ -0,0 +1,2 @@
+.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1}}@media screen and (min-width:30em) and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1}}
+
diff --git a/packages/tachyons-aspect-ratios/license b/packages/tachyons-aspect-ratios/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-aspect-ratios/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-aspect-ratios/package.json b/packages/tachyons-aspect-ratios/package.json
new file mode 100644
index 000000000..540517c9a
--- /dev/null
+++ b/packages/tachyons-aspect-ratios/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "tachyons-aspect-ratios",
+ "description": "Css for setting the aspect ratio of an element.",
+ "version": "1.0.1",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-aspect-ratios.css",
+ "main": "src/tachyons-aspect-ratios.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "base"
+ ],
+ "repository": "tachyons-css/tachyons-aspect-ratios",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.10",
+ "watch": "^1.0.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-aspect-ratios.css > css/tachyons-aspect-ratios.css",
+ "build:minify": "tachyons src/tachyons-aspect-ratios.css --minify > css/tachyons-aspect-ratios.min.css",
+ "build:docs": "tachyons src/tachyons-aspect-ratios.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-aspect-ratios/readme.md b/packages/tachyons-aspect-ratios/readme.md
new file mode 100644
index 000000000..0b8052141
--- /dev/null
+++ b/packages/tachyons-aspect-ratios/readme.md
@@ -0,0 +1,170 @@
+# tachyons-aspect-ratios 1.0.0
+
+Css for setting the aspect ratio of an element.
+
+#### Stats
+
+723 | 52 | 84
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-aspect-ratios
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-aspect-ratios
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-aspect-ratios.git
+```
+
+## Usage
+
+#### Using with [Postcss](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-aspect-ratios";
+```
+
+Then process the css using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the css
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built css is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source css files can be found in the `src` directory.
+Running `$ npm start` will process the source css and place the built css in the `css` directory.
+
+## The css
+
+```css
+/*
+
+ ASPECT RATIOS
+
+*/
+/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
+ * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
+ * Make sure there are no height and width attributes on the embedded media.
+ * Adapted from: https://github.com/suitcss/components-flex-embed
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ *
+ * */
+.aspect-ratio { height: 0; position: relative; }
+.aspect-ratio--16x9 { padding-bottom: 56.25%; }
+.aspect-ratio--9x16 { padding-bottom: 177.77%; }
+.aspect-ratio--4x3 { padding-bottom: 75%; }
+.aspect-ratio--3x4 { padding-bottom: 133.33%; }
+.aspect-ratio--6x4 { padding-bottom: 66.6%; }
+.aspect-ratio--4x6 { padding-bottom: 150%; }
+.aspect-ratio--8x5 { padding-bottom: 62.5%; }
+.aspect-ratio--5x8 { padding-bottom: 160%; }
+.aspect-ratio--7x5 { padding-bottom: 71.42%; }
+.aspect-ratio--5x7 { padding-bottom: 140%; }
+.aspect-ratio--1x1 { padding-bottom: 100%; }
+.aspect-ratio--object { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+@media screen and (min-width: 30em) {
+ .aspect-ratio-ns { height: 0; position: relative; }
+ .aspect-ratio--16x9-ns { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-ns { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-ns { padding-bottom: 75%; }
+ .aspect-ratio--3x4-ns { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-ns { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-ns { padding-bottom: 150%; }
+ .aspect-ratio--8x5-ns { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-ns { padding-bottom: 160%; }
+ .aspect-ratio--7x5-ns { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-ns { padding-bottom: 140%; }
+ .aspect-ratio--1x1-ns { padding-bottom: 100%; }
+ .aspect-ratio--object-ns { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .aspect-ratio-m { height: 0; position: relative; }
+ .aspect-ratio--16x9-m { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-m { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-m { padding-bottom: 75%; }
+ .aspect-ratio--3x4-m { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-m { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-m { padding-bottom: 150%; }
+ .aspect-ratio--8x5-m { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-m { padding-bottom: 160%; }
+ .aspect-ratio--7x5-m { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-m { padding-bottom: 140%; }
+ .aspect-ratio--1x1-m { padding-bottom: 100%; }
+ .aspect-ratio--object-m { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+}
+@media screen and (min-width: 60em) {
+ .aspect-ratio-l { height: 0; position: relative; }
+ .aspect-ratio--16x9-l { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-l { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-l { padding-bottom: 75%; }
+ .aspect-ratio--3x4-l { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-l { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-l { padding-bottom: 150%; }
+ .aspect-ratio--8x5-l { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-l { padding-bottom: 160%; }
+ .aspect-ratio--7x5-l { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-l { padding-bottom: 140%; }
+ .aspect-ratio--1x1-l { padding-bottom: 100%; }
+ .aspect-ratio--object-l { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-aspect-ratios/src/tachyons-aspect-ratios.css b/packages/tachyons-aspect-ratios/src/tachyons-aspect-ratios.css
new file mode 100644
index 000000000..bd152b10a
--- /dev/null
+++ b/packages/tachyons-aspect-ratios/src/tachyons-aspect-ratios.css
@@ -0,0 +1,141 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ ASPECT RATIOS
+
+*/
+
+/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
+ * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
+ * Make sure there are no height and width attributes on the embedded media.
+ * Adapted from: https://github.com/suitcss/components-flex-embed
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ *
+ * */
+
+.aspect-ratio {
+ height: 0;
+ position: relative;
+}
+
+.aspect-ratio--16x9 { padding-bottom: 56.25%; }
+.aspect-ratio--9x16 { padding-bottom: 177.77%; }
+
+.aspect-ratio--4x3 { padding-bottom: 75%; }
+.aspect-ratio--3x4 { padding-bottom: 133.33%; }
+
+.aspect-ratio--6x4 { padding-bottom: 66.6%; }
+.aspect-ratio--4x6 { padding-bottom: 150%; }
+
+.aspect-ratio--8x5 { padding-bottom: 62.5%; }
+.aspect-ratio--5x8 { padding-bottom: 160%; }
+
+.aspect-ratio--7x5 { padding-bottom: 71.42%; }
+.aspect-ratio--5x7 { padding-bottom: 140%; }
+
+.aspect-ratio--1x1 { padding-bottom: 100%; }
+
+.aspect-ratio--object {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+}
+
+@media (--breakpoint-not-small){
+ .aspect-ratio-ns {
+ height: 0;
+ position: relative;
+ }
+ .aspect-ratio--16x9-ns { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-ns { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-ns { padding-bottom: 75%; }
+ .aspect-ratio--3x4-ns { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-ns { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-ns { padding-bottom: 150%; }
+ .aspect-ratio--8x5-ns { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-ns { padding-bottom: 160%; }
+ .aspect-ratio--7x5-ns { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-ns { padding-bottom: 140%; }
+ .aspect-ratio--1x1-ns { padding-bottom: 100%; }
+ .aspect-ratio--object-ns {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ }
+}
+
+@media (--breakpoint-medium){
+ .aspect-ratio-m {
+ height: 0;
+ position: relative;
+ }
+ .aspect-ratio--16x9-m { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-m { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-m { padding-bottom: 75%; }
+ .aspect-ratio--3x4-m { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-m { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-m { padding-bottom: 150%; }
+ .aspect-ratio--8x5-m { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-m { padding-bottom: 160%; }
+ .aspect-ratio--7x5-m { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-m { padding-bottom: 140%; }
+ .aspect-ratio--1x1-m { padding-bottom: 100%; }
+ .aspect-ratio--object-m {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ }
+}
+
+@media (--breakpoint-large){
+ .aspect-ratio-l {
+ height: 0;
+ position: relative;
+ }
+ .aspect-ratio--16x9-l { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-l { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-l { padding-bottom: 75%; }
+ .aspect-ratio--3x4-l { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-l { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-l { padding-bottom: 150%; }
+ .aspect-ratio--8x5-l { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-l { padding-bottom: 160%; }
+ .aspect-ratio--7x5-l { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-l { padding-bottom: 140%; }
+ .aspect-ratio--1x1-l { padding-bottom: 100%; }
+ .aspect-ratio--object-l {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ }
+}
diff --git a/packages/tachyons-background-position/.gitignore b/packages/tachyons-background-position/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-background-position/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-background-position/code-of-conduct.md b/packages/tachyons-background-position/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-background-position/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-background-position/css/tachyons-background-position.css b/packages/tachyons-background-position/css/tachyons-background-position.css
new file mode 100644
index 000000000..1ee8f2abd
--- /dev/null
+++ b/packages/tachyons-background-position/css/tachyons-background-position.css
@@ -0,0 +1,47 @@
+/*
+
+ BACKGROUND POSITION
+
+ Base:
+ bg = background
+
+ Modifiers:
+ -center = center center
+ -top = top center
+ -right = center right
+ -bottom = bottom center
+ -left = center left
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.bg-center { background-repeat: no-repeat; background-position: center center; }
+.bg-top { background-repeat: no-repeat; background-position: top center; }
+.bg-right { background-repeat: no-repeat; background-position: center right; }
+.bg-bottom { background-repeat: no-repeat; background-position: bottom center; }
+.bg-left { background-repeat: no-repeat; background-position: center left; }
+@media screen and (min-width: 30em) {
+ .bg-center-ns { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-ns { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-ns { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-ns { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-ns { background-repeat: no-repeat; background-position: center left; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .bg-center-m { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-m { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-m { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-m { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-m { background-repeat: no-repeat; background-position: center left; }
+}
+@media screen and (min-width: 60em) {
+ .bg-center-l { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-l { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-l { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-l { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-l { background-repeat: no-repeat; background-position: center left; }
+}
+
diff --git a/packages/tachyons-background-position/css/tachyons-background-position.min.css b/packages/tachyons-background-position/css/tachyons-background-position.min.css
new file mode 100644
index 000000000..16a604e76
--- /dev/null
+++ b/packages/tachyons-background-position/css/tachyons-background-position.min.css
@@ -0,0 +1,2 @@
+.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-repeat:no-repeat;background-position:0}@media screen and (min-width:30em){.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-repeat:no-repeat;background-position:0}}@media screen and (min-width:30em) and (max-width:60em){.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-repeat:no-repeat;background-position:0}}@media screen and (min-width:60em){.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-repeat:no-repeat;background-position:0}}
+
diff --git a/packages/tachyons-background-position/license b/packages/tachyons-background-position/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-background-position/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-background-position/package.json b/packages/tachyons-background-position/package.json
new file mode 100644
index 000000000..b578e8020
--- /dev/null
+++ b/packages/tachyons-background-position/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "tachyons-background-position",
+ "description": "Tachyons module for setting background position of images.",
+ "version": "1.0.3",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-background-position.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "base"
+ ],
+ "repository": "tachyons-css/tachyons-background-position",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.9",
+ "watch": "^1.0.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-background-position.css > css/tachyons-background-position.css",
+ "build:minify": "tachyons src/tachyons-background-position.css --minify > css/tachyons-background-position.min.css",
+ "build:docs": "tachyons src/tachyons-background-position.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-background-position/readme.md b/packages/tachyons-background-position/readme.md
new file mode 100644
index 000000000..46f9f9847
--- /dev/null
+++ b/packages/tachyons-background-position/readme.md
@@ -0,0 +1,141 @@
+# tachyons-background-position 1.0.0
+
+Tachyons module for setting background position of images.
+
+#### Stats
+
+371 | 20 | 40
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-background-position
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-background-position
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-background-position.git
+```
+
+## Usage
+
+#### Using with [Postcss](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-background-position";
+```
+
+Then process the css using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the css
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built css is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source css files can be found in the `src` directory.
+Running `$ npm start` will process the source css and place the built css in the `css` directory.
+
+## The css
+
+```css
+/*
+
+ BACKGROUND POSITION
+
+ Base:
+ bg = background
+
+ Modifiers:
+ -center = center center
+ -top = top center
+ -right = center right
+ -bottom = bottom center
+ -left = center left
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.bg-center { background-repeat: no-repeat; background-position: center center; }
+.bg-top { background-repeat: no-repeat; background-position: top center; }
+.bg-right { background-repeat: no-repeat; background-position: center right; }
+.bg-bottom { background-repeat: no-repeat; background-position: bottom center; }
+.bg-left { background-repeat: no-repeat; background-position: center left; }
+@media screen and (min-width: 30em) {
+ .bg-center-ns { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-ns { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-ns { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-ns { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-ns { background-repeat: no-repeat; background-position: center left; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .bg-center-m { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-m { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-m { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-m { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-m { background-repeat: no-repeat; background-position: center left; }
+}
+@media screen and (min-width: 60em) {
+ .bg-center-l { background-repeat: no-repeat; background-position: center center; }
+ .bg-top-l { background-repeat: no-repeat; background-position: top center; }
+ .bg-right-l { background-repeat: no-repeat; background-position: center right; }
+ .bg-bottom-l { background-repeat: no-repeat; background-position: bottom center; }
+ .bg-left-l { background-repeat: no-repeat; background-position: center left; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-background-position/src/tachyons-background-position.css b/packages/tachyons-background-position/src/tachyons-background-position.css
new file mode 100644
index 000000000..7a1815b04
--- /dev/null
+++ b/packages/tachyons-background-position/src/tachyons-background-position.css
@@ -0,0 +1,132 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ BACKGROUND POSITION
+
+ Base:
+ bg = background
+
+ Modifiers:
+ -center = center center
+ -top = top center
+ -right = center right
+ -bottom = bottom center
+ -left = center left
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+
+.bg-center {
+ background-repeat: no-repeat;
+ background-position: center center;
+}
+
+.bg-top {
+ background-repeat: no-repeat;
+ background-position: top center;
+}
+
+.bg-right {
+ background-repeat: no-repeat;
+ background-position: center right;
+}
+
+.bg-bottom {
+ background-repeat: no-repeat;
+ background-position: bottom center;
+}
+
+.bg-left {
+ background-repeat: no-repeat;
+ background-position: center left;
+}
+
+@media (--breakpoint-not-small) {
+ .bg-center-ns {
+ background-repeat: no-repeat;
+ background-position: center center;
+ }
+
+ .bg-top-ns {
+ background-repeat: no-repeat;
+ background-position: top center;
+ }
+
+ .bg-right-ns {
+ background-repeat: no-repeat;
+ background-position: center right;
+ }
+
+ .bg-bottom-ns {
+ background-repeat: no-repeat;
+ background-position: bottom center;
+ }
+
+ .bg-left-ns {
+ background-repeat: no-repeat;
+ background-position: center left;
+ }
+}
+
+@media (--breakpoint-medium) {
+ .bg-center-m {
+ background-repeat: no-repeat;
+ background-position: center center;
+ }
+
+ .bg-top-m {
+ background-repeat: no-repeat;
+ background-position: top center;
+ }
+
+ .bg-right-m {
+ background-repeat: no-repeat;
+ background-position: center right;
+ }
+
+ .bg-bottom-m {
+ background-repeat: no-repeat;
+ background-position: bottom center;
+ }
+
+ .bg-left-m {
+ background-repeat: no-repeat;
+ background-position: center left;
+ }
+}
+
+@media (--breakpoint-large) {
+ .bg-center-l {
+ background-repeat: no-repeat;
+ background-position: center center;
+ }
+
+ .bg-top-l {
+ background-repeat: no-repeat;
+ background-position: top center;
+ }
+
+ .bg-right-l {
+ background-repeat: no-repeat;
+ background-position: center right;
+ }
+
+ .bg-bottom-l {
+ background-repeat: no-repeat;
+ background-position: bottom center;
+ }
+
+ .bg-left-l {
+ background-repeat: no-repeat;
+ background-position: center left;
+ }
+}
diff --git a/packages/tachyons-background-size/.gitignore b/packages/tachyons-background-size/.gitignore
new file mode 100644
index 000000000..c2870c122
--- /dev/null
+++ b/packages/tachyons-background-size/.gitignore
@@ -0,0 +1,88 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-background-size/LICENSE.txt b/packages/tachyons-background-size/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-background-size/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-background-size/code-of-conduct.md b/packages/tachyons-background-size/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-background-size/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-background-size/css/tachyons-background-size.css b/packages/tachyons-background-size/css/tachyons-background-size.css
new file mode 100644
index 000000000..fa9d12ba5
--- /dev/null
+++ b/packages/tachyons-background-size/css/tachyons-background-size.css
@@ -0,0 +1,29 @@
+/*
+
+ BACKGROUND SIZE
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/*
+ Often used in combination with background image set as an inline style
+ on an html element.
+*/
+.cover { background-size: cover; }
+.contain { background-size: contain; }
+@media screen and (min-width: 30em) {
+ .cover-ns { background-size: cover; }
+ .contain-ns { background-size: contain; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .cover-m { background-size: cover; }
+ .contain-m { background-size: contain; }
+}
+@media screen and (min-width: 60em) {
+ .cover-l { background-size: cover; }
+ .contain-l { background-size: contain; }
+}
+
diff --git a/packages/tachyons-background-size/css/tachyons-background-size.min.css b/packages/tachyons-background-size/css/tachyons-background-size.min.css
new file mode 100644
index 000000000..8d6fd0b3c
--- /dev/null
+++ b/packages/tachyons-background-size/css/tachyons-background-size.min.css
@@ -0,0 +1,2 @@
+.cover{background-size:cover}.contain{background-size:contain}@media screen and (min-width:30em){.cover-ns{background-size:cover}.contain-ns{background-size:contain}}@media screen and (min-width:30em) and (max-width:60em){.cover-m{background-size:cover}.contain-m{background-size:contain}}@media screen and (min-width:60em){.cover-l{background-size:cover}.contain-l{background-size:contain}}
+
diff --git a/packages/tachyons-background-size/package.json b/packages/tachyons-background-size/package.json
new file mode 100644
index 000000000..96106671e
--- /dev/null
+++ b/packages/tachyons-background-size/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "tachyons-background-size",
+ "description": "Background size CSS module for Tachyons",
+ "version": "5.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-background-size.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-module",
+ "tachyons-css",
+ "css",
+ "background-size"
+ ],
+ "repository": "tachyons-css/tachyons-background-size",
+ "license": "ISC",
+ "dependencies": {},
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-background-size.css > css/tachyons-background-size.css",
+ "build:minify": "tachyons src/tachyons-background-size.css --minify > css/tachyons-background-size.min.css",
+ "build:docs": "tachyons src/tachyons-background-size.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "theming",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-background-size/readme.md b/packages/tachyons-background-size/readme.md
new file mode 100644
index 000000000..a8c6d78d5
--- /dev/null
+++ b/packages/tachyons-background-size/readme.md
@@ -0,0 +1,123 @@
+# tachyons-background-size 5.0.0
+
+Background size CSS module for Tachyons
+
+#### Stats
+
+279 | 8 | 8
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-background-size
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-background-size
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-background-size.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-background-size";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ BACKGROUND SIZE
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/*
+ Often used in combination with background image set as an inline style
+ on an html element.
+*/
+.cover { background-size: cover; }
+.contain { background-size: contain; }
+@media screen and (min-width: 30em) {
+ .cover-ns { background-size: cover; }
+ .contain-ns { background-size: contain; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .cover-m { background-size: cover; }
+ .contain-m { background-size: contain; }
+}
+@media screen and (min-width: 60em) {
+ .cover-l { background-size: cover; }
+ .contain-l { background-size: contain; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-background-size/src/tachyons-background-size.css b/packages/tachyons-background-size/src/tachyons-background-size.css
new file mode 100644
index 000000000..95955483f
--- /dev/null
+++ b/packages/tachyons-background-size/src/tachyons-background-size.css
@@ -0,0 +1,40 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ BACKGROUND SIZE
+ Docs: http://tachyons.io/docs/themes/background-size/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+/*
+ Often used in combination with background image set as an inline style
+ on an html element.
+*/
+
+ .cover { background-size: cover!important; }
+ .contain { background-size: contain!important; }
+
+@media (--breakpoint-not-small) {
+ .cover-ns { background-size: cover!important; }
+ .contain-ns { background-size: contain!important; }
+}
+
+@media (--breakpoint-medium) {
+ .cover-m { background-size: cover!important; }
+ .contain-m { background-size: contain!important; }
+}
+
+@media (--breakpoint-large) {
+ .cover-l { background-size: cover!important; }
+ .contain-l { background-size: contain!important; }
+}
diff --git a/packages/tachyons-base/.gitignore b/packages/tachyons-base/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-base/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-base/code-of-conduct.md b/packages/tachyons-base/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-base/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-base/css/tachyons-base.css b/packages/tachyons-base/css/tachyons-base.css
new file mode 100644
index 000000000..1b5341668
--- /dev/null
+++ b/packages/tachyons-base/css/tachyons-base.css
@@ -0,0 +1,7 @@
+/*
+
+ BASE
+
+*/
+html, body { height: 100%; }
+
diff --git a/packages/tachyons-base/css/tachyons-base.min.css b/packages/tachyons-base/css/tachyons-base.min.css
new file mode 100644
index 000000000..9d5439b43
--- /dev/null
+++ b/packages/tachyons-base/css/tachyons-base.min.css
@@ -0,0 +1,2 @@
+body,html{height:100%}
+
diff --git a/packages/tachyons-base/license b/packages/tachyons-base/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-base/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-base/package.json b/packages/tachyons-base/package.json
new file mode 100644
index 000000000..ee409b8c4
--- /dev/null
+++ b/packages/tachyons-base/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "tachyons-base",
+ "description": "Base CSS module for Tachyons",
+ "version": "1.2.3",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-base.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "base"
+ ],
+ "repository": "tachyons-css/tachyons-base",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^0.6.1",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-base.css > css/tachyons-base.css",
+ "build:minify": "tachyons src/tachyons-base.css --minify > css/tachyons-base.min.css",
+ "build:docs": "tachyons src/tachyons-base.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-base/readme.md b/packages/tachyons-base/readme.md
new file mode 100644
index 000000000..dc5b23822
--- /dev/null
+++ b/packages/tachyons-base/readme.md
@@ -0,0 +1,83 @@
+# tachyons-base 1.2.3
+
+Base CSS module for Tachyons
+
+#### Stats
+
+64 | 2 | 1
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-base
+```
+
+#### With Git
+
+```
+git clone https://github.com/tachyons-css/tachyons-base
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-base";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ BASE
+
+*/
+html, body { height: 100%; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+MIT
+
diff --git a/packages/tachyons-base/src/tachyons-base.css b/packages/tachyons-base/src/tachyons-base.css
new file mode 100644
index 000000000..cc9252ed1
--- /dev/null
+++ b/packages/tachyons-base/src/tachyons-base.css
@@ -0,0 +1,11 @@
+/*
+
+ BASE
+
+*/
+
+html,
+body {
+ height: 100%;
+}
+
diff --git a/packages/tachyons-border-colors/.gitignore b/packages/tachyons-border-colors/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-border-colors/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-border-colors/LICENSE.txt b/packages/tachyons-border-colors/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-border-colors/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-border-colors/code-of-conduct.md b/packages/tachyons-border-colors/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-border-colors/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-border-colors/css/tachyons-border-colors.css b/packages/tachyons-border-colors/css/tachyons-border-colors.css
new file mode 100644
index 000000000..7b3b61db5
--- /dev/null
+++ b/packages/tachyons-border-colors/css/tachyons-border-colors.css
@@ -0,0 +1,73 @@
+/*
+
+ Tachyons
+ COLOR VARIABLES
+
+ Grayscale
+ - Solids
+ - Transparencies
+*/
+/*
+
+ BORDER COLORS
+
+*/
+.b--black { border-color: #000; }
+.b--near-black { border-color: #111; }
+.b--dark-gray { border-color: #333; }
+.b--mid-gray { border-color: #555; }
+.b--gray { border-color: #777; }
+.b--silver { border-color: #999; }
+.b--light-silver { border-color: #aaa; }
+.b--light-gray { border-color: #eee; }
+.b--near-white { border-color: #f4f4f4; }
+.b--white { border-color: #fff; }
+.b--white-90 { border-color: rgba( 255, 255, 255, .9 ); }
+.b--white-80 { border-color: rgba( 255, 255, 255, .8 ); }
+.b--white-70 { border-color: rgba( 255, 255, 255, .7 ); }
+.b--white-60 { border-color: rgba( 255, 255, 255, .6 ); }
+.b--white-50 { border-color: rgba( 255, 255, 255, .5 ); }
+.b--white-40 { border-color: rgba( 255, 255, 255, .4 ); }
+.b--white-30 { border-color: rgba( 255, 255, 255, .3 ); }
+.b--white-20 { border-color: rgba( 255, 255, 255, .2 ); }
+.b--white-10 { border-color: rgba( 255, 255, 255, .1 ); }
+.b--white-05 { border-color: rgba( 255, 255, 255, .05 ); }
+.b--white-025 { border-color: rgba( 255, 255, 255, .025 ); }
+.b--white-0125 { border-color: rgba( 255, 255, 255, .0125 ); }
+.b--black-90 { border-color: rgba( 0, 0, 0, .9 ); }
+.b--black-80 { border-color: rgba( 0, 0, 0, .8 ); }
+.b--black-70 { border-color: rgba( 0, 0, 0, .7 ); }
+.b--black-60 { border-color: rgba( 0, 0, 0, .6 ); }
+.b--black-50 { border-color: rgba( 0, 0, 0, .5 ); }
+.b--black-40 { border-color: rgba( 0, 0, 0, .4 ); }
+.b--black-30 { border-color: rgba( 0, 0, 0, .3 ); }
+.b--black-20 { border-color: rgba( 0, 0, 0, .2 ); }
+.b--black-10 { border-color: rgba( 0, 0, 0, .1 ); }
+.b--black-05 { border-color: rgba( 0, 0, 0, .05 ); }
+.b--black-025 { border-color: rgba( 0, 0, 0, .025 ); }
+.b--black-0125 { border-color: rgba( 0, 0, 0, .0125 ); }
+.b--dark-red { border-color: #f00008; }
+.b--red { border-color: #ff3223; }
+.b--orange { border-color: #f3a801; }
+.b--gold { border-color: #f2c800; }
+.b--yellow { border-color: #ffde37; }
+.b--purple { border-color: #7d5da9; }
+.b--light-purple { border-color: #8d4f92; }
+.b--hot-pink { border-color: #d62288; }
+.b--dark-pink { border-color: #c64774; }
+.b--pink { border-color: #f49cc8; }
+.b--dark-green { border-color: #006c71; }
+.b--green { border-color: #41d69f; }
+.b--navy { border-color: #001b44; }
+.b--dark-blue { border-color: #00449e; }
+.b--blue { border-color: #357edd; }
+.b--light-blue { border-color: #96ccff; }
+.b--lightest-blue { border-color: #cdecff; }
+.b--washed-blue { border-color: #f6fffe; }
+.b--washed-green { border-color: #e8fdf5; }
+.b--washed-yellow { border-color: #fff8d5; }
+.b--light-pink { border-color: #efa4b8; }
+.b--light-yellow { border-color: #f3dd70; }
+.b--light-red { border-color: #ffd3c0; }
+.b--transparent { border-color: transparent; }
+
diff --git a/packages/tachyons-border-colors/css/tachyons-border-colors.min.css b/packages/tachyons-border-colors/css/tachyons-border-colors.min.css
new file mode 100644
index 000000000..8642a6e27
--- /dev/null
+++ b/packages/tachyons-border-colors/css/tachyons-border-colors.min.css
@@ -0,0 +1,2 @@
+.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.0125)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.0125)}.b--dark-red{border-color:#f00008}.b--red{border-color:#ff3223}.b--orange{border-color:#f3a801}.b--gold{border-color:#f2c800}.b--yellow{border-color:#ffde37}.b--purple{border-color:#7d5da9}.b--light-purple{border-color:#8d4f92}.b--hot-pink{border-color:#d62288}.b--dark-pink{border-color:#c64774}.b--pink{border-color:#f49cc8}.b--dark-green{border-color:#006c71}.b--green{border-color:#41d69f}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fff8d5}.b--light-pink{border-color:#efa4b8}.b--light-yellow{border-color:#f3dd70}.b--light-red{border-color:#ffd3c0}.b--transparent{border-color:transparent}
+
diff --git a/packages/tachyons-border-colors/package.json b/packages/tachyons-border-colors/package.json
new file mode 100644
index 000000000..b2a1e951a
--- /dev/null
+++ b/packages/tachyons-border-colors/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "tachyons-border-colors",
+ "version": "4.1.3",
+ "style": "src/tachyons-border-colors.css",
+ "homepage": "http://github.com/tachyons-css/tachyons-border-colors",
+ "description": "Performance based css module.",
+ "keywords": [],
+ "repository": {
+ "type": "git",
+ "url": "http://github.com/tachyons-css/tachyons-border-colors.git"
+ },
+ "bugs": {
+ "url": "https://github.com/tachyons-css/tachyons-border-colors/issues",
+ "email": "hi@mrmrs.cc"
+ },
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-border-colors.css > css/tachyons-border-colors.css",
+ "build:minify": "tachyons src/tachyons-border-colors.css --minify > css/tachyons-border-colors.min.css",
+ "build:docs": "tachyons src/tachyons-border-colors.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ }
+}
diff --git a/packages/tachyons-border-colors/readme.md b/packages/tachyons-border-colors/readme.md
new file mode 100644
index 000000000..561185f22
--- /dev/null
+++ b/packages/tachyons-border-colors/readme.md
@@ -0,0 +1,167 @@
+# tachyons-border-colors 4.1.3
+
+Performance based css module.
+
+#### Stats
+
+604 | 58 | 58
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-border-colors
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-border-colors
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-border-colors.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-border-colors";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ Tachyons
+ COLOR VARIABLES
+
+ Grayscale
+ - Solids
+ - Transparencies
+*/
+/*
+
+ BORDER COLORS
+
+*/
+.b--black { border-color: #000; }
+.b--near-black { border-color: #111; }
+.b--dark-gray { border-color: #333; }
+.b--mid-gray { border-color: #555; }
+.b--gray { border-color: #777; }
+.b--silver { border-color: #999; }
+.b--light-silver { border-color: #aaa; }
+.b--light-gray { border-color: #eee; }
+.b--near-white { border-color: #f4f4f4; }
+.b--white { border-color: #fff; }
+.b--white-90 { border-color: rgba( 255, 255, 255, .9 ); }
+.b--white-80 { border-color: rgba( 255, 255, 255, .8 ); }
+.b--white-70 { border-color: rgba( 255, 255, 255, .7 ); }
+.b--white-60 { border-color: rgba( 255, 255, 255, .6 ); }
+.b--white-50 { border-color: rgba( 255, 255, 255, .5 ); }
+.b--white-40 { border-color: rgba( 255, 255, 255, .4 ); }
+.b--white-30 { border-color: rgba( 255, 255, 255, .3 ); }
+.b--white-20 { border-color: rgba( 255, 255, 255, .2 ); }
+.b--white-10 { border-color: rgba( 255, 255, 255, .1 ); }
+.b--white-05 { border-color: rgba( 255, 255, 255, .05 ); }
+.b--white-025 { border-color: rgba( 255, 255, 255, .025 ); }
+.b--white-0125 { border-color: rgba( 255, 255, 255, .0125 ); }
+.b--black-90 { border-color: rgba( 0, 0, 0, .9 ); }
+.b--black-80 { border-color: rgba( 0, 0, 0, .8 ); }
+.b--black-70 { border-color: rgba( 0, 0, 0, .7 ); }
+.b--black-60 { border-color: rgba( 0, 0, 0, .6 ); }
+.b--black-50 { border-color: rgba( 0, 0, 0, .5 ); }
+.b--black-40 { border-color: rgba( 0, 0, 0, .4 ); }
+.b--black-30 { border-color: rgba( 0, 0, 0, .3 ); }
+.b--black-20 { border-color: rgba( 0, 0, 0, .2 ); }
+.b--black-10 { border-color: rgba( 0, 0, 0, .1 ); }
+.b--black-05 { border-color: rgba( 0, 0, 0, .05 ); }
+.b--black-025 { border-color: rgba( 0, 0, 0, .025 ); }
+.b--black-0125 { border-color: rgba( 0, 0, 0, .0125 ); }
+.b--dark-red { border-color: #f00008; }
+.b--red { border-color: #ff3223; }
+.b--orange { border-color: #f3a801; }
+.b--gold { border-color: #f2c800; }
+.b--yellow { border-color: #ffde37; }
+.b--purple { border-color: #7d5da9; }
+.b--light-purple { border-color: #8d4f92; }
+.b--hot-pink { border-color: #d62288; }
+.b--dark-pink { border-color: #c64774; }
+.b--pink { border-color: #f49cc8; }
+.b--dark-green { border-color: #006c71; }
+.b--green { border-color: #41d69f; }
+.b--navy { border-color: #001b44; }
+.b--dark-blue { border-color: #00449e; }
+.b--blue { border-color: #357edd; }
+.b--light-blue { border-color: #96ccff; }
+.b--lightest-blue { border-color: #cdecff; }
+.b--washed-blue { border-color: #f6fffe; }
+.b--washed-green { border-color: #e8fdf5; }
+.b--washed-yellow { border-color: #fff8d5; }
+.b--light-pink { border-color: #efa4b8; }
+.b--light-yellow { border-color: #f3dd70; }
+.b--light-red { border-color: #ffd3c0; }
+.b--transparent { border-color: transparent; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-border-colors/src/tachyons-border-colors.css b/packages/tachyons-border-colors/src/tachyons-border-colors.css
new file mode 100644
index 000000000..99fccc42d
--- /dev/null
+++ b/packages/tachyons-border-colors/src/tachyons-border-colors.css
@@ -0,0 +1,86 @@
+/*
+
+ BORDER COLORS
+ Docs: http://tachyons.io/docs/themes/borders/
+
+ Border colors can be used to extend the base
+ border classes ba,bt,bb,br,bl found in the _borders.css file.
+
+ The base border class by default will set the color of the border
+ to that of the current text color. These classes are for the cases
+ where you desire for the text and border colors to be different.
+
+ Base:
+ b = border
+
+ Modifiers:
+ --color-name = each color variable name is also a border color name
+
+*/
+
+.b--black { border-color: var(--black); }
+.b--near-black { border-color: var(--near-black); }
+.b--dark-gray { border-color: var(--dark-gray); }
+.b--mid-gray { border-color: var(--mid-gray); }
+.b--gray { border-color: var(--gray); }
+.b--silver { border-color: var(--silver); }
+.b--light-silver { border-color: var(--light-silver); }
+.b--moon-gray { border-color: var(--moon-gray); }
+.b--light-gray { border-color: var(--light-gray); }
+.b--near-white { border-color: var(--near-white); }
+.b--white { border-color: var(--white); }
+
+.b--white-90 { border-color: var(--white-90); }
+.b--white-80 { border-color: var(--white-80); }
+.b--white-70 { border-color: var(--white-70); }
+.b--white-60 { border-color: var(--white-60); }
+.b--white-50 { border-color: var(--white-50); }
+.b--white-40 { border-color: var(--white-40); }
+.b--white-30 { border-color: var(--white-30); }
+.b--white-20 { border-color: var(--white-20); }
+.b--white-10 { border-color: var(--white-10); }
+.b--white-05 { border-color: var(--white-05); }
+.b--white-025 { border-color: var(--white-025); }
+.b--white-0125 { border-color: var(--white-0125); }
+
+.b--black-90 { border-color: var(--black-90); }
+.b--black-80 { border-color: var(--black-80); }
+.b--black-70 { border-color: var(--black-70); }
+.b--black-60 { border-color: var(--black-60); }
+.b--black-50 { border-color: var(--black-50); }
+.b--black-40 { border-color: var(--black-40); }
+.b--black-30 { border-color: var(--black-30); }
+.b--black-20 { border-color: var(--black-20); }
+.b--black-10 { border-color: var(--black-10); }
+.b--black-05 { border-color: var(--black-05); }
+.b--black-025 { border-color: var(--black-025); }
+.b--black-0125 { border-color: var(--black-0125); }
+
+.b--dark-red { border-color: var(--dark-red); }
+.b--red { border-color: var(--red); }
+.b--light-red { border-color: var(--light-red); }
+.b--orange { border-color: var(--orange); }
+.b--gold { border-color: var(--gold); }
+.b--yellow { border-color: var(--yellow); }
+.b--light-yellow { border-color: var(--light-yellow); }
+.b--purple { border-color: var(--purple); }
+.b--light-purple { border-color: var(--light-purple); }
+.b--dark-pink { border-color: var(--dark-pink); }
+.b--hot-pink { border-color: var(--hot-pink); }
+.b--pink { border-color: var(--pink); }
+.b--light-pink { border-color: var(--light-pink); }
+.b--dark-green { border-color: var(--dark-green); }
+.b--green { border-color: var(--green); }
+.b--light-green { border-color: var(--light-green); }
+.b--navy { border-color: var(--navy); }
+.b--dark-blue { border-color: var(--dark-blue); }
+.b--blue { border-color: var(--blue); }
+.b--light-blue { border-color: var(--light-blue); }
+.b--lightest-blue { border-color: var(--lightest-blue); }
+.b--washed-blue { border-color: var(--washed-blue); }
+.b--washed-green { border-color: var(--washed-green); }
+.b--washed-yellow { border-color: var(--washed-yellow); }
+.b--washed-red { border-color: var(--washed-red); }
+
+.b--transparent { border-color: var(--transparent); }
+.b--inherit { border-color: inherit; }
diff --git a/packages/tachyons-border-radius/.gitignore b/packages/tachyons-border-radius/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-border-radius/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-border-radius/LICENSE.txt b/packages/tachyons-border-radius/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-border-radius/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-border-radius/code-of-conduct.md b/packages/tachyons-border-radius/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-border-radius/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-border-radius/css/tachyons-border-radius.css b/packages/tachyons-border-radius/css/tachyons-border-radius.css
new file mode 100644
index 000000000..b81875791
--- /dev/null
+++ b/packages/tachyons-border-radius/css/tachyons-border-radius.css
@@ -0,0 +1,69 @@
+/*
+
+ BORDER RADIUS
+
+ Base:
+ br = border-radius
+
+ Modifiers:
+ 0 = 0/none
+ 1 = 1st step in scale
+ 2 = 2nd step in scale
+ 3 = 3rd step in scale
+ 4 = 4th step in scale
+ -100 = 100%
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.br0 { border-radius: 0; }
+.br1 { border-radius: .125rem; }
+.br2 { border-radius: .25rem; }
+.br3 { border-radius: .5rem; }
+.br4 { border-radius: 1rem; }
+.br-100 { border-radius: 100%; }
+.br--bottom { border-top-left-radius: 0; border-top-right-radius: 0; }
+.br--top { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+.br--right { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+.br--left { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+@media screen and (min-width: 30em) {
+ .br0-ns { border-radius: 0; }
+ .br1-ns { border-radius: .125rem; }
+ .br2-ns { border-radius: .25rem; }
+ .br3-ns { border-radius: .5rem; }
+ .br4-ns { border-radius: 1rem; }
+ .br-100-ns { border-radius: 100%; }
+ .br--bottom-ns { border-top-left-radius: 0; border-top-right-radius: 0; }
+ .br--top-ns { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+ .br--right-ns { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+ .br--left-ns { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .br0-m { border-radius: 0; }
+ .br1-m { border-radius: .125rem; }
+ .br2-m { border-radius: .25rem; }
+ .br3-m { border-radius: .5rem; }
+ .br4-m { border-radius: 1rem; }
+ .br-100-m { border-radius: 100%; }
+ .br--bottom-m { border-top-left-radius: 0; border-top-right-radius: 0; }
+ .br--top-m { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+ .br--right-m { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+ .br--left-m { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+}
+@media screen and (min-width: 60em) {
+ .br0-l { border-radius: 0; }
+ .br1-l { border-radius: .125rem; }
+ .br2-l { border-radius: .25rem; }
+ .br3-l { border-radius: .5rem; }
+ .br4-l { border-radius: 1rem; }
+ .br-100-l { border-radius: 100%; }
+ .br--bottom-l { border-top-left-radius: 0; border-top-right-radius: 0; }
+ .br--top-l { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+ .br--right-l { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+ .br--left-l { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+}
+
diff --git a/packages/tachyons-border-radius/css/tachyons-border-radius.min.css b/packages/tachyons-border-radius/css/tachyons-border-radius.min.css
new file mode 100644
index 000000000..8b1960df9
--- /dev/null
+++ b/packages/tachyons-border-radius/css/tachyons-border-radius.min.css
@@ -0,0 +1,2 @@
+.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-top-right-radius:0;border-bottom-right-radius:0}@media screen and (min-width:30em){.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (min-width:30em) and (max-width:60em){.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (min-width:60em){.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}}
+
diff --git a/packages/tachyons-border-radius/package.json b/packages/tachyons-border-radius/package.json
new file mode 100644
index 000000000..c870b8cb4
--- /dev/null
+++ b/packages/tachyons-border-radius/package.json
@@ -0,0 +1,40 @@
+{
+ "name": "tachyons-border-radius",
+ "description": "Border radius CSS module for Tachyons",
+ "version": "5.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-border-radius.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "border-radius"
+ ],
+ "repository": "tachyons-css/tachyons-border-radius",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-border-radius.css > css/tachyons-border-radius.css",
+ "build:minify": "tachyons src/tachyons-border-radius.css --minify > css/tachyons-border-radius.min.css",
+ "build:docs": "tachyons src/tachyons-border-radius.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "dependencies": {},
+ "metadata": {
+ "category": "theming",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-border-radius/readme.md b/packages/tachyons-border-radius/readme.md
new file mode 100644
index 000000000..be1a40941
--- /dev/null
+++ b/packages/tachyons-border-radius/readme.md
@@ -0,0 +1,163 @@
+# tachyons-border-radius 5.0.0
+
+Border radius CSS module for Tachyons
+
+#### Stats
+
+465 | 40 | 56
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-border-radius
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-border-radius
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-border-radius.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-border-radius";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ BORDER RADIUS
+
+ Base:
+ br = border-radius
+
+ Modifiers:
+ 0 = 0/none
+ 1 = 1st step in scale
+ 2 = 2nd step in scale
+ 3 = 3rd step in scale
+ 4 = 4th step in scale
+ -100 = 100%
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.br0 { border-radius: 0; }
+.br1 { border-radius: .125rem; }
+.br2 { border-radius: .25rem; }
+.br3 { border-radius: .5rem; }
+.br4 { border-radius: 1rem; }
+.br-100 { border-radius: 100%; }
+.br--bottom { border-top-left-radius: 0; border-top-right-radius: 0; }
+.br--top { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+.br--right { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+.br--left { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+@media screen and (min-width: 30em) {
+ .br0-ns { border-radius: 0; }
+ .br1-ns { border-radius: .125rem; }
+ .br2-ns { border-radius: .25rem; }
+ .br3-ns { border-radius: .5rem; }
+ .br4-ns { border-radius: 1rem; }
+ .br-100-ns { border-radius: 100%; }
+ .br--bottom-ns { border-top-left-radius: 0; border-top-right-radius: 0; }
+ .br--top-ns { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+ .br--right-ns { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+ .br--left-ns { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .br0-m { border-radius: 0; }
+ .br1-m { border-radius: .125rem; }
+ .br2-m { border-radius: .25rem; }
+ .br3-m { border-radius: .5rem; }
+ .br4-m { border-radius: 1rem; }
+ .br-100-m { border-radius: 100%; }
+ .br--bottom-m { border-top-left-radius: 0; border-top-right-radius: 0; }
+ .br--top-m { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+ .br--right-m { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+ .br--left-m { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+}
+@media screen and (min-width: 60em) {
+ .br0-l { border-radius: 0; }
+ .br1-l { border-radius: .125rem; }
+ .br2-l { border-radius: .25rem; }
+ .br3-l { border-radius: .5rem; }
+ .br4-l { border-radius: 1rem; }
+ .br-100-l { border-radius: 100%; }
+ .br--bottom-l { border-top-left-radius: 0; border-top-right-radius: 0; }
+ .br--top-l { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
+ .br--right-l { border-top-left-radius: 0; border-bottom-left-radius: 0; }
+ .br--left-l { border-top-right-radius: 0; border-bottom-right-radius: 0; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-border-radius/src/tachyons-border-radius.css b/packages/tachyons-border-radius/src/tachyons-border-radius.css
new file mode 100644
index 000000000..4b8a77153
--- /dev/null
+++ b/packages/tachyons-border-radius/src/tachyons-border-radius.css
@@ -0,0 +1,133 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ BORDER RADIUS
+ Docs: http://tachyons.io/docs/themes/border-radius/
+
+ Base:
+ br = border-radius
+
+ Modifiers:
+ 0 = 0/none
+ 1 = 1st step in scale
+ 2 = 2nd step in scale
+ 3 = 3rd step in scale
+ 4 = 4th step in scale
+
+ Literal values:
+ -100 = 100%
+ -pill = 9999px
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+ .br0 { border-radius: 0; }
+ .br1 { border-radius: .125rem; }
+ .br2 { border-radius: .25rem; }
+ .br3 { border-radius: .5rem; }
+ .br4 { border-radius: 1rem; }
+ .br-100 { border-radius: 100%; }
+ .br-pill { border-radius: 9999px; }
+ .br--bottom {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ .br--top {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .br--right {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .br--left {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+
+@media (--breakpoint-not-small) {
+ .br0-ns { border-radius: 0; }
+ .br1-ns { border-radius: .125rem; }
+ .br2-ns { border-radius: .25rem; }
+ .br3-ns { border-radius: .5rem; }
+ .br4-ns { border-radius: 1rem; }
+ .br-100-ns { border-radius: 100%; }
+ .br-pill-ns { border-radius: 9999px; }
+ .br--bottom-ns {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ .br--top-ns {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .br--right-ns {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .br--left-ns {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+}
+
+@media (--breakpoint-medium) {
+ .br0-m { border-radius: 0; }
+ .br1-m { border-radius: .125rem; }
+ .br2-m { border-radius: .25rem; }
+ .br3-m { border-radius: .5rem; }
+ .br4-m { border-radius: 1rem; }
+ .br-100-m { border-radius: 100%; }
+ .br-pill-m { border-radius: 9999px; }
+ .br--bottom-m {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ .br--top-m {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .br--right-m {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .br--left-m {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+}
+
+@media (--breakpoint-large) {
+ .br0-l { border-radius: 0; }
+ .br1-l { border-radius: .125rem; }
+ .br2-l { border-radius: .25rem; }
+ .br3-l { border-radius: .5rem; }
+ .br4-l { border-radius: 1rem; }
+ .br-100-l { border-radius: 100%; }
+ .br-pill-l { border-radius: 9999px; }
+ .br--bottom-l {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ .br--top-l {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .br--right-l {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .br--left-l {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+}
diff --git a/packages/tachyons-border-style/.gitignore b/packages/tachyons-border-style/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-border-style/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-border-style/LICENSE.txt b/packages/tachyons-border-style/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-border-style/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-border-style/code-of-conduct.md b/packages/tachyons-border-style/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-border-style/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-border-style/css/tachyons-border-style.css b/packages/tachyons-border-style/css/tachyons-border-style.css
new file mode 100644
index 000000000..f24eb9ba4
--- /dev/null
+++ b/packages/tachyons-border-style/css/tachyons-border-style.css
@@ -0,0 +1,42 @@
+/*
+
+ BORDER STYLES
+
+ Base:
+ bs = border-style
+
+ Modifiers:
+ none = none
+ dotted = dotted
+ dashed = dashed
+ solid = solid
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.b--dotted { border-style: dotted; }
+.b--dashed { border-style: dashed; }
+.b--solid { border-style: solid; }
+.b--none { border-style: none; }
+@media screen and (min-width: 30em) {
+ .b--dotted-ns { border-style: dotted; }
+ .b--dashed-ns { border-style: dashed; }
+ .b--solid-ns { border-style: solid; }
+ .b--none-ns { border-style: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .b--dotted-m { border-style: dotted; }
+ .b--dashed-m { border-style: dashed; }
+ .b--solid-m { border-style: solid; }
+ .b--none-m { border-style: none; }
+}
+@media screen and (min-width: 60em) {
+ .b--dotted-l { border-style: dotted; }
+ .b--dashed-l { border-style: dashed; }
+ .b--solid-l { border-style: solid; }
+ .b--none-l { border-style: none; }
+}
+
diff --git a/packages/tachyons-border-style/css/tachyons-border-style.min.css b/packages/tachyons-border-style/css/tachyons-border-style.min.css
new file mode 100644
index 000000000..5211462db
--- /dev/null
+++ b/packages/tachyons-border-style/css/tachyons-border-style.min.css
@@ -0,0 +1,2 @@
+.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}@media screen and (min-width:30em){.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}}@media screen and (min-width:30em) and (max-width:60em){.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}}@media screen and (min-width:60em){.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}}
+
diff --git a/packages/tachyons-border-style/package.json b/packages/tachyons-border-style/package.json
new file mode 100644
index 000000000..6d52ce22b
--- /dev/null
+++ b/packages/tachyons-border-style/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "tachyons-border-style",
+ "description": "Border style CSS module for Tachyons",
+ "version": "4.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-border-style.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "border-style",
+ "border",
+ "style"
+ ],
+ "repository": "tachyons-css/tachyons-border-style",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-border-style.css > css/tachyons-border-style.css",
+ "build:minify": "tachyons src/tachyons-border-style.css --minify > css/tachyons-border-style.min.css",
+ "build:docs": "tachyons src/tachyons-border-style.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "dependencies": {}
+}
diff --git a/packages/tachyons-border-style/readme.md b/packages/tachyons-border-style/readme.md
new file mode 100644
index 000000000..c995b0d95
--- /dev/null
+++ b/packages/tachyons-border-style/readme.md
@@ -0,0 +1,136 @@
+# tachyons-border-style 4.0.0
+
+Border style CSS module for Tachyons
+
+#### Stats
+
+297 | 16 | 16
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-border-style
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-border-style
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-border-style.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-border-style";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ BORDER STYLES
+
+ Base:
+ bs = border-style
+
+ Modifiers:
+ none = none
+ dotted = dotted
+ dashed = dashed
+ solid = solid
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.b--dotted { border-style: dotted; }
+.b--dashed { border-style: dashed; }
+.b--solid { border-style: solid; }
+.b--none { border-style: none; }
+@media screen and (min-width: 30em) {
+ .b--dotted-ns { border-style: dotted; }
+ .b--dashed-ns { border-style: dashed; }
+ .b--solid-ns { border-style: solid; }
+ .b--none-ns { border-style: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .b--dotted-m { border-style: dotted; }
+ .b--dashed-m { border-style: dashed; }
+ .b--solid-m { border-style: solid; }
+ .b--none-m { border-style: none; }
+}
+@media screen and (min-width: 60em) {
+ .b--dotted-l { border-style: dotted; }
+ .b--dashed-l { border-style: dashed; }
+ .b--solid-l { border-style: solid; }
+ .b--none-l { border-style: none; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-border-style/src/tachyons-border-style.css b/packages/tachyons-border-style/src/tachyons-border-style.css
new file mode 100644
index 000000000..085c7ab89
--- /dev/null
+++ b/packages/tachyons-border-style/src/tachyons-border-style.css
@@ -0,0 +1,54 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ BORDER STYLES
+ Docs: http://tachyons.io/docs/themes/borders/
+
+ Depends on base border module in _borders.css
+
+ Base:
+ b = border-style
+
+ Modifiers:
+ --none = none
+ --dotted = dotted
+ --dashed = dashed
+ --solid = solid
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+
+.b--dotted { border-style: dotted; }
+.b--dashed { border-style: dashed; }
+.b--solid { border-style: solid; }
+.b--none { border-style: none; }
+
+@media (--breakpoint-not-small) {
+ .b--dotted-ns { border-style: dotted; }
+ .b--dashed-ns { border-style: dashed; }
+ .b--solid-ns { border-style: solid; }
+ .b--none-ns { border-style: none; }
+}
+
+@media (--breakpoint-medium) {
+ .b--dotted-m { border-style: dotted; }
+ .b--dashed-m { border-style: dashed; }
+ .b--solid-m { border-style: solid; }
+ .b--none-m { border-style: none; }
+}
+
+@media (--breakpoint-large) {
+ .b--dotted-l { border-style: dotted; }
+ .b--dashed-l { border-style: dashed; }
+ .b--solid-l { border-style: solid; }
+ .b--none-l { border-style: none; }
+}
diff --git a/packages/tachyons-border-widths/.gitignore b/packages/tachyons-border-widths/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-border-widths/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-border-widths/LICENSE.txt b/packages/tachyons-border-widths/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-border-widths/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-border-widths/code-of-conduct.md b/packages/tachyons-border-widths/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-border-widths/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-border-widths/css/tachyons-border-widths.css b/packages/tachyons-border-widths/css/tachyons-border-widths.css
new file mode 100644
index 000000000..b9189dcb2
--- /dev/null
+++ b/packages/tachyons-border-widths/css/tachyons-border-widths.css
@@ -0,0 +1,68 @@
+/*
+
+ BORDER WIDTHS
+
+ Base:
+ bw = border-width
+
+ Modifiers:
+ 0 = 0 width border
+ 1 = 1st step in border-width scale
+ 2 = 2nd step in border-width scale
+ 3 = 3rd step in border-width scale
+ 4 = 4th step in border-width scale
+ 5 = 5th step in border-width scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.bw0 { border-width: 0; }
+.bw1 { border-width: .125rem; }
+.bw2 { border-width: .25rem; }
+.bw3 { border-width: .5rem; }
+.bw4 { border-width: 1rem; }
+.bw5 { border-width: 2rem; }
+.bt-0 { border-top-width: 0; }
+.br-0 { border-right-width: 0; }
+.bb-0 { border-bottom-width: 0; }
+.bl-0 { border-left-width: 0; }
+@media screen and (min-width: 30em) {
+ .bw0-ns { border-width: 0; }
+ .bw1-ns { border-width: .125rem; }
+ .bw2-ns { border-width: .25rem; }
+ .bw3-ns { border-width: .5rem; }
+ .bw4-ns { border-width: 1rem; }
+ .bw5-ns { border-width: 2rem; }
+ .bt-0-ns { border-top-width: 0; }
+ .br-0-ns { border-right-width: 0; }
+ .bb-0-ns { border-bottom-width: 0; }
+ .bl-0-ns { border-left-width: 0; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .bw0-m { border-width: 0; }
+ .bw1-m { border-width: .125rem; }
+ .bw2-m { border-width: .25rem; }
+ .bw3-m { border-width: .5rem; }
+ .bw4-m { border-width: 1rem; }
+ .bw5-m { border-width: 2rem; }
+ .bt-0-m { border-top-width: 0; }
+ .br-0-m { border-right-width: 0; }
+ .bb-0-m { border-bottom-width: 0; }
+ .bl-0-m { border-left-width: 0; }
+}
+@media screen and (min-width: 60em) {
+ .bw0-l { border-width: 0; }
+ .bw1-l { border-width: .125rem; }
+ .bw2-l { border-width: .25rem; }
+ .bw3-l { border-width: .5rem; }
+ .bw4-l { border-width: 1rem; }
+ .bw5-l { border-width: 2rem; }
+ .bt-0-l { border-top-width: 0; }
+ .br-0-l { border-right-width: 0; }
+ .bb-0-l { border-bottom-width: 0; }
+ .bl-0-l { border-left-width: 0; }
+}
+
diff --git a/packages/tachyons-border-widths/css/tachyons-border-widths.min.css b/packages/tachyons-border-widths/css/tachyons-border-widths.min.css
new file mode 100644
index 000000000..b6db8db76
--- /dev/null
+++ b/packages/tachyons-border-widths/css/tachyons-border-widths.min.css
@@ -0,0 +1,2 @@
+.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}@media screen and (min-width:30em){.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}}@media screen and (min-width:30em) and (max-width:60em){.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}}
+
diff --git a/packages/tachyons-border-widths/package.json b/packages/tachyons-border-widths/package.json
new file mode 100644
index 000000000..8a051e888
--- /dev/null
+++ b/packages/tachyons-border-widths/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-border-widths",
+ "description": "Border width CSS module for Tachyons",
+ "version": "3.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-border-widths.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "border-width",
+ "border",
+ "widths"
+ ],
+ "repository": "tachyons-css/tachyons-border-widths",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-border-widths.css > css/tachyons-border-widths.css",
+ "build:minify": "tachyons src/tachyons-border-widths.css --minify > css/tachyons-border-widths.min.css",
+ "build:docs": "tachyons src/tachyons-border-widths.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-border-widths/readme.md b/packages/tachyons-border-widths/readme.md
new file mode 100644
index 000000000..94f481054
--- /dev/null
+++ b/packages/tachyons-border-widths/readme.md
@@ -0,0 +1,162 @@
+# tachyons-border-widths 3.0.0
+
+Border width CSS module for Tachyons
+
+#### Stats
+
+424 | 40 | 40
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-border-widths
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-border-widths
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-border-widths.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-border-widths";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ BORDER WIDTHS
+
+ Base:
+ bw = border-width
+
+ Modifiers:
+ 0 = 0 width border
+ 1 = 1st step in border-width scale
+ 2 = 2nd step in border-width scale
+ 3 = 3rd step in border-width scale
+ 4 = 4th step in border-width scale
+ 5 = 5th step in border-width scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.bw0 { border-width: 0; }
+.bw1 { border-width: .125rem; }
+.bw2 { border-width: .25rem; }
+.bw3 { border-width: .5rem; }
+.bw4 { border-width: 1rem; }
+.bw5 { border-width: 2rem; }
+.bt-0 { border-top-width: 0; }
+.br-0 { border-right-width: 0; }
+.bb-0 { border-bottom-width: 0; }
+.bl-0 { border-left-width: 0; }
+@media screen and (min-width: 30em) {
+ .bw0-ns { border-width: 0; }
+ .bw1-ns { border-width: .125rem; }
+ .bw2-ns { border-width: .25rem; }
+ .bw3-ns { border-width: .5rem; }
+ .bw4-ns { border-width: 1rem; }
+ .bw5-ns { border-width: 2rem; }
+ .bt-0-ns { border-top-width: 0; }
+ .br-0-ns { border-right-width: 0; }
+ .bb-0-ns { border-bottom-width: 0; }
+ .bl-0-ns { border-left-width: 0; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .bw0-m { border-width: 0; }
+ .bw1-m { border-width: .125rem; }
+ .bw2-m { border-width: .25rem; }
+ .bw3-m { border-width: .5rem; }
+ .bw4-m { border-width: 1rem; }
+ .bw5-m { border-width: 2rem; }
+ .bt-0-m { border-top-width: 0; }
+ .br-0-m { border-right-width: 0; }
+ .bb-0-m { border-bottom-width: 0; }
+ .bl-0-m { border-left-width: 0; }
+}
+@media screen and (min-width: 60em) {
+ .bw0-l { border-width: 0; }
+ .bw1-l { border-width: .125rem; }
+ .bw2-l { border-width: .25rem; }
+ .bw3-l { border-width: .5rem; }
+ .bw4-l { border-width: 1rem; }
+ .bw5-l { border-width: 2rem; }
+ .bt-0-l { border-top-width: 0; }
+ .br-0-l { border-right-width: 0; }
+ .bb-0-l { border-bottom-width: 0; }
+ .bl-0-l { border-left-width: 0; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-border-widths/src/tachyons-border-widths.css b/packages/tachyons-border-widths/src/tachyons-border-widths.css
new file mode 100644
index 000000000..bdd08bffc
--- /dev/null
+++ b/packages/tachyons-border-widths/src/tachyons-border-widths.css
@@ -0,0 +1,80 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ BORDER WIDTHS
+ Docs: http://tachyons.io/docs/themes/borders/
+
+ Base:
+ bw = border-width
+
+ Modifiers:
+ 0 = 0 width border
+ 1 = 1st step in border-width scale
+ 2 = 2nd step in border-width scale
+ 3 = 3rd step in border-width scale
+ 4 = 4th step in border-width scale
+ 5 = 5th step in border-width scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.bw0 { border-width: 0; }
+.bw1 { border-width: .125rem; }
+.bw2 { border-width: .25rem; }
+.bw3 { border-width: .5rem; }
+.bw4 { border-width: 1rem; }
+.bw5 { border-width: 2rem; }
+
+/* Resets */
+.bt-0 { border-top-width: 0; }
+.br-0 { border-right-width: 0; }
+.bb-0 { border-bottom-width: 0; }
+.bl-0 { border-left-width: 0; }
+
+@media (--breakpoint-not-small) {
+ .bw0-ns { border-width: 0; }
+ .bw1-ns { border-width: .125rem; }
+ .bw2-ns { border-width: .25rem; }
+ .bw3-ns { border-width: .5rem; }
+ .bw4-ns { border-width: 1rem; }
+ .bw5-ns { border-width: 2rem; }
+ .bt-0-ns { border-top-width: 0; }
+ .br-0-ns { border-right-width: 0; }
+ .bb-0-ns { border-bottom-width: 0; }
+ .bl-0-ns { border-left-width: 0; }
+}
+
+@media (--breakpoint-medium) {
+ .bw0-m { border-width: 0; }
+ .bw1-m { border-width: .125rem; }
+ .bw2-m { border-width: .25rem; }
+ .bw3-m { border-width: .5rem; }
+ .bw4-m { border-width: 1rem; }
+ .bw5-m { border-width: 2rem; }
+ .bt-0-m { border-top-width: 0; }
+ .br-0-m { border-right-width: 0; }
+ .bb-0-m { border-bottom-width: 0; }
+ .bl-0-m { border-left-width: 0; }
+}
+
+@media (--breakpoint-large) {
+ .bw0-l { border-width: 0; }
+ .bw1-l { border-width: .125rem; }
+ .bw2-l { border-width: .25rem; }
+ .bw3-l { border-width: .5rem; }
+ .bw4-l { border-width: 1rem; }
+ .bw5-l { border-width: 2rem; }
+ .bt-0-l { border-top-width: 0; }
+ .br-0-l { border-right-width: 0; }
+ .bb-0-l { border-bottom-width: 0; }
+ .bl-0-l { border-left-width: 0; }
+}
diff --git a/packages/tachyons-borders/.gitignore b/packages/tachyons-borders/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-borders/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-borders/LICENSE.txt b/packages/tachyons-borders/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-borders/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-borders/code-of-conduct.md b/packages/tachyons-borders/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-borders/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-borders/css/tachyons-borders.css b/packages/tachyons-borders/css/tachyons-borders.css
new file mode 100644
index 000000000..a96998ea9
--- /dev/null
+++ b/packages/tachyons-borders/css/tachyons-borders.css
@@ -0,0 +1,44 @@
+/*
+
+ BORDER BASE
+
+ Legend
+
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+*/
+.ba { border-style: solid; border-width: 1px; }
+.bt { border-top-style: solid; border-top-width: 1px; }
+.br { border-right-style: solid; border-right-width: 1px; }
+.bb { border-bottom-style: solid; border-bottom-width: 1px; }
+.bl { border-left-style: solid; border-left-width: 1px; }
+.bn { border-style: none; border-width: 0; }
+@media screen and (min-width: 30em) {
+ .ba-ns { border-style: solid; border-width: 1px; }
+ .bt-ns { border-top-style: solid; border-top-width: 1px; }
+ .br-ns { border-right-style: solid; border-right-width: 1px; }
+ .bb-ns { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-ns { border-left-style: solid; border-left-width: 1px; }
+ .bn-ns { border-style: none; border-width: 0; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .ba-m { border-style: solid; border-width: 1px; }
+ .bt-m { border-top-style: solid; border-top-width: 1px; }
+ .br-m { border-right-style: solid; border-right-width: 1px; }
+ .bb-m { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-m { border-left-style: solid; border-left-width: 1px; }
+ .bn-m { border-style: none; border-width: 0; }
+}
+@media screen and (min-width: 60em) {
+ .ba-l { border-style: solid; border-width: 1px; }
+ .bt-l { border-top-style: solid; border-top-width: 1px; }
+ .br-l { border-right-style: solid; border-right-width: 1px; }
+ .bb-l { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-l { border-left-style: solid; border-left-width: 1px; }
+ .bn-l { border-style: none; border-width: 0; }
+}
+
diff --git a/packages/tachyons-borders/css/tachyons-borders.min.css b/packages/tachyons-borders/css/tachyons-borders.min.css
new file mode 100644
index 000000000..eb42f5f70
--- /dev/null
+++ b/packages/tachyons-borders/css/tachyons-borders.min.css
@@ -0,0 +1,2 @@
+.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}@media screen and (min-width:30em){.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em) and (max-width:60em){.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}}
+
diff --git a/packages/tachyons-borders/package.json b/packages/tachyons-borders/package.json
new file mode 100644
index 000000000..a522acd2b
--- /dev/null
+++ b/packages/tachyons-borders/package.json
@@ -0,0 +1,39 @@
+{
+ "name": "tachyons-borders",
+ "version": "3.0.0",
+ "style": "src/tachyons-borders.css",
+ "description": "Performance-first css module for styling borders.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "tachyons-borders",
+ "css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-borders",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-borders.css > css/tachyons-borders.css",
+ "build:minify": "tachyons src/tachyons-borders.css --minify > css/tachyons-borders.min.css",
+ "build:docs": "tachyons src/tachyons-borders.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "metadata": {
+ "category": "theming",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-borders/readme.md b/packages/tachyons-borders/readme.md
new file mode 100644
index 000000000..ef70560ba
--- /dev/null
+++ b/packages/tachyons-borders/readme.md
@@ -0,0 +1,138 @@
+# tachyons-borders 3.0.0
+
+Performance-first css module for styling borders.
+
+#### Stats
+
+308 | 24 | 48
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-borders
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-borders
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-borders.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-borders";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ BORDER BASE
+
+ Legend
+
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+*/
+.ba { border-style: solid; border-width: 1px; }
+.bt { border-top-style: solid; border-top-width: 1px; }
+.br { border-right-style: solid; border-right-width: 1px; }
+.bb { border-bottom-style: solid; border-bottom-width: 1px; }
+.bl { border-left-style: solid; border-left-width: 1px; }
+.bn { border-style: none; border-width: 0; }
+@media screen and (min-width: 30em) {
+ .ba-ns { border-style: solid; border-width: 1px; }
+ .bt-ns { border-top-style: solid; border-top-width: 1px; }
+ .br-ns { border-right-style: solid; border-right-width: 1px; }
+ .bb-ns { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-ns { border-left-style: solid; border-left-width: 1px; }
+ .bn-ns { border-style: none; border-width: 0; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .ba-m { border-style: solid; border-width: 1px; }
+ .bt-m { border-top-style: solid; border-top-width: 1px; }
+ .br-m { border-right-style: solid; border-right-width: 1px; }
+ .bb-m { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-m { border-left-style: solid; border-left-width: 1px; }
+ .bn-m { border-style: none; border-width: 0; }
+}
+@media screen and (min-width: 60em) {
+ .ba-l { border-style: solid; border-width: 1px; }
+ .bt-l { border-top-style: solid; border-top-width: 1px; }
+ .br-l { border-right-style: solid; border-right-width: 1px; }
+ .bb-l { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-l { border-left-style: solid; border-left-width: 1px; }
+ .bn-l { border-style: none; border-width: 0; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-borders/src/tachyons-borders.css b/packages/tachyons-borders/src/tachyons-borders.css
new file mode 100644
index 000000000..dfae5ff78
--- /dev/null
+++ b/packages/tachyons-borders/src/tachyons-borders.css
@@ -0,0 +1,64 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ BORDERS
+ Docs: http://tachyons.io/docs/themes/borders/
+
+ Base:
+ b = border
+
+ Modifiers:
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+ n = none
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+ .ba { border-style: solid; border-width: 1px; }
+ .bt { border-top-style: solid; border-top-width: 1px; }
+ .br { border-right-style: solid; border-right-width: 1px; }
+ .bb { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl { border-left-style: solid; border-left-width: 1px; }
+ .bn { border-style: none; border-width: 0; }
+
+
+@media (--breakpoint-not-small) {
+ .ba-ns { border-style: solid; border-width: 1px; }
+ .bt-ns { border-top-style: solid; border-top-width: 1px; }
+ .br-ns { border-right-style: solid; border-right-width: 1px; }
+ .bb-ns { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-ns { border-left-style: solid; border-left-width: 1px; }
+ .bn-ns { border-style: none; border-width: 0; }
+}
+
+@media (--breakpoint-medium) {
+ .ba-m { border-style: solid; border-width: 1px; }
+ .bt-m { border-top-style: solid; border-top-width: 1px; }
+ .br-m { border-right-style: solid; border-right-width: 1px; }
+ .bb-m { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-m { border-left-style: solid; border-left-width: 1px; }
+ .bn-m { border-style: none; border-width: 0; }
+}
+
+@media (--breakpoint-large) {
+ .ba-l { border-style: solid; border-width: 1px; }
+ .bt-l { border-top-style: solid; border-top-width: 1px; }
+ .br-l { border-right-style: solid; border-right-width: 1px; }
+ .bb-l { border-bottom-style: solid; border-bottom-width: 1px; }
+ .bl-l { border-left-style: solid; border-left-width: 1px; }
+ .bn-l { border-style: none; border-width: 0; }
+}
+
diff --git a/packages/tachyons-box-shadow/.gitignore b/packages/tachyons-box-shadow/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-box-shadow/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-box-shadow/LICENSE.txt b/packages/tachyons-box-shadow/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-box-shadow/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-box-shadow/code-of-conduct.md b/packages/tachyons-box-shadow/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-box-shadow/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-box-shadow/css/tachyons-box-shadow.css b/packages/tachyons-box-shadow/css/tachyons-box-shadow.css
new file mode 100644
index 000000000..480b79b5d
--- /dev/null
+++ b/packages/tachyons-box-shadow/css/tachyons-box-shadow.css
@@ -0,0 +1,37 @@
+/*
+
+ BOX-SHADOW
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.shadow-1 { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-2 { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-3 { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-4 { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+.shadow-5 { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+@media screen and (min-width: 30em) {
+ .shadow-1-ns { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-ns { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-ns { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-ns { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-ns { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .shadow-1-m { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-m { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-m { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-m { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-m { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
+@media screen and (min-width: 60em) {
+ .shadow-1-l { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-l { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-l { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-l { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-l { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
+
diff --git a/packages/tachyons-box-shadow/css/tachyons-box-shadow.min.css b/packages/tachyons-box-shadow/css/tachyons-box-shadow.min.css
new file mode 100644
index 000000000..1ce86b9de
--- /dev/null
+++ b/packages/tachyons-box-shadow/css/tachyons-box-shadow.min.css
@@ -0,0 +1,2 @@
+.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em) and (max-width:60em){.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}
+
diff --git a/packages/tachyons-box-shadow/index.html b/packages/tachyons-box-shadow/index.html
new file mode 100644
index 000000000..35452edb8
--- /dev/null
+++ b/packages/tachyons-box-shadow/index.html
@@ -0,0 +1,17 @@
+
+
+
+ index
+
+
+
+
+
+ Test
+ Test
+ Test
+ Test
+ Test
+
+
+
diff --git a/packages/tachyons-box-shadow/package.json b/packages/tachyons-box-shadow/package.json
new file mode 100644
index 000000000..2327575b3
--- /dev/null
+++ b/packages/tachyons-box-shadow/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "tachyons-box-shadow",
+ "description": "box-shadow CSS module for Tachyons",
+ "version": "2.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-box-shadow.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "box-shadow"
+ ],
+ "repository": "tachyons-css/tachyons-box-shadow",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-box-shadow.css > css/tachyons-box-shadow.css",
+ "build:minify": "tachyons src/tachyons-box-shadow.css --minify > css/tachyons-box-shadow.min.css",
+ "build:docs": "tachyons src/tachyons-box-shadow.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-box-shadow/readme.md b/packages/tachyons-box-shadow/readme.md
new file mode 100644
index 000000000..5de8441ba
--- /dev/null
+++ b/packages/tachyons-box-shadow/readme.md
@@ -0,0 +1,131 @@
+# tachyons-box-shadow 2.0.0
+
+box-shadow CSS module for Tachyons
+
+#### Stats
+
+296 | 20 | 20
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-box-shadow
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-box-shadow
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-box-shadow.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-box-shadow";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ BOX-SHADOW
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.shadow-1 { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-2 { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-3 { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-4 { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+.shadow-5 { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+@media screen and (min-width: 30em) {
+ .shadow-1-ns { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-ns { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-ns { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-ns { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-ns { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .shadow-1-m { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-m { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-m { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-m { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-m { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
+@media screen and (min-width: 60em) {
+ .shadow-1-l { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-l { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-l { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-l { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-l { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-box-shadow/src/tachyons-box-shadow.css b/packages/tachyons-box-shadow/src/tachyons-box-shadow.css
new file mode 100644
index 000000000..6cd3a42dc
--- /dev/null
+++ b/packages/tachyons-box-shadow/src/tachyons-box-shadow.css
@@ -0,0 +1,47 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ BOX-SHADOW
+ Docs: http://tachyons.io/docs/themes/box-shadow/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+
+.shadow-1 { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-2 { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-3 { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+.shadow-4 { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+.shadow-5 { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+
+@media (--breakpoint-not-small) {
+ .shadow-1-ns { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-ns { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-ns { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-ns { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-ns { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
+
+@media (--breakpoint-medium) {
+ .shadow-1-m { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-m { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-m { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-m { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-m { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
+
+@media (--breakpoint-large) {
+ .shadow-1-l { box-shadow: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-2-l { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-3-l { box-shadow: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-4-l { box-shadow: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+ .shadow-5-l { box-shadow: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); }
+}
diff --git a/packages/tachyons-box-sizing/.gitignore b/packages/tachyons-box-sizing/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-box-sizing/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-box-sizing/LICENSE.txt b/packages/tachyons-box-sizing/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-box-sizing/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-box-sizing/code-of-conduct.md b/packages/tachyons-box-sizing/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-box-sizing/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-box-sizing/css/tachyons-box-sizing.css b/packages/tachyons-box-sizing/css/tachyons-box-sizing.css
new file mode 100644
index 000000000..95cd83dea
--- /dev/null
+++ b/packages/tachyons-box-sizing/css/tachyons-box-sizing.css
@@ -0,0 +1,8 @@
+/*
+ Box Sizing
+*/
+html, body, div, article, section, main, footer, header, form, fieldset, pre,
+code, p, ul, ol, li, dl, dt, dd, textarea, input[type="email"],
+input[type="number"], input[type="password"], input[type="tel"],
+input[type="text"], input[type="url"], .border-box { box-sizing: border-box; }
+
diff --git a/packages/tachyons-box-sizing/css/tachyons-box-sizing.min.css b/packages/tachyons-box-sizing/css/tachyons-box-sizing.min.css
new file mode 100644
index 000000000..7bbec1eb9
--- /dev/null
+++ b/packages/tachyons-box-sizing/css/tachyons-box-sizing.min.css
@@ -0,0 +1,2 @@
+.border-box,article,body,code,dd,div,dl,dt,fieldset,footer,form,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],li,main,ol,p,pre,section,textarea,ul{box-sizing:border-box}
+
diff --git a/packages/tachyons-box-sizing/package.json b/packages/tachyons-box-sizing/package.json
new file mode 100644
index 000000000..e8f10de76
--- /dev/null
+++ b/packages/tachyons-box-sizing/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "tachyons-box-sizing",
+ "version": "3.1.6",
+ "style": "src/tachyons-box-sizing.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "box-sizing"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-box-sizing",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-box-sizing.css > css/tachyons-box-sizing.css",
+ "build:minify": "tachyons src/tachyons-box-sizing.css --minify > css/tachyons-box-sizing.min.css",
+ "build:docs": "tachyons src/tachyons-box-sizing.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-box-sizing/readme.md b/packages/tachyons-box-sizing/readme.md
new file mode 100644
index 000000000..dba2f34b8
--- /dev/null
+++ b/packages/tachyons-box-sizing/readme.md
@@ -0,0 +1,102 @@
+# tachyons-box-sizing 3.1.6
+
+Performance based css module.
+
+#### Stats
+
+203 | 27 | 1
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-box-sizing
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-box-sizing
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-box-sizing.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-box-sizing";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+ Box Sizing
+*/
+html, body, div, article, section, main, footer, header, form, fieldset, pre,
+code, p, ul, ol, li, dl, dt, dd, textarea, input[type="email"],
+input[type="number"], input[type="password"], input[type="tel"],
+input[type="text"], input[type="url"], .border-box { box-sizing: border-box; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-box-sizing/src/tachyons-box-sizing.css b/packages/tachyons-box-sizing/src/tachyons-box-sizing.css
new file mode 100644
index 000000000..7742de028
--- /dev/null
+++ b/packages/tachyons-box-sizing/src/tachyons-box-sizing.css
@@ -0,0 +1,43 @@
+/*
+
+ BOX SIZING
+
+*/
+
+html,
+body,
+div,
+article,
+section,
+main,
+footer,
+header,
+form,
+fieldset,
+legend,
+pre,
+code,
+a,
+h1,h2,h3,h4,h5,h6,
+p,
+ul,
+ol,
+li,
+dl,
+dt,
+dd,
+textarea,
+table,
+td,
+th,
+tr,
+input[type="email"],
+input[type="number"],
+input[type="password"],
+input[type="tel"],
+input[type="text"],
+input[type="url"],
+.border-box {
+ box-sizing: border-box;
+}
+
diff --git a/packages/tachyons-clears/.gitignore b/packages/tachyons-clears/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-clears/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-clears/LICENSE.txt b/packages/tachyons-clears/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-clears/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-clears/code-of-conduct.md b/packages/tachyons-clears/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-clears/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-clears/css/tachyons-clears.css b/packages/tachyons-clears/css/tachyons-clears.css
new file mode 100644
index 000000000..45c68510c
--- /dev/null
+++ b/packages/tachyons-clears/css/tachyons-clears.css
@@ -0,0 +1,33 @@
+/*
+
+ CLEARFIX
+
+*/
+/* Nicolas Gallaghers Clearfix solution
+ Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */
+.cf:before, .cf:after { content: " "; display: table; }
+.cf:after { clear: both; }
+.cf { *zoom: 1; }
+.cl { clear: left; }
+.cr { clear: right; }
+.cb { clear: both; }
+.cn { clear: none; }
+@media screen and (min-width: 30em) {
+ .cl-ns { clear: left; }
+ .cr-ns { clear: right; }
+ .cb-ns { clear: both; }
+ .cn-ns { clear: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .cl-m { clear: left; }
+ .cr-m { clear: right; }
+ .cb-m { clear: both; }
+ .cn-m { clear: none; }
+}
+@media screen and (min-width: 60em) {
+ .cl-l { clear: left; }
+ .cr-l { clear: right; }
+ .cb-l { clear: both; }
+ .cn-l { clear: none; }
+}
+
diff --git a/packages/tachyons-clears/css/tachyons-clears.min.css b/packages/tachyons-clears/css/tachyons-clears.min.css
new file mode 100644
index 000000000..f6f6f46b1
--- /dev/null
+++ b/packages/tachyons-clears/css/tachyons-clears.min.css
@@ -0,0 +1,2 @@
+.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em) and (max-width:60em){.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}
+
diff --git a/packages/tachyons-clears/package.json b/packages/tachyons-clears/package.json
new file mode 100644
index 000000000..c5967ce77
--- /dev/null
+++ b/packages/tachyons-clears/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "tachyons-clears",
+ "version": "3.0.0",
+ "style": "src/tachyons-clears.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons-css",
+ "tachyons"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-clears",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-clears.css > css/tachyons-clears.css",
+ "build:minify": "tachyons src/tachyons-clears.css --minify > css/tachyons-clears.min.css",
+ "build:docs": "tachyons src/tachyons-clears.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true,
+ "nickName": "clearfix"
+ }
+}
diff --git a/packages/tachyons-clears/readme.md b/packages/tachyons-clears/readme.md
new file mode 100644
index 000000000..d537ad7d2
--- /dev/null
+++ b/packages/tachyons-clears/readme.md
@@ -0,0 +1,127 @@
+# tachyons-clears 3.0.0
+
+Performance based css module.
+
+#### Stats
+
+298 | 20 | 20
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-clears
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-clears
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-clears.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-clears";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ CLEARFIX
+
+*/
+/* Nicolas Gallaghers Clearfix solution
+ Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */
+.cf:before, .cf:after { content: " "; display: table; }
+.cf:after { clear: both; }
+.cf { *zoom: 1; }
+.cl { clear: left; }
+.cr { clear: right; }
+.cb { clear: both; }
+.cn { clear: none; }
+@media screen and (min-width: 30em) {
+ .cl-ns { clear: left; }
+ .cr-ns { clear: right; }
+ .cb-ns { clear: both; }
+ .cn-ns { clear: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .cl-m { clear: left; }
+ .cr-m { clear: right; }
+ .cb-m { clear: both; }
+ .cn-m { clear: none; }
+}
+@media screen and (min-width: 60em) {
+ .cl-l { clear: left; }
+ .cr-l { clear: right; }
+ .cb-l { clear: both; }
+ .cn-l { clear: none; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-clears/src/tachyons-clears.css b/packages/tachyons-clears/src/tachyons-clears.css
new file mode 100644
index 000000000..69803b575
--- /dev/null
+++ b/packages/tachyons-clears/src/tachyons-clears.css
@@ -0,0 +1,46 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ CLEARFIX
+ http://tachyons.io/docs/layout/clearfix/
+
+*/
+
+/* Nicolas Gallaghers Clearfix solution
+ Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */
+
+.cf:before,
+.cf:after { content: " "; display: table; }
+.cf:after { clear: both; }
+.cf { *zoom: 1; }
+
+.cl { clear: left; }
+.cr { clear: right; }
+.cb { clear: both; }
+.cn { clear: none; }
+
+@media (--breakpoint-not-small) {
+ .cl-ns { clear: left; }
+ .cr-ns { clear: right; }
+ .cb-ns { clear: both; }
+ .cn-ns { clear: none; }
+}
+
+@media (--breakpoint-medium) {
+ .cl-m { clear: left; }
+ .cr-m { clear: right; }
+ .cb-m { clear: both; }
+ .cn-m { clear: none; }
+}
+
+@media (--breakpoint-large) {
+ .cl-l { clear: left; }
+ .cr-l { clear: right; }
+ .cb-l { clear: both; }
+ .cn-l { clear: none; }
+}
diff --git a/packages/tachyons-cms/.gitignore b/packages/tachyons-cms/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-cms/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-cms/code-of-conduct.md b/packages/tachyons-cms/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-cms/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-cms/css/tachyons-cms.css b/packages/tachyons-cms/css/tachyons-cms.css
new file mode 100644
index 000000000..368bfc971
--- /dev/null
+++ b/packages/tachyons-cms/css/tachyons-cms.css
@@ -0,0 +1,16 @@
+/*
+
+ Tachyons
+ CMS
+
+*/
+.nested-copy-line-height p, .nested-copy-line-height ul,
+.nested-copy-line-height ol { line-height: 1.5; }
+.nested-headline-line-height h1, .nested-headline-line-height h2,
+.nested-headline-line-height h3, .nested-headline-line-height h4,
+.nested-headline-line-height h5, .nested-headline-line-height h6 { line-height: 1.3; }
+.nested-list-reset ul, .nested-list-reset ol { padding-left: 0; margin-left: 0; list-style-type: none; }
+.nested-copy-indent p+p { text-indent: 1em; }
+.nested-copy-seperator p+p { margin-top: 1.5em; }
+.nested-img img { width: 100%; max-width: 100%; display: block; }
+
diff --git a/packages/tachyons-cms/css/tachyons-cms.min.css b/packages/tachyons-cms/css/tachyons-cms.min.css
new file mode 100644
index 000000000..4d6244e9b
--- /dev/null
+++ b/packages/tachyons-cms/css/tachyons-cms.min.css
@@ -0,0 +1,2 @@
+.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.3}.nested-list-reset ol,.nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.nested-copy-indent p+p{text-indent:1em}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{width:100%;max-width:100%;display:block}
+
diff --git a/packages/tachyons-cms/license b/packages/tachyons-cms/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-cms/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-cms/package.json b/packages/tachyons-cms/package.json
new file mode 100644
index 000000000..c63fb0619
--- /dev/null
+++ b/packages/tachyons-cms/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "tachyons-cms",
+ "description": "CSS module for styling unqualified elements with Tachyons",
+ "version": "1.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-cms.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "cms"
+ ],
+ "repository": "tachyons-css/tachyons-cms",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^0.6.1",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-cms.css > css/tachyons-cms.css",
+ "build:minify": "tachyons src/tachyons-cms.css --minify > css/tachyons-cms.min.css",
+ "build:docs": "tachyons src/tachyons-cms.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-cms/readme.md b/packages/tachyons-cms/readme.md
new file mode 100644
index 000000000..3ca4158f5
--- /dev/null
+++ b/packages/tachyons-cms/readme.md
@@ -0,0 +1,92 @@
+# tachyons-cms 1.0.0
+
+CSS module for styling unqualified elements with Tachyons
+
+#### Stats
+
+256 | 14 | 10
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-cms
+```
+
+#### With Git
+
+```
+git clone https://github.com/tachyons-css/tachyons-cms
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-cms";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ Tachyons
+ CMS
+
+*/
+.nested-copy-line-height p, .nested-copy-line-height ul,
+.nested-copy-line-height ol { line-height: 1.5; }
+.nested-headline-line-height h1, .nested-headline-line-height h2,
+.nested-headline-line-height h3, .nested-headline-line-height h4,
+.nested-headline-line-height h5, .nested-headline-line-height h6 { line-height: 1.3; }
+.nested-list-reset ul, .nested-list-reset ol { padding-left: 0; margin-left: 0; list-style-type: none; }
+.nested-copy-indent p+p { text-indent: 1em; }
+.nested-copy-seperator p+p { margin-top: 1.5em; }
+.nested-img img { width: 100%; max-width: 100%; display: block; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+MIT
+
diff --git a/packages/tachyons-cms/src/tachyons-cms.css b/packages/tachyons-cms/src/tachyons-cms.css
new file mode 100644
index 000000000..ce2e1482e
--- /dev/null
+++ b/packages/tachyons-cms/src/tachyons-cms.css
@@ -0,0 +1,42 @@
+/*
+
+ Tachyons
+ CMS
+
+*/
+
+.nested-copy-line-height p,
+.nested-copy-line-height ul,
+.nested-copy-line-height ol {
+ line-height: 1.5;
+}
+
+.nested-headline-line-height h1,
+.nested-headline-line-height h2,
+.nested-headline-line-height h3,
+.nested-headline-line-height h4,
+.nested-headline-line-height h5,
+.nested-headline-line-height h6 {
+ line-height: 1.3;
+}
+
+.nested-list-reset ul,
+.nested-list-reset ol {
+ padding-left: 0;
+ margin-left: 0;
+ list-style-type: none;
+}
+
+.nested-copy-indent p+p {
+ text-indent: 1em;
+}
+
+.nested-copy-seperator p+p {
+ margin-top: 1.5em;
+}
+
+.nested-img img {
+ width: 100%;
+ max-width: 100%;
+ display: block;
+}
diff --git a/packages/tachyons-code/.gitignore b/packages/tachyons-code/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-code/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-code/code-of-conduct.md b/packages/tachyons-code/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-code/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-code/css/tachyons-code.css b/packages/tachyons-code/css/tachyons-code.css
new file mode 100644
index 000000000..292737fd4
--- /dev/null
+++ b/packages/tachyons-code/css/tachyons-code.css
@@ -0,0 +1,7 @@
+/*
+
+ CODE
+
+*/
+.pre { overflow-x: auto; overflow-y: hidden; overflow: scroll; }
+
diff --git a/packages/tachyons-code/css/tachyons-code.min.css b/packages/tachyons-code/css/tachyons-code.min.css
new file mode 100644
index 000000000..79af9a5b3
--- /dev/null
+++ b/packages/tachyons-code/css/tachyons-code.min.css
@@ -0,0 +1,2 @@
+.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}
+
diff --git a/packages/tachyons-code/license b/packages/tachyons-code/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-code/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-code/package.json b/packages/tachyons-code/package.json
new file mode 100644
index 000000000..95997a60f
--- /dev/null
+++ b/packages/tachyons-code/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "tachyons-code",
+ "description": "Tachyons module for code",
+ "version": "1.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-code.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "code"
+ ],
+ "repository": "tachyons-css/tachyons-code",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^0.6.1",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-code.css > css/tachyons-code.css",
+ "build:minify": "tachyons src/tachyons-code.css --minify > css/tachyons-code.min.css",
+ "build:docs": "tachyons src/tachyons-code.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-code/readme.md b/packages/tachyons-code/readme.md
new file mode 100644
index 000000000..5dfcc2f65
--- /dev/null
+++ b/packages/tachyons-code/readme.md
@@ -0,0 +1,83 @@
+# tachyons-code 1.0.0
+
+Tachyons module for code
+
+#### Stats
+
+84 | 1 | 3
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-code
+```
+
+#### With Git
+
+```
+git clone https://github.com/tachyons-css/tachyons-code
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-code";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ CODE
+
+*/
+.pre { overflow-x: auto; overflow-y: hidden; overflow: scroll; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+MIT
+
diff --git a/packages/tachyons-code/src/tachyons-code.css b/packages/tachyons-code/src/tachyons-code.css
new file mode 100644
index 000000000..ac691f30d
--- /dev/null
+++ b/packages/tachyons-code/src/tachyons-code.css
@@ -0,0 +1,11 @@
+/*
+
+ CODE
+
+*/
+
+.pre {
+ overflow-x: auto;
+ overflow-y: hidden;
+ overflow: scroll;
+}
diff --git a/packages/tachyons-colors/.gitignore b/packages/tachyons-colors/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-colors/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-colors/LICENSE.txt b/packages/tachyons-colors/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-colors/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-colors/code-of-conduct.md b/packages/tachyons-colors/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-colors/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-colors/css/tachyons-colors.css b/packages/tachyons-colors/css/tachyons-colors.css
new file mode 100644
index 000000000..969e86fed
--- /dev/null
+++ b/packages/tachyons-colors/css/tachyons-colors.css
@@ -0,0 +1,10 @@
+/*
+
+ Tachyons
+ COLOR VARIABLES
+
+ Grayscale
+ - Solids
+ - Transparencies
+*/
+
diff --git a/packages/tachyons-colors/css/tachyons-colors.min.css b/packages/tachyons-colors/css/tachyons-colors.min.css
new file mode 100644
index 000000000..139597f9c
--- /dev/null
+++ b/packages/tachyons-colors/css/tachyons-colors.min.css
@@ -0,0 +1,2 @@
+
+
diff --git a/packages/tachyons-colors/package.json b/packages/tachyons-colors/package.json
new file mode 100644
index 000000000..db92c5a98
--- /dev/null
+++ b/packages/tachyons-colors/package.json
@@ -0,0 +1,40 @@
+{
+ "name": "tachyons-colors",
+ "version": "5.2.4",
+ "style": "src/tachyons-colors.css",
+ "homepage": "http://github.com/tachyons-css/tachyons-colors",
+ "description": "Default CSS color variables for Tachyons",
+ "keywords": [
+ "postcss",
+ "tachyons",
+ "color",
+ "design",
+ "css"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "http://github.com/tachyons-css/tachyons-colors.git"
+ },
+ "bugs": {
+ "url": "https://github.com/tachyons-css/tachyons-colors/issues",
+ "email": "hi@mrmrs.cc"
+ },
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-colors.css > css/tachyons-colors.css",
+ "build:minify": "tachyons src/tachyons-colors.css --minify > css/tachyons-colors.min.css",
+ "build:docs": "tachyons src/tachyons-colors.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ }
+}
diff --git a/packages/tachyons-colors/readme.md b/packages/tachyons-colors/readme.md
new file mode 100644
index 000000000..09ebe0458
--- /dev/null
+++ b/packages/tachyons-colors/readme.md
@@ -0,0 +1,104 @@
+# tachyons-colors 5.2.4
+
+Default CSS color variables for Tachyons
+
+#### Stats
+
+92 | 0 | 0
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-colors
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-colors
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-colors.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-colors";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ Tachyons
+ COLOR VARIABLES
+
+ Grayscale
+ - Solids
+ - Transparencies
+*/
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-colors/src/tachyons-colors.css b/packages/tachyons-colors/src/tachyons-colors.css
new file mode 100644
index 000000000..7280aeca3
--- /dev/null
+++ b/packages/tachyons-colors/src/tachyons-colors.css
@@ -0,0 +1,80 @@
+/*
+
+ Tachyons
+ COLOR VARIABLES
+
+ Grayscale
+ - Solids
+ - Transparencies
+ Colors
+
+*/
+
+:root {
+ --black: #000;
+ --near-black: #111;
+ --dark-gray:#333;
+ --mid-gray:#555;
+ --gray: #777;
+ --silver: #999;
+ --light-silver: #aaa;
+ --moon-gray: #ccc;
+ --light-gray: #eee;
+ --near-white: #f4f4f4;
+ --white: #fff;
+
+ --transparent:transparent;
+
+ --black-90: rgba(0,0,0,.9);
+ --black-80: rgba(0,0,0,.8);
+ --black-70: rgba(0,0,0,.7);
+ --black-60: rgba(0,0,0,.6);
+ --black-50: rgba(0,0,0,.5);
+ --black-40: rgba(0,0,0,.4);
+ --black-30: rgba(0,0,0,.3);
+ --black-20: rgba(0,0,0,.2);
+ --black-10: rgba(0,0,0,.1);
+ --black-05: rgba(0,0,0,.05);
+ --black-025: rgba(0,0,0,.025);
+ --black-0125: rgba(0,0,0,.0125);
+
+ --white-90: rgba(255,255,255,.9);
+ --white-80: rgba(255,255,255,.8);
+ --white-70: rgba(255,255,255,.7);
+ --white-60: rgba(255,255,255,.6);
+ --white-50: rgba(255,255,255,.5);
+ --white-40: rgba(255,255,255,.4);
+ --white-30: rgba(255,255,255,.3);
+ --white-20: rgba(255,255,255,.2);
+ --white-10: rgba(255,255,255,.1);
+ --white-05: rgba(255,255,255,.05);
+ --white-025: rgba(255,255,255,.025);
+ --white-0125: rgba(255,255,255,.0125);
+
+ --dark-red: #e7040f;
+ --red: #ff4136;
+ --light-red: #ff725c;
+ --orange: #ff6300;
+ --gold: #ffb700;
+ --yellow: #ffd700;
+ --light-yellow: #fbf1a9;
+ --purple: #5e2ca5;
+ --light-purple: #a463f2;
+ --dark-pink: #d5008f;
+ --hot-pink: #ff41b4;
+ --pink: #ff80cc;
+ --light-pink: #ffa3d7;
+ --dark-green: #137752;
+ --green: #19a974;
+ --light-green: #9eebcf;
+ --navy: #001b44;
+ --dark-blue: #00449e;
+ --blue: #357edd;
+ --light-blue: #96ccff;
+ --lightest-blue: #cdecff;
+ --washed-blue: #f6fffe;
+ --washed-green: #e8fdf5;
+ --washed-yellow: #fffceb;
+ --washed-red: #ffdfdf;
+
+}
diff --git a/packages/tachyons-coordinates/.gitignore b/packages/tachyons-coordinates/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-coordinates/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-coordinates/LICENSE.txt b/packages/tachyons-coordinates/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-coordinates/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-coordinates/code-of-conduct.md b/packages/tachyons-coordinates/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-coordinates/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-coordinates/css/tachyons-coordinates.css b/packages/tachyons-coordinates/css/tachyons-coordinates.css
new file mode 100644
index 000000000..a6a96e41a
--- /dev/null
+++ b/packages/tachyons-coordinates/css/tachyons-coordinates.css
@@ -0,0 +1,98 @@
+/*
+
+ COORDINATES
+
+ Use in combination with the position module.
+
+*/
+.top-0 { top: 0; }
+.right-0 { right: 0; }
+.bottom-0 { bottom: 0; }
+.left-0 { left: 0; }
+.top-1 { top: 1rem; }
+.right-1 { right: 1rem; }
+.bottom-1 { bottom: 1rem; }
+.left-1 { left: 1rem; }
+.top-2 { top: 2rem; }
+.right-2 { right: 2rem; }
+.bottom-2 { bottom: 2rem; }
+.left-2 { left: 2rem; }
+.top--1 { top: -1rem; }
+.right--1 { right: -1rem; }
+.bottom--1 { bottom: -1rem; }
+.left--1 { left: -1rem; }
+.top--2 { top: -2rem; }
+.right--2 { right: -2rem; }
+.bottom--2 { bottom: -2rem; }
+.left--2 { left: -2rem; }
+.absolute--fill { top: 0; right: 0; bottom: 0; left: 0; }
+@media screen and (min-width: 30em) {
+ .top-0-ns { top: 0; }
+ .left-0-ns { left: 0; }
+ .right-0-ns { right: 0; }
+ .bottom-0-ns { bottom: 0; }
+ .top-1-ns { top: 1rem; }
+ .left-1-ns { left: 1rem; }
+ .right-1-ns { right: 1rem; }
+ .bottom-1-ns { bottom: 1rem; }
+ .top-2-ns { top: 2rem; }
+ .left-2-ns { left: 2rem; }
+ .right-2-ns { right: 2rem; }
+ .bottom-2-ns { bottom: 2rem; }
+ .top--1-ns { top: -1rem; }
+ .right--1-ns { right: -1rem; }
+ .bottom--1-ns { bottom: -1rem; }
+ .left--1-ns { left: -1rem; }
+ .top--2-ns { top: -2rem; }
+ .right--2-ns { right: -2rem; }
+ .bottom--2-ns { bottom: -2rem; }
+ .left--2-ns { left: -2rem; }
+ .absolute--fill-ns { top: 0; right: 0; bottom: 0; left: 0; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .top-0-m { top: 0; }
+ .left-0-m { left: 0; }
+ .right-0-m { right: 0; }
+ .bottom-0-m { bottom: 0; }
+ .top-1-m { top: 1rem; }
+ .left-1-m { left: 1rem; }
+ .right-1-m { right: 1rem; }
+ .bottom-1-m { bottom: 1rem; }
+ .top-2-m { top: 2rem; }
+ .left-2-m { left: 2rem; }
+ .right-2-m { right: 2rem; }
+ .bottom-2-m { bottom: 2rem; }
+ .top--1-m { top: -1rem; }
+ .right--1-m { right: -1rem; }
+ .bottom--1-m { bottom: -1rem; }
+ .left--1-m { left: -1rem; }
+ .top--2-m { top: -2rem; }
+ .right--2-m { right: -2rem; }
+ .bottom--2-m { bottom: -2rem; }
+ .left--2-m { left: -2rem; }
+ .absolute--fill-m { top: 0; right: 0; bottom: 0; left: 0; }
+}
+@media screen and (min-width: 60em) {
+ .top-0-l { top: 0; }
+ .left-0-l { left: 0; }
+ .right-0-l { right: 0; }
+ .bottom-0-l { bottom: 0; }
+ .top-1-l { top: 1rem; }
+ .left-1-l { left: 1rem; }
+ .right-1-l { right: 1rem; }
+ .bottom-1-l { bottom: 1rem; }
+ .top-2-l { top: 2rem; }
+ .left-2-l { left: 2rem; }
+ .right-2-l { right: 2rem; }
+ .bottom-2-l { bottom: 2rem; }
+ .top--1-l { top: -1rem; }
+ .right--1-l { right: -1rem; }
+ .bottom--1-l { bottom: -1rem; }
+ .left--1-l { left: -1rem; }
+ .top--2-l { top: -2rem; }
+ .right--2-l { right: -2rem; }
+ .bottom--2-l { bottom: -2rem; }
+ .left--2-l { left: -2rem; }
+ .absolute--fill-l { top: 0; right: 0; bottom: 0; left: 0; }
+}
+
diff --git a/packages/tachyons-coordinates/css/tachyons-coordinates.min.css b/packages/tachyons-coordinates/css/tachyons-coordinates.min.css
new file mode 100644
index 000000000..240dfaa2f
--- /dev/null
+++ b/packages/tachyons-coordinates/css/tachyons-coordinates.min.css
@@ -0,0 +1,2 @@
+.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{top:0;right:0;bottom:0;left:0}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:30em) and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{top:0;right:0;bottom:0;left:0}}
+
diff --git a/packages/tachyons-coordinates/lib/readme.js b/packages/tachyons-coordinates/lib/readme.js
new file mode 100644
index 000000000..d4e732ba5
--- /dev/null
+++ b/packages/tachyons-coordinates/lib/readme.js
@@ -0,0 +1,24 @@
+var _ = require('lodash')
+var fs = require('fs')
+var gzip = require('gzip-size')
+var filesize = require('filesize')
+var postcss = require('postcss')
+var cssstats = require('cssstats')
+
+var module = require('../package.json')
+var moduleCss = fs.readFileSync('./'+module.name+'.min.css', 'utf8')
+var moduleObj = cssstats(moduleCss)
+var moduleSize = filesize(moduleObj.gzipSize)
+
+var srcCSS = fs.readFileSync('./'+module.name+'.css', 'utf8')
+
+var template = fs.readFileSync('./templates/README.md', 'utf8')
+var tpl = _.template(template)
+var md = tpl({
+ module: module,
+ moduleSize: moduleSize,
+ moduleObj: moduleObj,
+ srcCSS: srcCSS
+})
+
+fs.writeFileSync('./README.md', md)
diff --git a/packages/tachyons-coordinates/package.json b/packages/tachyons-coordinates/package.json
new file mode 100644
index 000000000..c4a8a5866
--- /dev/null
+++ b/packages/tachyons-coordinates/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "tachyons-coordinates",
+ "version": "4.0.0",
+ "style": "src/tachyons-coordinates.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-coordinates",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-coordinates.css > css/tachyons-coordinates.css",
+ "build:minify": "tachyons src/tachyons-coordinates.css --minify > css/tachyons-coordinates.min.css",
+ "build:docs": "tachyons src/tachyons-coordinates.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-coordinates/readme.md b/packages/tachyons-coordinates/readme.md
new file mode 100644
index 000000000..b32cbacc0
--- /dev/null
+++ b/packages/tachyons-coordinates/readme.md
@@ -0,0 +1,192 @@
+# tachyons-coordinates 4.0.0
+
+Performance based css module.
+
+#### Stats
+
+519 | 84 | 96
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-coordinates
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-coordinates
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-coordinates.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-coordinates";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ COORDINATES
+
+ Use in combination with the position module.
+
+*/
+.top-0 { top: 0; }
+.right-0 { right: 0; }
+.bottom-0 { bottom: 0; }
+.left-0 { left: 0; }
+.top-1 { top: 1rem; }
+.right-1 { right: 1rem; }
+.bottom-1 { bottom: 1rem; }
+.left-1 { left: 1rem; }
+.top-2 { top: 2rem; }
+.right-2 { right: 2rem; }
+.bottom-2 { bottom: 2rem; }
+.left-2 { left: 2rem; }
+.top--1 { top: -1rem; }
+.right--1 { right: -1rem; }
+.bottom--1 { bottom: -1rem; }
+.left--1 { left: -1rem; }
+.top--2 { top: -2rem; }
+.right--2 { right: -2rem; }
+.bottom--2 { bottom: -2rem; }
+.left--2 { left: -2rem; }
+.absolute--fill { top: 0; right: 0; bottom: 0; left: 0; }
+@media screen and (min-width: 30em) {
+ .top-0-ns { top: 0; }
+ .left-0-ns { left: 0; }
+ .right-0-ns { right: 0; }
+ .bottom-0-ns { bottom: 0; }
+ .top-1-ns { top: 1rem; }
+ .left-1-ns { left: 1rem; }
+ .right-1-ns { right: 1rem; }
+ .bottom-1-ns { bottom: 1rem; }
+ .top-2-ns { top: 2rem; }
+ .left-2-ns { left: 2rem; }
+ .right-2-ns { right: 2rem; }
+ .bottom-2-ns { bottom: 2rem; }
+ .top--1-ns { top: -1rem; }
+ .right--1-ns { right: -1rem; }
+ .bottom--1-ns { bottom: -1rem; }
+ .left--1-ns { left: -1rem; }
+ .top--2-ns { top: -2rem; }
+ .right--2-ns { right: -2rem; }
+ .bottom--2-ns { bottom: -2rem; }
+ .left--2-ns { left: -2rem; }
+ .absolute--fill-ns { top: 0; right: 0; bottom: 0; left: 0; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .top-0-m { top: 0; }
+ .left-0-m { left: 0; }
+ .right-0-m { right: 0; }
+ .bottom-0-m { bottom: 0; }
+ .top-1-m { top: 1rem; }
+ .left-1-m { left: 1rem; }
+ .right-1-m { right: 1rem; }
+ .bottom-1-m { bottom: 1rem; }
+ .top-2-m { top: 2rem; }
+ .left-2-m { left: 2rem; }
+ .right-2-m { right: 2rem; }
+ .bottom-2-m { bottom: 2rem; }
+ .top--1-m { top: -1rem; }
+ .right--1-m { right: -1rem; }
+ .bottom--1-m { bottom: -1rem; }
+ .left--1-m { left: -1rem; }
+ .top--2-m { top: -2rem; }
+ .right--2-m { right: -2rem; }
+ .bottom--2-m { bottom: -2rem; }
+ .left--2-m { left: -2rem; }
+ .absolute--fill-m { top: 0; right: 0; bottom: 0; left: 0; }
+}
+@media screen and (min-width: 60em) {
+ .top-0-l { top: 0; }
+ .left-0-l { left: 0; }
+ .right-0-l { right: 0; }
+ .bottom-0-l { bottom: 0; }
+ .top-1-l { top: 1rem; }
+ .left-1-l { left: 1rem; }
+ .right-1-l { right: 1rem; }
+ .bottom-1-l { bottom: 1rem; }
+ .top-2-l { top: 2rem; }
+ .left-2-l { left: 2rem; }
+ .right-2-l { right: 2rem; }
+ .bottom-2-l { bottom: 2rem; }
+ .top--1-l { top: -1rem; }
+ .right--1-l { right: -1rem; }
+ .bottom--1-l { bottom: -1rem; }
+ .left--1-l { left: -1rem; }
+ .top--2-l { top: -2rem; }
+ .right--2-l { right: -2rem; }
+ .bottom--2-l { bottom: -2rem; }
+ .left--2-l { left: -2rem; }
+ .absolute--fill-l { top: 0; right: 0; bottom: 0; left: 0; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-coordinates/src/tachyons-coordinates.css b/packages/tachyons-coordinates/src/tachyons-coordinates.css
new file mode 100644
index 000000000..2f143bddf
--- /dev/null
+++ b/packages/tachyons-coordinates/src/tachyons-coordinates.css
@@ -0,0 +1,152 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ COORDINATES
+ Docs: http://tachyons.io/docs/layout/position/
+
+ Use in combination with the position module.
+
+ Base:
+ top
+ bottom
+ right
+ left
+
+ Modifiers:
+ -0 = literal value 0
+ -1 = literal value 1
+ -2 = literal value 2
+ --1 = literal value -1
+ --2 = literal value -2
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.top-0 { top: 0; }
+.right-0 { right: 0; }
+.bottom-0 { bottom: 0; }
+.left-0 { left: 0; }
+
+.top-1 { top: 1rem; }
+.right-1 { right: 1rem; }
+.bottom-1 { bottom: 1rem; }
+.left-1 { left: 1rem; }
+
+.top-2 { top: 2rem; }
+.right-2 { right: 2rem; }
+.bottom-2 { bottom: 2rem; }
+.left-2 { left: 2rem; }
+
+.top--1 { top: -1rem; }
+.right--1 { right: -1rem; }
+.bottom--1 { bottom: -1rem; }
+.left--1 { left: -1rem; }
+
+.top--2 { top: -2rem; }
+.right--2 { right: -2rem; }
+.bottom--2 { bottom: -2rem; }
+.left--2 { left: -2rem; }
+
+
+.absolute--fill {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+
+@media (--breakpoint-not-small) {
+ .top-0-ns { top: 0; }
+ .left-0-ns { left: 0; }
+ .right-0-ns { right: 0; }
+ .bottom-0-ns { bottom: 0; }
+ .top-1-ns { top: 1rem; }
+ .left-1-ns { left: 1rem; }
+ .right-1-ns { right: 1rem; }
+ .bottom-1-ns { bottom: 1rem; }
+ .top-2-ns { top: 2rem; }
+ .left-2-ns { left: 2rem; }
+ .right-2-ns { right: 2rem; }
+ .bottom-2-ns { bottom: 2rem; }
+ .top--1-ns { top: -1rem; }
+ .right--1-ns { right: -1rem; }
+ .bottom--1-ns { bottom: -1rem; }
+ .left--1-ns { left: -1rem; }
+ .top--2-ns { top: -2rem; }
+ .right--2-ns { right: -2rem; }
+ .bottom--2-ns { bottom: -2rem; }
+ .left--2-ns { left: -2rem; }
+ .absolute--fill-ns {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+}
+
+@media (--breakpoint-medium) {
+ .top-0-m { top: 0; }
+ .left-0-m { left: 0; }
+ .right-0-m { right: 0; }
+ .bottom-0-m { bottom: 0; }
+ .top-1-m { top: 1rem; }
+ .left-1-m { left: 1rem; }
+ .right-1-m { right: 1rem; }
+ .bottom-1-m { bottom: 1rem; }
+ .top-2-m { top: 2rem; }
+ .left-2-m { left: 2rem; }
+ .right-2-m { right: 2rem; }
+ .bottom-2-m { bottom: 2rem; }
+ .top--1-m { top: -1rem; }
+ .right--1-m { right: -1rem; }
+ .bottom--1-m { bottom: -1rem; }
+ .left--1-m { left: -1rem; }
+ .top--2-m { top: -2rem; }
+ .right--2-m { right: -2rem; }
+ .bottom--2-m { bottom: -2rem; }
+ .left--2-m { left: -2rem; }
+ .absolute--fill-m {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+}
+
+@media (--breakpoint-large) {
+ .top-0-l { top: 0; }
+ .left-0-l { left: 0; }
+ .right-0-l { right: 0; }
+ .bottom-0-l { bottom: 0; }
+ .top-1-l { top: 1rem; }
+ .left-1-l { left: 1rem; }
+ .right-1-l { right: 1rem; }
+ .bottom-1-l { bottom: 1rem; }
+ .top-2-l { top: 2rem; }
+ .left-2-l { left: 2rem; }
+ .right-2-l { right: 2rem; }
+ .bottom-2-l { bottom: 2rem; }
+ .top--1-l { top: -1rem; }
+ .right--1-l { right: -1rem; }
+ .bottom--1-l { bottom: -1rem; }
+ .left--1-l { left: -1rem; }
+ .top--2-l { top: -2rem; }
+ .right--2-l { right: -2rem; }
+ .bottom--2-l { bottom: -2rem; }
+ .left--2-l { left: -2rem; }
+ .absolute--fill-l {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+}
diff --git a/packages/tachyons-coordinates/templates/README.md b/packages/tachyons-coordinates/templates/README.md
new file mode 100644
index 000000000..e34af1598
--- /dev/null
+++ b/packages/tachyons-coordinates/templates/README.md
@@ -0,0 +1,49 @@
+# <%= module.name %>
+<%= module.version %>
+
+<%= module.description %>
+
+## Install
+```
+npm install --save-dev <%= module.name %>
+```
+
+or download the css on github and include in your project:
+
+```
+git clone git@github.com:mrmrs/<%= module.name %>
+```
+
+## The Code
+```
+<%= srcCSS %>
+```
+
+## Author
+
+[mrmrs](http://mrmrs.io)
+
+## License
+
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/packages/tachyons-debug/.gitignore b/packages/tachyons-debug/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-debug/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-debug/LICENSE.txt b/packages/tachyons-debug/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-debug/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-debug/build.js b/packages/tachyons-debug/build.js
new file mode 100644
index 000000000..f93e9f909
--- /dev/null
+++ b/packages/tachyons-debug/build.js
@@ -0,0 +1,38 @@
+// dependencies
+
+var fs = require("fs")
+var autoprefixer = require("autoprefixer")
+var postcss = require("postcss")
+var atImport = require("postcss-import")
+var cssvariables = require('postcss-css-variables')
+var compressor = require('node-minify')
+var conditionals = require('postcss-conditionals')
+var customMedia = require("postcss-custom-media")
+
+// css to be processed
+var css = fs.readFileSync("src/tachyons-debug.css", "utf8")
+
+// process css
+var output = postcss([autoprefixer])
+ .use(atImport())
+ .use(cssvariables())
+ .use(conditionals())
+ .use(customMedia())
+ .process(css, {
+ from: "src/tachyons-debug.css",
+ to: "tachyons-debug.css"
+ })
+ .css
+
+fs.writeFile("tachyons-debug.css", output, 'utf-8')
+
+// Using YUI Compressor for CSS
+new compressor.minify({
+ type: 'sqwish',
+ fileIn: 'tachyons-debug.css',
+ fileOut: 'tachyons-debug.min.css',
+ callback: function(err, min){
+ //console.log('Sqwish');
+ //console.log(err);
+ }
+});
diff --git a/packages/tachyons-debug/code-of-conduct.md b/packages/tachyons-debug/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-debug/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-debug/css/tachyons-debug.css b/packages/tachyons-debug/css/tachyons-debug.css
new file mode 100644
index 000000000..5796288e9
--- /dev/null
+++ b/packages/tachyons-debug/css/tachyons-debug.css
@@ -0,0 +1,100 @@
+body { outline: 1px solid #2980B9 !important; }
+article { outline: 1px solid #3498DB !important; }
+nav { outline: 1px solid #0088C3 !important; }
+aside { outline: 1px solid #33A0CE !important; }
+section { outline: 1px solid #66B8DA !important; }
+header { outline: 1px solid #99CFE7 !important; }
+footer { outline: 1px solid #CCE7F3 !important; }
+h1 { outline: 1px solid #162544 !important; }
+h2 { outline: 1px solid #314E6E !important; }
+h3 { outline: 1px solid #3E5E85 !important; }
+h4 { outline: 1px solid #449BAF !important; }
+h5 { outline: 1px solid #C7D1CB !important; }
+h6 { outline: 1px solid #4371D0 !important; }
+main { outline: 1px solid #2F4F90 !important; }
+address { outline: 1px solid #1A2C51 !important; }
+div { outline: 1px solid #036CDB !important; }
+p { outline: 1px solid #AC050B !important; }
+hr { outline: 1px solid #FF063F !important; }
+pre { outline: 1px solid #850440 !important; }
+blockquote { outline: 1px solid #F1B8E7 !important; }
+ol { outline: 1px solid #FF050C !important; }
+ul { outline: 1px solid #D90416 !important; }
+li { outline: 1px solid #D90416 !important; }
+dl { outline: 1px solid #FD3427 !important; }
+dt { outline: 1px solid #FF0043 !important; }
+dd { outline: 1px solid #E80174 !important; }
+figure { outline: 1px solid #FF00BB !important; }
+figcaption { outline: 1px solid #BF0032 !important; }
+table { outline: 1px solid #00CC99 !important; }
+caption { outline: 1px solid #37FFC4 !important; }
+thead { outline: 1px solid #98DACA !important; }
+tbody { outline: 1px solid #64A7A0 !important; }
+tfoot { outline: 1px solid #22746B !important; }
+tr { outline: 1px solid #86C0B2 !important; }
+th { outline: 1px solid #A1E7D6 !important; }
+td { outline: 1px solid #3F5A54 !important; }
+col { outline: 1px solid #6C9A8F !important; }
+colgroup { outline: 1px solid #6C9A9D !important; }
+button { outline: 1px solid #DA8301 !important; }
+datalist { outline: 1px solid #C06000 !important; }
+fieldset { outline: 1px solid #D95100 !important; }
+form { outline: 1px solid #D23600 !important; }
+input { outline: 1px solid #FCA600 !important; }
+keygen { outline: 1px solid #B31E00 !important; }
+label { outline: 1px solid #EE8900 !important; }
+legend { outline: 1px solid #DE6D00 !important; }
+meter { outline: 1px solid #E8630C !important; }
+optgroup { outline: 1px solid #B33600 !important; }
+option { outline: 1px solid #FF8A00 !important; }
+output { outline: 1px solid #FF9619 !important; }
+progress { outline: 1px solid #E57C00 !important; }
+select { outline: 1px solid #E26E0F !important; }
+textarea { outline: 1px solid #CC5400 !important; }
+details { outline: 1px solid #33848F !important; }
+summary { outline: 1px solid #60A1A6 !important; }
+command { outline: 1px solid #438DA1 !important; }
+menu { outline: 1px solid #449DA6 !important; }
+del { outline: 1px solid #BF0000 !important; }
+ins { outline: 1px solid #400000 !important; }
+img { outline: 1px solid #22746B !important; }
+iframe { outline: 1px solid #64A7A0 !important; }
+embed { outline: 1px solid #98DACA !important; }
+object { outline: 1px solid #00CC99 !important; }
+param { outline: 1px solid #37FFC4 !important; }
+video { outline: 1px solid #6EE866 !important; }
+audio { outline: 1px solid #027353 !important; }
+source { outline: 1px solid #012426 !important; }
+canvas { outline: 1px solid #A2F570 !important; }
+track { outline: 1px solid #59A600 !important; }
+map { outline: 1px solid #7BE500 !important; }
+area { outline: 1px solid #305900 !important; }
+a { outline: 1px solid #FF62AB !important; }
+em { outline: 1px solid #800B41 !important; }
+strong { outline: 1px solid #FF1583 !important; }
+i { outline: 1px solid #803156 !important; }
+b { outline: 1px solid #CC1169 !important; }
+u { outline: 1px solid #FF0430 !important; }
+s { outline: 1px solid #F805E3 !important; }
+small { outline: 1px solid #D107B2 !important; }
+abbr { outline: 1px solid #4A0263 !important; }
+q { outline: 1px solid #240018 !important; }
+cite { outline: 1px solid #64003C !important; }
+dfn { outline: 1px solid #B4005A !important; }
+sub { outline: 1px solid #DBA0C8 !important; }
+sup { outline: 1px solid #CC0256 !important; }
+time { outline: 1px solid #D6606D !important; }
+code { outline: 1px solid #E04251 !important; }
+kbd { outline: 1px solid #5E001F !important; }
+samp { outline: 1px solid #9C0033 !important; }
+var { outline: 1px solid #D90047 !important; }
+mark { outline: 1px solid #FF0053 !important; }
+bdi { outline: 1px solid #BF3668 !important; }
+bdo { outline: 1px solid #6F1400 !important; }
+ruby { outline: 1px solid #FF7B93 !important; }
+rt { outline: 1px solid #FF2F54 !important; }
+rp { outline: 1px solid #803E49 !important; }
+span { outline: 1px solid #CC2643 !important; }
+br { outline: 1px solid #DB687D !important; }
+wbr { outline: 1px solid #DB175B !important; }
+
diff --git a/packages/tachyons-debug/css/tachyons-debug.min.css b/packages/tachyons-debug/css/tachyons-debug.min.css
new file mode 100644
index 000000000..f6db91f14
--- /dev/null
+++ b/packages/tachyons-debug/css/tachyons-debug.min.css
@@ -0,0 +1,2 @@
+body{outline:1px solid #2980b9!important}article{outline:1px solid #3498db!important}nav{outline:1px solid #0088c3!important}aside{outline:1px solid #33a0ce!important}section{outline:1px solid #66b8da!important}header{outline:1px solid #99cfe7!important}footer{outline:1px solid #cce7f3!important}h1{outline:1px solid #162544!important}h2{outline:1px solid #314e6e!important}h3{outline:1px solid #3e5e85!important}h4{outline:1px solid #449baf!important}h5{outline:1px solid #c7d1cb!important}h6{outline:1px solid #4371d0!important}main{outline:1px solid #2f4f90!important}address{outline:1px solid #1a2c51!important}div{outline:1px solid #036cdb!important}p{outline:1px solid #ac050b!important}hr{outline:1px solid #ff063f!important}pre{outline:1px solid #850440!important}blockquote{outline:1px solid #f1b8e7!important}ol{outline:1px solid #ff050c!important}li,ul{outline:1px solid #d90416!important}dl{outline:1px solid #fd3427!important}dt{outline:1px solid #ff0043!important}dd{outline:1px solid #e80174!important}figure{outline:1px solid #f0b!important}figcaption{outline:1px solid #bf0032!important}table{outline:1px solid #0c9!important}caption{outline:1px solid #37ffc4!important}thead{outline:1px solid #98daca!important}tbody{outline:1px solid #64a7a0!important}tfoot{outline:1px solid #22746b!important}tr{outline:1px solid #86c0b2!important}th{outline:1px solid #a1e7d6!important}td{outline:1px solid #3f5a54!important}col{outline:1px solid #6c9a8f!important}colgroup{outline:1px solid #6c9a9d!important}button{outline:1px solid #da8301!important}datalist{outline:1px solid #c06000!important}fieldset{outline:1px solid #d95100!important}form{outline:1px solid #d23600!important}input{outline:1px solid #fca600!important}keygen{outline:1px solid #b31e00!important}label{outline:1px solid #ee8900!important}legend{outline:1px solid #de6d00!important}meter{outline:1px solid #e8630c!important}optgroup{outline:1px solid #b33600!important}option{outline:1px solid #ff8a00!important}output{outline:1px solid #ff9619!important}progress{outline:1px solid #e57c00!important}select{outline:1px solid #e26e0f!important}textarea{outline:1px solid #cc5400!important}details{outline:1px solid #33848f!important}summary{outline:1px solid #60a1a6!important}command{outline:1px solid #438da1!important}menu{outline:1px solid #449da6!important}del{outline:1px solid #bf0000!important}ins{outline:1px solid #400000!important}img{outline:1px solid #22746b!important}iframe{outline:1px solid #64a7a0!important}embed{outline:1px solid #98daca!important}object{outline:1px solid #0c9!important}param{outline:1px solid #37ffc4!important}video{outline:1px solid #6ee866!important}audio{outline:1px solid #027353!important}source{outline:1px solid #012426!important}canvas{outline:1px solid #a2f570!important}track{outline:1px solid #59a600!important}map{outline:1px solid #7be500!important}area{outline:1px solid #305900!important}a{outline:1px solid #ff62ab!important}em{outline:1px solid #800b41!important}strong{outline:1px solid #ff1583!important}i{outline:1px solid #803156!important}b{outline:1px solid #cc1169!important}u{outline:1px solid #ff0430!important}s{outline:1px solid #f805e3!important}small{outline:1px solid #d107b2!important}abbr{outline:1px solid #4a0263!important}q{outline:1px solid #240018!important}cite{outline:1px solid #64003c!important}dfn{outline:1px solid #b4005a!important}sub{outline:1px solid #dba0c8!important}sup{outline:1px solid #cc0256!important}time{outline:1px solid #d6606d!important}code{outline:1px solid #e04251!important}kbd{outline:1px solid #5e001f!important}samp{outline:1px solid #9c0033!important}var{outline:1px solid #d90047!important}mark{outline:1px solid #ff0053!important}bdi{outline:1px solid #bf3668!important}bdo{outline:1px solid #6f1400!important}ruby{outline:1px solid #ff7b93!important}rt{outline:1px solid #ff2f54!important}rp{outline:1px solid #803e49!important}span{outline:1px solid #cc2643!important}br{outline:1px solid #db687d!important}wbr{outline:1px solid #db175b!important}
+
diff --git a/packages/tachyons-debug/package.json b/packages/tachyons-debug/package.json
new file mode 100644
index 000000000..f17807c62
--- /dev/null
+++ b/packages/tachyons-debug/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "tachyons-debug",
+ "version": "1.1.6",
+ "style": "src/tachyons-debug.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-debug",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-debug.css > css/tachyons-debug.css",
+ "build:minify": "tachyons src/tachyons-debug.css --minify > css/tachyons-debug.min.css",
+ "build:docs": "tachyons src/tachyons-debug.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true,
+ "nickName": "debugging"
+ }
+}
diff --git a/packages/tachyons-debug/readme.md b/packages/tachyons-debug/readme.md
new file mode 100644
index 000000000..dd3d3eeff
--- /dev/null
+++ b/packages/tachyons-debug/readme.md
@@ -0,0 +1,194 @@
+# tachyons-debug 1.1.6
+
+Performance based css module.
+
+#### Stats
+
+964 | 99 | 99
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-debug
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-debug
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-debug.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-debug";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+body { outline: 1px solid #2980B9 !important; }
+article { outline: 1px solid #3498DB !important; }
+nav { outline: 1px solid #0088C3 !important; }
+aside { outline: 1px solid #33A0CE !important; }
+section { outline: 1px solid #66B8DA !important; }
+header { outline: 1px solid #99CFE7 !important; }
+footer { outline: 1px solid #CCE7F3 !important; }
+h1 { outline: 1px solid #162544 !important; }
+h2 { outline: 1px solid #314E6E !important; }
+h3 { outline: 1px solid #3E5E85 !important; }
+h4 { outline: 1px solid #449BAF !important; }
+h5 { outline: 1px solid #C7D1CB !important; }
+h6 { outline: 1px solid #4371D0 !important; }
+main { outline: 1px solid #2F4F90 !important; }
+address { outline: 1px solid #1A2C51 !important; }
+div { outline: 1px solid #036CDB !important; }
+p { outline: 1px solid #AC050B !important; }
+hr { outline: 1px solid #FF063F !important; }
+pre { outline: 1px solid #850440 !important; }
+blockquote { outline: 1px solid #F1B8E7 !important; }
+ol { outline: 1px solid #FF050C !important; }
+ul { outline: 1px solid #D90416 !important; }
+li { outline: 1px solid #D90416 !important; }
+dl { outline: 1px solid #FD3427 !important; }
+dt { outline: 1px solid #FF0043 !important; }
+dd { outline: 1px solid #E80174 !important; }
+figure { outline: 1px solid #FF00BB !important; }
+figcaption { outline: 1px solid #BF0032 !important; }
+table { outline: 1px solid #00CC99 !important; }
+caption { outline: 1px solid #37FFC4 !important; }
+thead { outline: 1px solid #98DACA !important; }
+tbody { outline: 1px solid #64A7A0 !important; }
+tfoot { outline: 1px solid #22746B !important; }
+tr { outline: 1px solid #86C0B2 !important; }
+th { outline: 1px solid #A1E7D6 !important; }
+td { outline: 1px solid #3F5A54 !important; }
+col { outline: 1px solid #6C9A8F !important; }
+colgroup { outline: 1px solid #6C9A9D !important; }
+button { outline: 1px solid #DA8301 !important; }
+datalist { outline: 1px solid #C06000 !important; }
+fieldset { outline: 1px solid #D95100 !important; }
+form { outline: 1px solid #D23600 !important; }
+input { outline: 1px solid #FCA600 !important; }
+keygen { outline: 1px solid #B31E00 !important; }
+label { outline: 1px solid #EE8900 !important; }
+legend { outline: 1px solid #DE6D00 !important; }
+meter { outline: 1px solid #E8630C !important; }
+optgroup { outline: 1px solid #B33600 !important; }
+option { outline: 1px solid #FF8A00 !important; }
+output { outline: 1px solid #FF9619 !important; }
+progress { outline: 1px solid #E57C00 !important; }
+select { outline: 1px solid #E26E0F !important; }
+textarea { outline: 1px solid #CC5400 !important; }
+details { outline: 1px solid #33848F !important; }
+summary { outline: 1px solid #60A1A6 !important; }
+command { outline: 1px solid #438DA1 !important; }
+menu { outline: 1px solid #449DA6 !important; }
+del { outline: 1px solid #BF0000 !important; }
+ins { outline: 1px solid #400000 !important; }
+img { outline: 1px solid #22746B !important; }
+iframe { outline: 1px solid #64A7A0 !important; }
+embed { outline: 1px solid #98DACA !important; }
+object { outline: 1px solid #00CC99 !important; }
+param { outline: 1px solid #37FFC4 !important; }
+video { outline: 1px solid #6EE866 !important; }
+audio { outline: 1px solid #027353 !important; }
+source { outline: 1px solid #012426 !important; }
+canvas { outline: 1px solid #A2F570 !important; }
+track { outline: 1px solid #59A600 !important; }
+map { outline: 1px solid #7BE500 !important; }
+area { outline: 1px solid #305900 !important; }
+a { outline: 1px solid #FF62AB !important; }
+em { outline: 1px solid #800B41 !important; }
+strong { outline: 1px solid #FF1583 !important; }
+i { outline: 1px solid #803156 !important; }
+b { outline: 1px solid #CC1169 !important; }
+u { outline: 1px solid #FF0430 !important; }
+s { outline: 1px solid #F805E3 !important; }
+small { outline: 1px solid #D107B2 !important; }
+abbr { outline: 1px solid #4A0263 !important; }
+q { outline: 1px solid #240018 !important; }
+cite { outline: 1px solid #64003C !important; }
+dfn { outline: 1px solid #B4005A !important; }
+sub { outline: 1px solid #DBA0C8 !important; }
+sup { outline: 1px solid #CC0256 !important; }
+time { outline: 1px solid #D6606D !important; }
+code { outline: 1px solid #E04251 !important; }
+kbd { outline: 1px solid #5E001F !important; }
+samp { outline: 1px solid #9C0033 !important; }
+var { outline: 1px solid #D90047 !important; }
+mark { outline: 1px solid #FF0053 !important; }
+bdi { outline: 1px solid #BF3668 !important; }
+bdo { outline: 1px solid #6F1400 !important; }
+ruby { outline: 1px solid #FF7B93 !important; }
+rt { outline: 1px solid #FF2F54 !important; }
+rp { outline: 1px solid #803E49 !important; }
+span { outline: 1px solid #CC2643 !important; }
+br { outline: 1px solid #DB687D !important; }
+wbr { outline: 1px solid #DB175B !important; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-debug/src/tachyons-debug.css b/packages/tachyons-debug/src/tachyons-debug.css
new file mode 100644
index 000000000..f09f2b519
--- /dev/null
+++ b/packages/tachyons-debug/src/tachyons-debug.css
@@ -0,0 +1,132 @@
+/*
+
+ DEBUG (PESTICIDE)
+ Docs: http://tachyons.io/docs/debug/
+
+ This is a partial you have to manually include in your
+ build file. It places a different colored outline on
+ each element which can help you debug layout issues.
+ There is also a handy chrome extension that can
+ be found at http://pesticide.io
+
+*/
+
+body { outline: 1px solid #2980B9!important; }
+article { outline: 1px solid #3498DB!important; }
+nav { outline: 1px solid #0088C3!important; }
+aside { outline: 1px solid #33A0CE!important; }
+section { outline: 1px solid #66B8DA!important; }
+header { outline: 1px solid #99CFE7!important; }
+footer { outline: 1px solid #CCE7F3!important; }
+h1 { outline: 1px solid #162544!important; }
+h2 { outline: 1px solid #314E6E!important; }
+h3 { outline: 1px solid #3E5E85!important; }
+h4 { outline: 1px solid #449BAF!important; }
+h5 { outline: 1px solid #C7D1CB!important; }
+h6 { outline: 1px solid #4371D0!important; }
+main { outline: 1px solid #2F4F90!important; }
+address { outline: 1px solid #1A2C51!important; }
+div { outline: 1px solid #036CDB!important; }
+
+
+p { outline: 1px solid #AC050B!important; }
+hr { outline: 1px solid #FF063F!important; }
+pre { outline: 1px solid #850440!important; }
+blockquote { outline: 1px solid #F1B8E7!important; }
+ol { outline: 1px solid #FF050C!important; }
+ul { outline: 1px solid #D90416!important; }
+li { outline: 1px solid #D90416!important; }
+dl { outline: 1px solid #FD3427!important; }
+dt { outline: 1px solid #FF0043!important; }
+dd { outline: 1px solid #E80174!important; }
+figure { outline: 1px solid #FF00BB!important; }
+figcaption { outline: 1px solid #BF0032!important; }
+
+
+
+table { outline: 1px solid #00CC99!important; }
+caption { outline: 1px solid #37FFC4!important; }
+thead { outline: 1px solid #98DACA!important; }
+tbody { outline: 1px solid #64A7A0!important; }
+tfoot { outline: 1px solid #22746B!important; }
+tr { outline: 1px solid #86C0B2!important; }
+th { outline: 1px solid #A1E7D6!important; }
+td { outline: 1px solid #3F5A54!important; }
+col { outline: 1px solid #6C9A8F!important; }
+colgroup { outline: 1px solid #6C9A9D!important; }
+
+
+button { outline: 1px solid #DA8301!important; }
+datalist { outline: 1px solid #C06000!important; }
+fieldset { outline: 1px solid #D95100!important; }
+form { outline: 1px solid #D23600!important; }
+input { outline: 1px solid #FCA600!important; }
+keygen { outline: 1px solid #B31E00!important; }
+label { outline: 1px solid #EE8900!important; }
+legend { outline: 1px solid #DE6D00!important; }
+meter { outline: 1px solid #E8630C!important; }
+optgroup { outline: 1px solid #B33600!important; }
+option { outline: 1px solid #FF8A00!important; }
+output { outline: 1px solid #FF9619!important; }
+progress { outline: 1px solid #E57C00!important; }
+select { outline: 1px solid #E26E0F!important; }
+textarea { outline: 1px solid #CC5400!important; }
+
+
+
+details { outline: 1px solid #33848F!important; }
+summary { outline: 1px solid #60A1A6!important; }
+command { outline: 1px solid #438DA1!important; }
+menu { outline: 1px solid #449DA6!important; }
+
+
+
+del { outline: 1px solid #BF0000!important; }
+ins { outline: 1px solid #400000!important; }
+
+
+
+img { outline: 1px solid #22746B!important; }
+iframe { outline: 1px solid #64A7A0!important; }
+embed { outline: 1px solid #98DACA!important; }
+object { outline: 1px solid #00CC99!important; }
+param { outline: 1px solid #37FFC4!important; }
+video { outline: 1px solid #6EE866!important; }
+audio { outline: 1px solid #027353!important; }
+source { outline: 1px solid #012426!important; }
+canvas { outline: 1px solid #A2F570!important; }
+track { outline: 1px solid #59A600!important; }
+map { outline: 1px solid #7BE500!important; }
+area { outline: 1px solid #305900!important; }
+
+
+
+a { outline: 1px solid #FF62AB!important; }
+em { outline: 1px solid #800B41!important; }
+strong { outline: 1px solid #FF1583!important; }
+i { outline: 1px solid #803156!important; }
+b { outline: 1px solid #CC1169!important; }
+u { outline: 1px solid #FF0430!important; }
+s { outline: 1px solid #F805E3!important; }
+small { outline: 1px solid #D107B2!important; }
+abbr { outline: 1px solid #4A0263!important; }
+q { outline: 1px solid #240018!important; }
+cite { outline: 1px solid #64003C!important; }
+dfn { outline: 1px solid #B4005A!important; }
+sub { outline: 1px solid #DBA0C8!important; }
+sup { outline: 1px solid #CC0256!important; }
+time { outline: 1px solid #D6606D!important; }
+code { outline: 1px solid #E04251!important; }
+kbd { outline: 1px solid #5E001F!important; }
+samp { outline: 1px solid #9C0033!important; }
+var { outline: 1px solid #D90047!important; }
+mark { outline: 1px solid #FF0053!important; }
+bdi { outline: 1px solid #BF3668!important; }
+bdo { outline: 1px solid #6F1400!important; }
+ruby { outline: 1px solid #FF7B93!important; }
+rt { outline: 1px solid #FF2F54!important; }
+rp { outline: 1px solid #803E49!important; }
+span { outline: 1px solid #CC2643!important; }
+br { outline: 1px solid #DB687D!important; }
+wbr { outline: 1px solid #DB175B!important; }
+
diff --git a/packages/tachyons-display-verbose/.gitignore b/packages/tachyons-display-verbose/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-display-verbose/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-display-verbose/css/tachyons-display-verbose.css b/packages/tachyons-display-verbose/css/tachyons-display-verbose.css
new file mode 100644
index 000000000..2c13da0cc
--- /dev/null
+++ b/packages/tachyons-display-verbose/css/tachyons-display-verbose.css
@@ -0,0 +1,67 @@
+/*
+
+ DISPLAY
+
+ Base:
+ d = display
+
+ Modifiers:
+ n = none
+ b = block
+ ib = inline-block
+ it = inline-table
+ t = table
+ tc = table-cell
+ tr = table-row
+ tcol = table-column
+ tcolg = table-column-group
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.display-none { display: none; }
+.display-inline { display: inline; }
+.display-block { display: block; }
+.display-inline-block { display: inline-block; }
+.display-inline-table { display: inline-table; }
+.display-table { display: table; }
+.display-table-cell { display: table-cell; }
+.display-table-column { display: table-column; }
+.display-table-column-group { display: table-column-group; }
+@media screen and (min-width: 48em) {
+ .display-none-ns { display: none; }
+ .display-inline-ns { display: inline; }
+ .display-block-ns { display: block; }
+ .display-inline-block-ns { display: inline-block; }
+ .display-inline-table-ns { display: inline-table; }
+ .display-table-ns { display: table; }
+ .display-table-cell-ns { display: table-cell; }
+ .display-table-column-ns { display: table-column; }
+ .display-table-column-group-ns { display: table-column-group; }
+}
+@media screen and (min-width: 48em) and (max-width: 64em) {
+ .display-none-m { display: none; }
+ .display-inline-m { display: inline; }
+ .display-block-m { display: block; }
+ .display-inline-block-m { display: inline-block; }
+ .display-inline-table-m { display: inline-table; }
+ .display-table-m { display: table; }
+ .display-table-cell-m { display: table-cell; }
+ .display-table-column-m { display: table-column; }
+ .display-table-column-group-m { display: table-column-group; }
+}
+@media screen and (min-width: 64em) {
+ .display-none-l { display: none; }
+ .display-inline-l { display: inline; }
+ .display-block-l { display: block; }
+ .display-inline-block-l { display: inline-block; }
+ .display-inline-table-l { display: inline-table; }
+ .display-table-l { display: table; }
+ .display-table-cell-l { display: table-cell; }
+ .display-table-column-l { display: table-column; }
+ .display-table-column-group-l { display: table-column-group; }
+}
+
diff --git a/packages/tachyons-display-verbose/css/tachyons-display-verbose.min.css b/packages/tachyons-display-verbose/css/tachyons-display-verbose.min.css
new file mode 100644
index 000000000..26824e05a
--- /dev/null
+++ b/packages/tachyons-display-verbose/css/tachyons-display-verbose.min.css
@@ -0,0 +1,2 @@
+.display-none{display:none}.display-inline{display:inline}.display-block{display:block}.display-inline-block{display:inline-block}.display-inline-table{display:inline-table}.display-table{display:table}.display-table-cell{display:table-cell}.display-table-column{display:table-column}.display-table-column-group{display:table-column-group}@media screen and (min-width:48em){.display-none-ns{display:none}.display-inline-ns{display:inline}.display-block-ns{display:block}.display-inline-block-ns{display:inline-block}.display-inline-table-ns{display:inline-table}.display-table-ns{display:table}.display-table-cell-ns{display:table-cell}.display-table-column-ns{display:table-column}.display-table-column-group-ns{display:table-column-group}}@media screen and (min-width:48em) and (max-width:64em){.display-none-m{display:none}.display-inline-m{display:inline}.display-block-m{display:block}.display-inline-block-m{display:inline-block}.display-inline-table-m{display:inline-table}.display-table-m{display:table}.display-table-cell-m{display:table-cell}.display-table-column-m{display:table-column}.display-table-column-group-m{display:table-column-group}}@media screen and (min-width:64em){.display-none-l{display:none}.display-inline-l{display:inline}.display-block-l{display:block}.display-inline-block-l{display:inline-block}.display-inline-table-l{display:inline-table}.display-table-l{display:table}.display-table-cell-l{display:table-cell}.display-table-column-l{display:table-column}.display-table-column-group-l{display:table-column-group}}
+
diff --git a/packages/tachyons-display-verbose/index.html b/packages/tachyons-display-verbose/index.html
new file mode 100644
index 000000000..b4d4fb5e9
--- /dev/null
+++ b/packages/tachyons-display-verbose/index.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+ tachyons display
+
+
+
+
+
+
+ tachyons display
+ Examples
+
+ .dn { display: none; }
+ .di { display: inline; }
+ .db { display: block; }
+ .dib { display: inline-block; }
+ .dit { display: inline-table; }
+ .dt { display: table; }
+ .dtc { display: table-cell; }
+ .dtcol { display: table-column; }
+ .dtcolg { display: table-column-group; }
+ .dn-ns { display: none; }
+ .di-ns { display: inline; }
+ .db-ns { display: block; }
+ .dib-ns { display: inline-block; }
+ .dit-ns { display: inline-table; }
+ .dt-ns { display: table; }
+ .dtc-ns { display: table-cell; }
+ .dtcol-ns { display: table-column; }
+ .dtcolg-ns { display: table-column-group; }
+ .dn-m { display: none; }
+ .di-m { display: inline; }
+ .db-m { display: block; }
+ .dib-m { display: inline-block; }
+ .dit-m { display: inline-table; }
+ .dt-m { display: table; }
+ .dtc-m { display: table-cell; }
+ .dtcol-m { display: table-column; }
+ .dtcolg-m { display: table-column-group; }
+ .dn-l { display: none; }
+ .di-l { display: inline; }
+ .db-l { display: block; }
+ .dib-l { display: inline-block; }
+ .dit-l { display: inline-table; }
+ .dt-l { display: table; }
+ .dtc-l { display: table-cell; }
+ .dtcol-l { display: table-column; }
+ .dtcolg-l { display: table-column-group; }
+
+
+/*
+
+ DISPLAY
+
+ - Mobile First
+ - Breakpoint: not-small
+ - Breakpoint: medium
+ - Breakpoint: large
+
+*/
+
+.dn { display: none; }
+.di { display: inline; }
+.db { display: block; }
+.dib { display: inline-block; }
+.dit { display: inline-table; }
+.dt { display: table; }
+.dtc { display: table-cell; }
+.dtcol { display: table-column; }
+.dtcolg { display: table-column-group; }
+
+@include break(not-small) {
+ .dn-ns { display: none; }
+ .di-ns { display: inline; }
+ .db-ns { display: block; }
+ .dib-ns { display: inline-block; }
+ .dit-ns { display: inline-table; }
+ .dt-ns { display: table; }
+ .dtc-ns { display: table-cell; }
+ .dtcol-ns { display: table-column; }
+ .dtcolg-ns { display: table-column-group; }
+}
+
+@include break(medium) {
+ .dn-m { display: none; }
+ .di-m { display: inline; }
+ .db-m { display: block; }
+ .dib-m { display: inline-block; }
+ .dit-m { display: inline-table; }
+ .dt-m { display: table; }
+ .dtc-m { display: table-cell; }
+ .dtcol-m { display: table-column; }
+ .dtcolg-m { display: table-column-group; }
+}
+
+@include break(large) {
+ .dn-l { display: none; }
+ .di-l { display: inline; }
+ .db-l { display: block; }
+ .dib-l { display: inline-block; }
+ .dit-l { display: inline-table; }
+ .dt-l { display: table; }
+ .dtc-l { display: table-cell; }
+ .dtcol-l { display: table-column; }
+ .dtcolg-l { display: table-column-group; }
+}
+
+
+ View package on npm
+
+
diff --git a/packages/tachyons-display-verbose/license b/packages/tachyons-display-verbose/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-display-verbose/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-display-verbose/package.json b/packages/tachyons-display-verbose/package.json
new file mode 100644
index 000000000..858997367
--- /dev/null
+++ b/packages/tachyons-display-verbose/package.json
@@ -0,0 +1,40 @@
+{
+ "name": "tachyons-display-verbose",
+ "version": "1.0.0",
+ "style": "tachyons-display-verbose.css",
+ "homepage": "http://github.com/tachyons-css/tachyons-display-verbose",
+ "description": "Performance based css module.",
+ "keywords": [
+ "postcss",
+ "display",
+ "css",
+ "design",
+ "ui"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "http://github.com/tachyons-css/tachyons-display-verbose.git"
+ },
+ "bugs": {
+ "url": "https://github.com/tachyons-css/tachyons-display-verbose/issues",
+ "email": "hi@mrmrs.cc"
+ },
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^0.6.1",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-display-verbose.css > css/tachyons-display-verbose.css",
+ "build:minify": "tachyons src/tachyons-display-verbose.css --minify > css/tachyons-display-verbose.min.css",
+ "build:docs": "tachyons src/tachyons-display-verbose.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-display-verbose/readme.md b/packages/tachyons-display-verbose/readme.md
new file mode 100644
index 000000000..f5cbac23d
--- /dev/null
+++ b/packages/tachyons-display-verbose/readme.md
@@ -0,0 +1,143 @@
+# tachyons-display-verbose 1.0.0
+
+Performance based css module.
+
+#### Stats
+
+426 | 36 | 36
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-display-verbose
+```
+
+#### With Git
+
+```
+git clone https://github.com/tachyons-css/tachyons-display-verbose
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-display-verbose";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ DISPLAY
+
+ Base:
+ d = display
+
+ Modifiers:
+ n = none
+ b = block
+ ib = inline-block
+ it = inline-table
+ t = table
+ tc = table-cell
+ tr = table-row
+ tcol = table-column
+ tcolg = table-column-group
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.display-none { display: none; }
+.display-inline { display: inline; }
+.display-block { display: block; }
+.display-inline-block { display: inline-block; }
+.display-inline-table { display: inline-table; }
+.display-table { display: table; }
+.display-table-cell { display: table-cell; }
+.display-table-column { display: table-column; }
+.display-table-column-group { display: table-column-group; }
+@media screen and (min-width: 48em) {
+ .display-none-ns { display: none; }
+ .display-inline-ns { display: inline; }
+ .display-block-ns { display: block; }
+ .display-inline-block-ns { display: inline-block; }
+ .display-inline-table-ns { display: inline-table; }
+ .display-table-ns { display: table; }
+ .display-table-cell-ns { display: table-cell; }
+ .display-table-column-ns { display: table-column; }
+ .display-table-column-group-ns { display: table-column-group; }
+}
+@media screen and (min-width: 48em) and (max-width: 64em) {
+ .display-none-m { display: none; }
+ .display-inline-m { display: inline; }
+ .display-block-m { display: block; }
+ .display-inline-block-m { display: inline-block; }
+ .display-inline-table-m { display: inline-table; }
+ .display-table-m { display: table; }
+ .display-table-cell-m { display: table-cell; }
+ .display-table-column-m { display: table-column; }
+ .display-table-column-group-m { display: table-column-group; }
+}
+@media screen and (min-width: 64em) {
+ .display-none-l { display: none; }
+ .display-inline-l { display: inline; }
+ .display-block-l { display: block; }
+ .display-inline-block-l { display: inline-block; }
+ .display-inline-table-l { display: inline-table; }
+ .display-table-l { display: table; }
+ .display-table-cell-l { display: table-cell; }
+ .display-table-column-l { display: table-column; }
+ .display-table-column-group-l { display: table-column-group; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+MIT
+
diff --git a/packages/tachyons-display-verbose/src/tachyons-display-verbose.css b/packages/tachyons-display-verbose/src/tachyons-display-verbose.css
new file mode 100644
index 000000000..e0cedf4fa
--- /dev/null
+++ b/packages/tachyons-display-verbose/src/tachyons-display-verbose.css
@@ -0,0 +1,75 @@
+@custom-media --breakpoint-not-small screen and (min-width: 48em);
+@custom-media --breakpoint-medium screen and (min-width: 48em) and (max-width: 64em);
+@custom-media --breakpoint-large screen and (min-width: 64em);
+
+/*
+
+ DISPLAY
+
+ Base:
+ d = display
+
+ Modifiers:
+ n = none
+ b = block
+ ib = inline-block
+ it = inline-table
+ t = table
+ tc = table-cell
+ tr = table-row
+ tcol = table-column
+ tcolg = table-column-group
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.display-none { display: none; }
+.display-inline { display: inline; }
+.display-block { display: block; }
+.display-inline-block { display: inline-block; }
+.display-inline-table { display: inline-table; }
+.display-table { display: table; }
+.display-table-cell { display: table-cell; }
+.display-table-column { display: table-column; }
+.display-table-column-group { display: table-column-group; }
+
+@media (--breakpoint-not-small) {
+ .display-none-ns { display: none; }
+ .display-inline-ns { display: inline; }
+ .display-block-ns { display: block; }
+ .display-inline-block-ns { display: inline-block; }
+ .display-inline-table-ns { display: inline-table; }
+ .display-table-ns { display: table; }
+ .display-table-cell-ns { display: table-cell; }
+ .display-table-column-ns { display: table-column; }
+ .display-table-column-group-ns { display: table-column-group; }
+}
+
+@media (--breakpoint-medium) {
+ .display-none-m { display: none; }
+ .display-inline-m { display: inline; }
+ .display-block-m { display: block; }
+ .display-inline-block-m { display: inline-block; }
+ .display-inline-table-m { display: inline-table; }
+ .display-table-m { display: table; }
+ .display-table-cell-m { display: table-cell; }
+ .display-table-column-m { display: table-column; }
+ .display-table-column-group-m { display: table-column-group; }
+}
+
+@media (--breakpoint-large) {
+ .display-none-l { display: none; }
+ .display-inline-l { display: inline; }
+ .display-block-l { display: block; }
+ .display-inline-block-l { display: inline-block; }
+ .display-inline-table-l { display: inline-table; }
+ .display-table-l { display: table; }
+ .display-table-cell-l { display: table-cell; }
+ .display-table-column-l { display: table-column; }
+ .display-table-column-group-l { display: table-column-group; }
+}
+
diff --git a/packages/tachyons-display/.gitignore b/packages/tachyons-display/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-display/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-display/LICENSE.txt b/packages/tachyons-display/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-display/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-display/code-of-conduct.md b/packages/tachyons-display/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-display/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-display/css/tachyons-display.css b/packages/tachyons-display/css/tachyons-display.css
new file mode 100644
index 000000000..bd8e68ba7
--- /dev/null
+++ b/packages/tachyons-display/css/tachyons-display.css
@@ -0,0 +1,83 @@
+/*
+
+ DISPLAY
+
+ Base:
+ d = display
+
+ Modifiers:
+ n = none
+ b = block
+ ib = inline-block
+ it = inline-table
+ t = table
+ tc = table-cell
+ tr = table-row
+ tcol = table-column
+ tcolg = table-column-group
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.dn { display: none; }
+.di { display: inline; }
+.db { display: block; }
+.dib { display: inline-block; }
+.dit { display: inline-table; }
+.dt { display: table; }
+.dtc { display: table-cell; }
+.dt-row { display: table-row; }
+.dt-row-group { display: table-row-group; }
+.dt-column { display: table-column; }
+.dt-column-group { display: table-column-group; }
+/*
+ This will set table to full width and then
+ all cells will be equal width
+*/
+.dt--fixed { table-layout: fixed; width: 100%; }
+@media screen and (min-width: 30em) {
+ .dn-ns { display: none; }
+ .di-ns { display: inline; }
+ .db-ns { display: block; }
+ .dib-ns { display: inline-block; }
+ .dit-ns { display: inline-table; }
+ .dt-ns { display: table; }
+ .dtc-ns { display: table-cell; }
+ .dt-row-ns { display: table-row; }
+ .dt-row-group-ns { display: table-row-group; }
+ .dt-column-ns { display: table-column; }
+ .dt-column-group-ns { display: table-column-group; }
+ .dt--fixed-ns { table-layout: fixed; width: 100%; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .dn-m { display: none; }
+ .di-m { display: inline; }
+ .db-m { display: block; }
+ .dib-m { display: inline-block; }
+ .dit-m { display: inline-table; }
+ .dt-m { display: table; }
+ .dtc-m { display: table-cell; }
+ .dt-row-m { display: table-row; }
+ .dt-row-group-m { display: table-row-group; }
+ .dt-column-m { display: table-column; }
+ .dt-column-group-m { display: table-column-group; }
+ .dt--fixed-m { table-layout: fixed; width: 100%; }
+}
+@media screen and (min-width: 60em) {
+ .dn-l { display: none; }
+ .di-l { display: inline; }
+ .db-l { display: block; }
+ .dib-l { display: inline-block; }
+ .dit-l { display: inline-table; }
+ .dt-l { display: table; }
+ .dtc-l { display: table-cell; }
+ .dt-row-l { display: table-row; }
+ .dt-row-group-l { display: table-row-group; }
+ .dt-column-l { display: table-column; }
+ .dt-column-group-l { display: table-column-group; }
+ .dt--fixed-l { table-layout: fixed; width: 100%; }
+}
+
diff --git a/packages/tachyons-display/css/tachyons-display.min.css b/packages/tachyons-display/css/tachyons-display.min.css
new file mode 100644
index 000000000..c038530fa
--- /dev/null
+++ b/packages/tachyons-display/css/tachyons-display.min.css
@@ -0,0 +1,2 @@
+.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em) and (max-width:60em){.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}}
+
diff --git a/packages/tachyons-display/package.json b/packages/tachyons-display/package.json
new file mode 100644
index 000000000..9e6c1d9c5
--- /dev/null
+++ b/packages/tachyons-display/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-display",
+ "version": "5.0.0",
+ "style": "src/tachyons-display.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-display",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-display.css > css/tachyons-display.css",
+ "build:minify": "tachyons src/tachyons-display.css --minify > css/tachyons-display.min.css",
+ "build:docs": "tachyons src/tachyons-display.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-display/readme.md b/packages/tachyons-display/readme.md
new file mode 100644
index 000000000..6a390a414
--- /dev/null
+++ b/packages/tachyons-display/readme.md
@@ -0,0 +1,177 @@
+# tachyons-display 5.0.0
+
+Performance based css module.
+
+#### Stats
+
+534 | 48 | 52
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-display
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-display
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-display.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-display";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ DISPLAY
+
+ Base:
+ d = display
+
+ Modifiers:
+ n = none
+ b = block
+ ib = inline-block
+ it = inline-table
+ t = table
+ tc = table-cell
+ tr = table-row
+ tcol = table-column
+ tcolg = table-column-group
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.dn { display: none; }
+.di { display: inline; }
+.db { display: block; }
+.dib { display: inline-block; }
+.dit { display: inline-table; }
+.dt { display: table; }
+.dtc { display: table-cell; }
+.dt-row { display: table-row; }
+.dt-row-group { display: table-row-group; }
+.dt-column { display: table-column; }
+.dt-column-group { display: table-column-group; }
+/*
+ This will set table to full width and then
+ all cells will be equal width
+*/
+.dt--fixed { table-layout: fixed; width: 100%; }
+@media screen and (min-width: 30em) {
+ .dn-ns { display: none; }
+ .di-ns { display: inline; }
+ .db-ns { display: block; }
+ .dib-ns { display: inline-block; }
+ .dit-ns { display: inline-table; }
+ .dt-ns { display: table; }
+ .dtc-ns { display: table-cell; }
+ .dt-row-ns { display: table-row; }
+ .dt-row-group-ns { display: table-row-group; }
+ .dt-column-ns { display: table-column; }
+ .dt-column-group-ns { display: table-column-group; }
+ .dt--fixed-ns { table-layout: fixed; width: 100%; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .dn-m { display: none; }
+ .di-m { display: inline; }
+ .db-m { display: block; }
+ .dib-m { display: inline-block; }
+ .dit-m { display: inline-table; }
+ .dt-m { display: table; }
+ .dtc-m { display: table-cell; }
+ .dt-row-m { display: table-row; }
+ .dt-row-group-m { display: table-row-group; }
+ .dt-column-m { display: table-column; }
+ .dt-column-group-m { display: table-column-group; }
+ .dt--fixed-m { table-layout: fixed; width: 100%; }
+}
+@media screen and (min-width: 60em) {
+ .dn-l { display: none; }
+ .di-l { display: inline; }
+ .db-l { display: block; }
+ .dib-l { display: inline-block; }
+ .dit-l { display: inline-table; }
+ .dt-l { display: table; }
+ .dtc-l { display: table-cell; }
+ .dt-row-l { display: table-row; }
+ .dt-row-group-l { display: table-row-group; }
+ .dt-column-l { display: table-column; }
+ .dt-column-group-l { display: table-column-group; }
+ .dt--fixed-l { table-layout: fixed; width: 100%; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-display/src/tachyons-display.css b/packages/tachyons-display/src/tachyons-display.css
new file mode 100644
index 000000000..c00e59a26
--- /dev/null
+++ b/packages/tachyons-display/src/tachyons-display.css
@@ -0,0 +1,110 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ DISPLAY
+ Docs: http://tachyons.io/docs/layout/display
+
+ Base:
+ d = display
+
+ Modifiers:
+ n = none
+ b = block
+ ib = inline-block
+ it = inline-table
+ t = table
+ tc = table-cell
+ t-row = table-row
+ t-columm = table-column
+ t-column-group = table-column-group
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.dn { display: none; }
+.di { display: inline; }
+.db { display: block; }
+.dib { display: inline-block; }
+.dit { display: inline-table; }
+.dt { display: table; }
+.dtc { display: table-cell; }
+.dt-row { display: table-row; }
+.dt-row-group { display: table-row-group; }
+.dt-column { display: table-column; }
+.dt-column-group { display: table-column-group; }
+
+/*
+ This will set table to full width and then
+ all cells will be equal width
+*/
+.dt--fixed {
+ table-layout: fixed;
+ width: 100%;
+}
+
+@media (--breakpoint-not-small) {
+ .dn-ns { display: none; }
+ .di-ns { display: inline; }
+ .db-ns { display: block; }
+ .dib-ns { display: inline-block; }
+ .dit-ns { display: inline-table; }
+ .dt-ns { display: table; }
+ .dtc-ns { display: table-cell; }
+ .dt-row-ns { display: table-row; }
+ .dt-row-group-ns { display: table-row-group; }
+ .dt-column-ns { display: table-column; }
+ .dt-column-group-ns { display: table-column-group; }
+
+ .dt--fixed-ns {
+ table-layout: fixed;
+ width: 100%;
+ }
+}
+
+@media (--breakpoint-medium) {
+ .dn-m { display: none; }
+ .di-m { display: inline; }
+ .db-m { display: block; }
+ .dib-m { display: inline-block; }
+ .dit-m { display: inline-table; }
+ .dt-m { display: table; }
+ .dtc-m { display: table-cell; }
+ .dt-row-m { display: table-row; }
+ .dt-row-group-m { display: table-row-group; }
+ .dt-column-m { display: table-column; }
+ .dt-column-group-m { display: table-column-group; }
+
+ .dt--fixed-m {
+ table-layout: fixed;
+ width: 100%;
+ }
+}
+
+@media (--breakpoint-large) {
+ .dn-l { display: none; }
+ .di-l { display: inline; }
+ .db-l { display: block; }
+ .dib-l { display: inline-block; }
+ .dit-l { display: inline-table; }
+ .dt-l { display: table; }
+ .dtc-l { display: table-cell; }
+ .dt-row-l { display: table-row; }
+ .dt-row-group-l { display: table-row-group; }
+ .dt-column-l { display: table-column; }
+ .dt-column-group-l { display: table-column-group; }
+
+ .dt--fixed-l {
+ table-layout: fixed;
+ width: 100%;
+ }
+}
+
diff --git a/packages/tachyons-flexbox/.gitignore b/packages/tachyons-flexbox/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-flexbox/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-flexbox/LICENSE.txt b/packages/tachyons-flexbox/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-flexbox/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-flexbox/code-of-conduct.md b/packages/tachyons-flexbox/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-flexbox/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-flexbox/css/tachyons-base.css b/packages/tachyons-flexbox/css/tachyons-base.css
new file mode 100644
index 000000000..1b5341668
--- /dev/null
+++ b/packages/tachyons-flexbox/css/tachyons-base.css
@@ -0,0 +1,7 @@
+/*
+
+ BASE
+
+*/
+html, body { height: 100%; }
+
diff --git a/packages/tachyons-flexbox/css/tachyons-base.min.css b/packages/tachyons-flexbox/css/tachyons-base.min.css
new file mode 100644
index 000000000..9d5439b43
--- /dev/null
+++ b/packages/tachyons-flexbox/css/tachyons-base.min.css
@@ -0,0 +1,2 @@
+body,html{height:100%}
+
diff --git a/packages/tachyons-flexbox/css/tachyons-flexbox.css b/packages/tachyons-flexbox/css/tachyons-flexbox.css
new file mode 100644
index 000000000..795e10e6f
--- /dev/null
+++ b/packages/tachyons-flexbox/css/tachyons-flexbox.css
@@ -0,0 +1,171 @@
+/*
+
+ FLEXBOX
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.flex { display: -webkit-box; display: -ms-flexbox; display: flex; }
+.inline-flex { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; }
+/* 1. Fix for Chrome 44 bug.
+ * https://code.google.com/p/chromium/issues/detail?id=506893 */
+.flex-auto { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; /* 1 */ min-height: 0; /* 1 */ }
+.flex-none { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
+.flex-column { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
+.flex-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
+.flex-wrap { -ms-flex-wrap: wrap; flex-wrap: wrap; }
+.items-start { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
+.items-end { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
+.items-center { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
+.items-baseline { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
+.items-stretch { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+.self-start { -ms-flex-item-align: start; align-self: flex-start; }
+.self-end { -ms-flex-item-align: end; align-self: flex-end; }
+.self-center { -ms-flex-item-align: center; align-self: center; }
+.self-baseline { -ms-flex-item-align: baseline; align-self: baseline; }
+.self-stretch { -ms-flex-item-align: stretch; align-self: stretch; }
+.justify-start { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
+.justify-end { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
+.justify-center { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
+.justify-between { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
+.justify-around { -ms-flex-pack: distribute; justify-content: space-around; }
+.content-start { -ms-flex-line-pack: start; align-content: flex-start; }
+.content-end { -ms-flex-line-pack: end; align-content: flex-end; }
+.content-center { -ms-flex-line-pack: center; align-content: center; }
+.content-between { -ms-flex-line-pack: justify; align-content: space-between; }
+.content-around { -ms-flex-line-pack: distribute; align-content: space-around; }
+.content-stretch { -ms-flex-line-pack: stretch; align-content: stretch; }
+.order-0 { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; }
+.order-1 { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
+.order-2 { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; }
+.order-3 { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; }
+.order-4 { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; }
+.order-5 { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; }
+.order-6 { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; }
+.order-7 { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; }
+.order-8 { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; }
+.order-last { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; }
+@media screen and (min-width: 30em) {
+ .flex-ns { display: -webkit-box; display: -ms-flexbox; display: flex; }
+ .inline-flex-ns { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; }
+ .flex-auto-ns { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; /* 1 */ min-height: 0; /* 1 */ }
+ .flex-none-ns { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
+ .flex-column-ns { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
+ .flex-row-ns { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
+ .flex-wrap-ns { -ms-flex-wrap: wrap; flex-wrap: wrap; }
+ .items-start-ns { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
+ .items-end-ns { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
+ .items-center-ns { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
+ .items-baseline-ns { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
+ .items-stretch-ns { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .self-start-ns { -ms-flex-item-align: start; align-self: flex-start; }
+ .self-end-ns { -ms-flex-item-align: end; align-self: flex-end; }
+ .self-center-ns { -ms-flex-item-align: center; align-self: center; }
+ .self-baseline-ns { -ms-flex-item-align: baseline; align-self: baseline; }
+ .self-stretch-ns { -ms-flex-item-align: stretch; align-self: stretch; }
+ .justify-start-ns { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
+ .justify-end-ns { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
+ .justify-center-ns { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
+ .justify-between-ns { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
+ .justify-around-ns { -ms-flex-pack: distribute; justify-content: space-around; }
+ .content-start-ns { -ms-flex-line-pack: start; align-content: flex-start; }
+ .content-end-ns { -ms-flex-line-pack: end; align-content: flex-end; }
+ .content-center-ns { -ms-flex-line-pack: center; align-content: center; }
+ .content-between-ns { -ms-flex-line-pack: justify; align-content: space-between; }
+ .content-around-ns { -ms-flex-line-pack: distribute; align-content: space-around; }
+ .content-stretch-ns { -ms-flex-line-pack: stretch; align-content: stretch; }
+ .order-0-ns { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; }
+ .order-1-ns { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
+ .order-2-ns { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; }
+ .order-3-ns { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; }
+ .order-4-ns { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; }
+ .order-5-ns { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; }
+ .order-6-ns { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; }
+ .order-7-ns { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; }
+ .order-8-ns { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; }
+ .order-last-ns { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .flex-m { display: -webkit-box; display: -ms-flexbox; display: flex; }
+ .inline-flex-m { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; }
+ .flex-auto-m { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; /* 1 */ min-height: 0; /* 1 */ }
+ .flex-none-m { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
+ .flex-column-m { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
+ .flex-row-m { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
+ .flex-wrap-m { -ms-flex-wrap: wrap; flex-wrap: wrap; }
+ .items-start-m { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
+ .items-end-m { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
+ .items-center-m { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
+ .items-baseline-m { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
+ .items-stretch-m { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .self-start-m { -ms-flex-item-align: start; align-self: flex-start; }
+ .self-end-m { -ms-flex-item-align: end; align-self: flex-end; }
+ .self-center-m { -ms-flex-item-align: center; align-self: center; }
+ .self-baseline-m { -ms-flex-item-align: baseline; align-self: baseline; }
+ .self-stretch-m { -ms-flex-item-align: stretch; align-self: stretch; }
+ .justify-start-m { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
+ .justify-end-m { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
+ .justify-center-m { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
+ .justify-between-m { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
+ .justify-around-m { -ms-flex-pack: distribute; justify-content: space-around; }
+ .content-start-m { -ms-flex-line-pack: start; align-content: flex-start; }
+ .content-end-m { -ms-flex-line-pack: end; align-content: flex-end; }
+ .content-center-m { -ms-flex-line-pack: center; align-content: center; }
+ .content-between-m { -ms-flex-line-pack: justify; align-content: space-between; }
+ .content-around-m { -ms-flex-line-pack: distribute; align-content: space-around; }
+ .content-stretch-m { -ms-flex-line-pack: stretch; align-content: stretch; }
+ .order-0-m { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; }
+ .order-1-m { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
+ .order-2-m { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; }
+ .order-3-m { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; }
+ .order-4-m { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; }
+ .order-5-m { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; }
+ .order-6-m { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; }
+ .order-7-m { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; }
+ .order-8-m { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; }
+ .order-last-m { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; }
+}
+@media screen and (min-width: 60em) {
+ .flex-l { display: -webkit-box; display: -ms-flexbox; display: flex; }
+ .inline-flex-l { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; }
+ .flex-auto-l { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; /* 1 */ min-height: 0; /* 1 */ }
+ .flex-none-l { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
+ .flex-column-l { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
+ .flex-row-l { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
+ .flex-wrap-l { -ms-flex-wrap: wrap; flex-wrap: wrap; }
+ .items-start-l { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
+ .items-end-l { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
+ .items-center-l { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
+ .items-baseline-l { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
+ .items-stretch-l { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .self-start-l { -ms-flex-item-align: start; align-self: flex-start; }
+ .self-end-l { -ms-flex-item-align: end; align-self: flex-end; }
+ .self-center-l { -ms-flex-item-align: center; align-self: center; }
+ .self-baseline-l { -ms-flex-item-align: baseline; align-self: baseline; }
+ .self-stretch-l { -ms-flex-item-align: stretch; align-self: stretch; }
+ .justify-start-l { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
+ .justify-end-l { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
+ .justify-center-l { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
+ .justify-between-l { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
+ .justify-around-l { -ms-flex-pack: distribute; justify-content: space-around; }
+ .content-start-l { -ms-flex-line-pack: start; align-content: flex-start; }
+ .content-end-l { -ms-flex-line-pack: end; align-content: flex-end; }
+ .content-center-l { -ms-flex-line-pack: center; align-content: center; }
+ .content-between-l { -ms-flex-line-pack: justify; align-content: space-between; }
+ .content-around-l { -ms-flex-line-pack: distribute; align-content: space-around; }
+ .content-stretch-l { -ms-flex-line-pack: stretch; align-content: stretch; }
+ .order-0-l { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; }
+ .order-1-l { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
+ .order-2-l { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; }
+ .order-3-l { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; }
+ .order-4-l { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; }
+ .order-5-l { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; }
+ .order-6-l { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; }
+ .order-7-l { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; }
+ .order-8-l { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; }
+ .order-last-l { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; }
+}
+
diff --git a/packages/tachyons-flexbox/css/tachyons-flexbox.min.css b/packages/tachyons-flexbox/css/tachyons-flexbox.min.css
new file mode 100644
index 000000000..ecf5ed7b9
--- /dev/null
+++ b/packages/tachyons-flexbox/css/tachyons-flexbox.min.css
@@ -0,0 +1,2 @@
+.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column,.flex-row{-webkit-box-direction:normal}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.items-end{-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.items-center{-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.items-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;-ms-grid-row-align:baseline;align-items:baseline}.items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.self-start{-ms-flex-item-align:start;align-self:flex-start}.self-end{-ms-flex-item-align:end;align-self:flex-end}.self-center{-ms-flex-item-align:center;align-self:center}.self-baseline{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch{-ms-flex-item-align:stretch;align-self:stretch}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around{-ms-flex-pack:distribute;justify-content:space-around}.content-start{-ms-flex-line-pack:start;align-content:flex-start}.content-end{-ms-flex-line-pack:end;align-content:flex-end}.content-center{-ms-flex-line-pack:center;align-content:center}.content-between{-ms-flex-line-pack:justify;align-content:space-between}.content-around{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch{-ms-flex-line-pack:stretch;align-content:stretch}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}@media screen and (min-width:30em){.flex-ns{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-ns{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-ns{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-ns{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-ns{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-row-ns{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-ns{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start-ns{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.items-end-ns{-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.items-center-ns{-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.items-baseline-ns{-webkit-box-align:baseline;-ms-flex-align:baseline;-ms-grid-row-align:baseline;align-items:baseline}.items-stretch-ns{-webkit-box-align:stretch;-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.self-start-ns{-ms-flex-item-align:start;align-self:flex-start}.self-end-ns{-ms-flex-item-align:end;align-self:flex-end}.self-center-ns{-ms-flex-item-align:center;align-self:center}.self-baseline-ns{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-ns{-ms-flex-item-align:stretch;align-self:stretch}.justify-start-ns{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-ns{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-ns{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-ns{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-ns{-ms-flex-pack:distribute;justify-content:space-around}.content-start-ns{-ms-flex-line-pack:start;align-content:flex-start}.content-end-ns{-ms-flex-line-pack:end;align-content:flex-end}.content-center-ns{-ms-flex-line-pack:center;align-content:center}.content-between-ns{-ms-flex-line-pack:justify;align-content:space-between}.content-around-ns{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-ns{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-ns{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-ns{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-ns{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-ns{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-ns{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-ns{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-ns{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-ns{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-ns{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-ns{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}}@media screen and (min-width:30em) and (max-width:60em){.flex-m{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-m{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-m{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-m{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-m{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-m,.flex-row-m{-webkit-box-direction:normal}.flex-row-m{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-m{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start-m{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.items-end-m{-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.items-center-m{-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.items-baseline-m{-webkit-box-align:baseline;-ms-flex-align:baseline;-ms-grid-row-align:baseline;align-items:baseline}.items-stretch-m{-webkit-box-align:stretch;-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.self-start-m{-ms-flex-item-align:start;align-self:flex-start}.self-end-m{-ms-flex-item-align:end;align-self:flex-end}.self-center-m{-ms-flex-item-align:center;align-self:center}.self-baseline-m{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-m{-ms-flex-item-align:stretch;align-self:stretch}.justify-start-m{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-m{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-m{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-m{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-m{-ms-flex-pack:distribute;justify-content:space-around}.content-start-m{-ms-flex-line-pack:start;align-content:flex-start}.content-end-m{-ms-flex-line-pack:end;align-content:flex-end}.content-center-m{-ms-flex-line-pack:center;align-content:center}.content-between-m{-ms-flex-line-pack:justify;align-content:space-between}.content-around-m{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-m{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-m{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-m{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-m{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-m{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-m{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-m{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-m{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-m{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-m{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-m{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}}@media screen and (min-width:60em){.flex-l{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-l{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-l{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-l{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-l{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-l,.flex-row-l{-webkit-box-direction:normal}.flex-row-l{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-l{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start-l{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.items-end-l{-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.items-center-l{-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.items-baseline-l{-webkit-box-align:baseline;-ms-flex-align:baseline;-ms-grid-row-align:baseline;align-items:baseline}.items-stretch-l{-webkit-box-align:stretch;-ms-flex-align:stretch;-ms-grid-row-align:stretch;align-items:stretch}.self-start-l{-ms-flex-item-align:start;align-self:flex-start}.self-end-l{-ms-flex-item-align:end;align-self:flex-end}.self-center-l{-ms-flex-item-align:center;align-self:center}.self-baseline-l{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-l{-ms-flex-item-align:stretch;align-self:stretch}.justify-start-l{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-l{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-l{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-l{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-l{-ms-flex-pack:distribute;justify-content:space-around}.content-start-l{-ms-flex-line-pack:start;align-content:flex-start}.content-end-l{-ms-flex-line-pack:end;align-content:flex-end}.content-center-l{-ms-flex-line-pack:center;align-content:center}.content-between-l{-ms-flex-line-pack:justify;align-content:space-between}.content-around-l{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-l{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-l{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-l{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-l{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-l{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-l{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-l{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-l{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-l{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-l{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-l{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}}
+
diff --git a/packages/tachyons-flexbox/package.json b/packages/tachyons-flexbox/package.json
new file mode 100644
index 000000000..e10001c43
--- /dev/null
+++ b/packages/tachyons-flexbox/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "tachyons-flexbox",
+ "description": "Flexbox CSS module for Tachyons",
+ "version": "2.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-flexbox.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "flexbox"
+ ],
+ "repository": "tachyons-css/tachyons-flexbox",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-flexbox.css > css/tachyons-flexbox.css",
+ "build:minify": "tachyons src/tachyons-flexbox.css --minify > css/tachyons-flexbox.min.css",
+ "build:docs": "tachyons src/tachyons-flexbox.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-flexbox/readme.md b/packages/tachyons-flexbox/readme.md
new file mode 100644
index 000000000..e8e997e00
--- /dev/null
+++ b/packages/tachyons-flexbox/readme.md
@@ -0,0 +1,265 @@
+# tachyons-flexbox 2.0.0
+
+Flexbox CSS module for Tachyons
+
+#### Stats
+
+1450 | 152 | 440
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-flexbox
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-flexbox
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-flexbox.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-flexbox";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ FLEXBOX
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.flex { display: -webkit-box; display: -ms-flexbox; display: flex; }
+.inline-flex { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; }
+/* 1. Fix for Chrome 44 bug.
+ * https://code.google.com/p/chromium/issues/detail?id=506893 */
+.flex-auto { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; /* 1 */ min-height: 0; /* 1 */ }
+.flex-none { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
+.flex-column { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
+.flex-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
+.flex-wrap { -ms-flex-wrap: wrap; flex-wrap: wrap; }
+.items-start { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
+.items-end { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
+.items-center { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
+.items-baseline { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
+.items-stretch { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+.self-start { -ms-flex-item-align: start; align-self: flex-start; }
+.self-end { -ms-flex-item-align: end; align-self: flex-end; }
+.self-center { -ms-flex-item-align: center; align-self: center; }
+.self-baseline { -ms-flex-item-align: baseline; align-self: baseline; }
+.self-stretch { -ms-flex-item-align: stretch; align-self: stretch; }
+.justify-start { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
+.justify-end { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
+.justify-center { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
+.justify-between { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
+.justify-around { -ms-flex-pack: distribute; justify-content: space-around; }
+.content-start { -ms-flex-line-pack: start; align-content: flex-start; }
+.content-end { -ms-flex-line-pack: end; align-content: flex-end; }
+.content-center { -ms-flex-line-pack: center; align-content: center; }
+.content-between { -ms-flex-line-pack: justify; align-content: space-between; }
+.content-around { -ms-flex-line-pack: distribute; align-content: space-around; }
+.content-stretch { -ms-flex-line-pack: stretch; align-content: stretch; }
+.order-0 { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; }
+.order-1 { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
+.order-2 { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; }
+.order-3 { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; }
+.order-4 { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; }
+.order-5 { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; }
+.order-6 { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; }
+.order-7 { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; }
+.order-8 { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; }
+.order-last { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; }
+@media screen and (min-width: 30em) {
+ .flex-ns { display: -webkit-box; display: -ms-flexbox; display: flex; }
+ .inline-flex-ns { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; }
+ .flex-auto-ns { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; /* 1 */ min-height: 0; /* 1 */ }
+ .flex-none-ns { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
+ .flex-column-ns { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
+ .flex-row-ns { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
+ .flex-wrap-ns { -ms-flex-wrap: wrap; flex-wrap: wrap; }
+ .items-start-ns { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
+ .items-end-ns { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
+ .items-center-ns { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
+ .items-baseline-ns { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
+ .items-stretch-ns { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .self-start-ns { -ms-flex-item-align: start; align-self: flex-start; }
+ .self-end-ns { -ms-flex-item-align: end; align-self: flex-end; }
+ .self-center-ns { -ms-flex-item-align: center; align-self: center; }
+ .self-baseline-ns { -ms-flex-item-align: baseline; align-self: baseline; }
+ .self-stretch-ns { -ms-flex-item-align: stretch; align-self: stretch; }
+ .justify-start-ns { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
+ .justify-end-ns { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
+ .justify-center-ns { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
+ .justify-between-ns { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
+ .justify-around-ns { -ms-flex-pack: distribute; justify-content: space-around; }
+ .content-start-ns { -ms-flex-line-pack: start; align-content: flex-start; }
+ .content-end-ns { -ms-flex-line-pack: end; align-content: flex-end; }
+ .content-center-ns { -ms-flex-line-pack: center; align-content: center; }
+ .content-between-ns { -ms-flex-line-pack: justify; align-content: space-between; }
+ .content-around-ns { -ms-flex-line-pack: distribute; align-content: space-around; }
+ .content-stretch-ns { -ms-flex-line-pack: stretch; align-content: stretch; }
+ .order-0-ns { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; }
+ .order-1-ns { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
+ .order-2-ns { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; }
+ .order-3-ns { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; }
+ .order-4-ns { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; }
+ .order-5-ns { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; }
+ .order-6-ns { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; }
+ .order-7-ns { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; }
+ .order-8-ns { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; }
+ .order-last-ns { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .flex-m { display: -webkit-box; display: -ms-flexbox; display: flex; }
+ .inline-flex-m { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; }
+ .flex-auto-m { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; /* 1 */ min-height: 0; /* 1 */ }
+ .flex-none-m { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
+ .flex-column-m { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
+ .flex-row-m { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
+ .flex-wrap-m { -ms-flex-wrap: wrap; flex-wrap: wrap; }
+ .items-start-m { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
+ .items-end-m { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
+ .items-center-m { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
+ .items-baseline-m { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
+ .items-stretch-m { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .self-start-m { -ms-flex-item-align: start; align-self: flex-start; }
+ .self-end-m { -ms-flex-item-align: end; align-self: flex-end; }
+ .self-center-m { -ms-flex-item-align: center; align-self: center; }
+ .self-baseline-m { -ms-flex-item-align: baseline; align-self: baseline; }
+ .self-stretch-m { -ms-flex-item-align: stretch; align-self: stretch; }
+ .justify-start-m { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
+ .justify-end-m { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
+ .justify-center-m { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
+ .justify-between-m { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
+ .justify-around-m { -ms-flex-pack: distribute; justify-content: space-around; }
+ .content-start-m { -ms-flex-line-pack: start; align-content: flex-start; }
+ .content-end-m { -ms-flex-line-pack: end; align-content: flex-end; }
+ .content-center-m { -ms-flex-line-pack: center; align-content: center; }
+ .content-between-m { -ms-flex-line-pack: justify; align-content: space-between; }
+ .content-around-m { -ms-flex-line-pack: distribute; align-content: space-around; }
+ .content-stretch-m { -ms-flex-line-pack: stretch; align-content: stretch; }
+ .order-0-m { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; }
+ .order-1-m { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
+ .order-2-m { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; }
+ .order-3-m { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; }
+ .order-4-m { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; }
+ .order-5-m { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; }
+ .order-6-m { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; }
+ .order-7-m { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; }
+ .order-8-m { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; }
+ .order-last-m { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; }
+}
+@media screen and (min-width: 60em) {
+ .flex-l { display: -webkit-box; display: -ms-flexbox; display: flex; }
+ .inline-flex-l { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; }
+ .flex-auto-l { -webkit-box-flex: 1; -ms-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; /* 1 */ min-height: 0; /* 1 */ }
+ .flex-none-l { -webkit-box-flex: 0; -ms-flex: none; flex: none; }
+ .flex-column-l { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
+ .flex-row-l { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
+ .flex-wrap-l { -ms-flex-wrap: wrap; flex-wrap: wrap; }
+ .items-start-l { -webkit-box-align: start; -ms-flex-align: start; -ms-grid-row-align: flex-start; align-items: flex-start; }
+ .items-end-l { -webkit-box-align: end; -ms-flex-align: end; -ms-grid-row-align: flex-end; align-items: flex-end; }
+ .items-center-l { -webkit-box-align: center; -ms-flex-align: center; -ms-grid-row-align: center; align-items: center; }
+ .items-baseline-l { -webkit-box-align: baseline; -ms-flex-align: baseline; -ms-grid-row-align: baseline; align-items: baseline; }
+ .items-stretch-l { -webkit-box-align: stretch; -ms-flex-align: stretch; -ms-grid-row-align: stretch; align-items: stretch; }
+ .self-start-l { -ms-flex-item-align: start; align-self: flex-start; }
+ .self-end-l { -ms-flex-item-align: end; align-self: flex-end; }
+ .self-center-l { -ms-flex-item-align: center; align-self: center; }
+ .self-baseline-l { -ms-flex-item-align: baseline; align-self: baseline; }
+ .self-stretch-l { -ms-flex-item-align: stretch; align-self: stretch; }
+ .justify-start-l { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
+ .justify-end-l { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; }
+ .justify-center-l { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
+ .justify-between-l { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
+ .justify-around-l { -ms-flex-pack: distribute; justify-content: space-around; }
+ .content-start-l { -ms-flex-line-pack: start; align-content: flex-start; }
+ .content-end-l { -ms-flex-line-pack: end; align-content: flex-end; }
+ .content-center-l { -ms-flex-line-pack: center; align-content: center; }
+ .content-between-l { -ms-flex-line-pack: justify; align-content: space-between; }
+ .content-around-l { -ms-flex-line-pack: distribute; align-content: space-around; }
+ .content-stretch-l { -ms-flex-line-pack: stretch; align-content: stretch; }
+ .order-0-l { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; }
+ .order-1-l { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
+ .order-2-l { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; }
+ .order-3-l { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; }
+ .order-4-l { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; }
+ .order-5-l { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; }
+ .order-6-l { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; }
+ .order-7-l { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; }
+ .order-8-l { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; }
+ .order-last-l { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-flexbox/src/tachyons-flexbox.css b/packages/tachyons-flexbox/src/tachyons-flexbox.css
new file mode 100644
index 000000000..546c89df9
--- /dev/null
+++ b/packages/tachyons-flexbox/src/tachyons-flexbox.css
@@ -0,0 +1,228 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ FLEXBOX
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.flex { display: flex; }
+.inline-flex { display: inline-flex; }
+
+/* 1. Fix for Chrome 44 bug.
+ * https://code.google.com/p/chromium/issues/detail?id=506893 */
+.flex-auto {
+ flex: 1 1 auto;
+ min-width: 0; /* 1 */
+ min-height: 0; /* 1 */
+}
+
+.flex-none { flex: none; }
+
+.flex-column { flex-direction: column; }
+.flex-row { flex-direction: row; }
+.flex-wrap { flex-wrap: wrap; }
+.flex-column-reverse { flex-direction: column-reverse; }
+.flex-row-reverse { flex-direction: row-reverse; }
+.flex-wrap-reverse { flex-wrap: wrap-reverse; }
+
+.items-start { align-items: flex-start; }
+.items-end { align-items: flex-end; }
+.items-center { align-items: center; }
+.items-baseline { align-items: baseline; }
+.items-stretch { align-items: stretch; }
+
+.self-start { align-self: flex-start; }
+.self-end { align-self: flex-end; }
+.self-center { align-self: center; }
+.self-baseline { align-self: baseline; }
+.self-stretch { align-self: stretch; }
+
+.justify-start { justify-content: flex-start; }
+.justify-end { justify-content: flex-end; }
+.justify-center { justify-content: center; }
+.justify-between { justify-content: space-between; }
+.justify-around { justify-content: space-around; }
+
+.content-start { align-content: flex-start; }
+.content-end { align-content: flex-end; }
+.content-center { align-content: center; }
+.content-between { align-content: space-between; }
+.content-around { align-content: space-around; }
+.content-stretch { align-content: stretch; }
+
+.order-0 { order: 0; }
+.order-1 { order: 1; }
+.order-2 { order: 2; }
+.order-3 { order: 3; }
+.order-4 { order: 4; }
+.order-5 { order: 5; }
+.order-6 { order: 6; }
+.order-7 { order: 7; }
+.order-8 { order: 8; }
+.order-last { order: 99999; }
+
+@media (--breakpoint-not-small) {
+ .flex-ns { display: flex; }
+ .inline-flex-ns { display: inline-flex; }
+ .flex-auto-ns {
+ flex: 1 1 auto;
+ min-width: 0; /* 1 */
+ min-height: 0; /* 1 */
+ }
+ .flex-none-ns { flex: none; }
+ .flex-column-ns { flex-direction: column; }
+ .flex-row-ns { flex-direction: row; }
+ .flex-wrap-ns { flex-wrap: wrap; }
+ .flex-column-reverse-ns { flex-direction: column-reverse; }
+ .flex-row-reverse-ns { flex-direction: row-reverse; }
+ .flex-wrap-reverse-ns { flex-wrap: wrap-reverse; }
+ .items-start-ns { align-items: flex-start; }
+ .items-end-ns { align-items: flex-end; }
+ .items-center-ns { align-items: center; }
+ .items-baseline-ns { align-items: baseline; }
+ .items-stretch-ns { align-items: stretch; }
+
+ .self-start-ns { align-self: flex-start; }
+ .self-end-ns { align-self: flex-end; }
+ .self-center-ns { align-self: center; }
+ .self-baseline-ns { align-self: baseline; }
+ .self-stretch-ns { align-self: stretch; }
+
+ .justify-start-ns { justify-content: flex-start; }
+ .justify-end-ns { justify-content: flex-end; }
+ .justify-center-ns { justify-content: center; }
+ .justify-between-ns { justify-content: space-between; }
+ .justify-around-ns { justify-content: space-around; }
+
+ .content-start-ns { align-content: flex-start; }
+ .content-end-ns { align-content: flex-end; }
+ .content-center-ns { align-content: center; }
+ .content-between-ns { align-content: space-between; }
+ .content-around-ns { align-content: space-around; }
+ .content-stretch-ns { align-content: stretch; }
+
+ .order-0-ns { order: 0; }
+ .order-1-ns { order: 1; }
+ .order-2-ns { order: 2; }
+ .order-3-ns { order: 3; }
+ .order-4-ns { order: 4; }
+ .order-5-ns { order: 5; }
+ .order-6-ns { order: 6; }
+ .order-7-ns { order: 7; }
+ .order-8-ns { order: 8; }
+ .order-last-ns { order: 99999; }
+}
+@media (--breakpoint-medium) {
+ .flex-m { display: flex; }
+ .inline-flex-m { display: inline-flex; }
+ .flex-auto-m {
+ flex: 1 1 auto;
+ min-width: 0; /* 1 */
+ min-height: 0; /* 1 */
+ }
+ .flex-none-m { flex: none; }
+ .flex-column-m { flex-direction: column; }
+ .flex-row-m { flex-direction: row; }
+ .flex-wrap-m { flex-wrap: wrap; }
+ .flex-column-reverse-m { flex-direction: column-reverse; }
+ .flex-row-reverse-m { flex-direction: row-reverse; }
+ .flex-wrap-reverse-m { flex-wrap: wrap-reverse; }
+ .items-start-m { align-items: flex-start; }
+ .items-end-m { align-items: flex-end; }
+ .items-center-m { align-items: center; }
+ .items-baseline-m { align-items: baseline; }
+ .items-stretch-m { align-items: stretch; }
+
+ .self-start-m { align-self: flex-start; }
+ .self-end-m { align-self: flex-end; }
+ .self-center-m { align-self: center; }
+ .self-baseline-m { align-self: baseline; }
+ .self-stretch-m { align-self: stretch; }
+
+ .justify-start-m { justify-content: flex-start; }
+ .justify-end-m { justify-content: flex-end; }
+ .justify-center-m { justify-content: center; }
+ .justify-between-m { justify-content: space-between; }
+ .justify-around-m { justify-content: space-around; }
+
+ .content-start-m { align-content: flex-start; }
+ .content-end-m { align-content: flex-end; }
+ .content-center-m { align-content: center; }
+ .content-between-m { align-content: space-between; }
+ .content-around-m { align-content: space-around; }
+ .content-stretch-m { align-content: stretch; }
+
+ .order-0-m { order: 0; }
+ .order-1-m { order: 1; }
+ .order-2-m { order: 2; }
+ .order-3-m { order: 3; }
+ .order-4-m { order: 4; }
+ .order-5-m { order: 5; }
+ .order-6-m { order: 6; }
+ .order-7-m { order: 7; }
+ .order-8-m { order: 8; }
+ .order-last-m { order: 99999; }
+}
+
+@media (--breakpoint-large) {
+ .flex-l { display: flex; }
+ .inline-flex-l { display: inline-flex; }
+ .flex-auto-l {
+ flex: 1 1 auto;
+ min-width: 0; /* 1 */
+ min-height: 0; /* 1 */
+ }
+ .flex-none-l { flex: none; }
+ .flex-column-l { flex-direction: column; }
+ .flex-row-l { flex-direction: row; }
+ .flex-wrap-l { flex-wrap: wrap; }
+ .flex-column-reverse-l { flex-direction: column-reverse; }
+ .flex-row-reverse-l { flex-direction: row-reverse; }
+ .flex-wrap-reverse-l { flex-wrap: wrap-reverse; }
+
+ .items-start-l { align-items: flex-start; }
+ .items-end-l { align-items: flex-end; }
+ .items-center-l { align-items: center; }
+ .items-baseline-l { align-items: baseline; }
+ .items-stretch-l { align-items: stretch; }
+
+ .self-start-l { align-self: flex-start; }
+ .self-end-l { align-self: flex-end; }
+ .self-center-l { align-self: center; }
+ .self-baseline-l { align-self: baseline; }
+ .self-stretch-l { align-self: stretch; }
+
+ .justify-start-l { justify-content: flex-start; }
+ .justify-end-l { justify-content: flex-end; }
+ .justify-center-l { justify-content: center; }
+ .justify-between-l { justify-content: space-between; }
+ .justify-around-l { justify-content: space-around; }
+
+ .content-start-l { align-content: flex-start; }
+ .content-end-l { align-content: flex-end; }
+ .content-center-l { align-content: center; }
+ .content-between-l { align-content: space-between; }
+ .content-around-l { align-content: space-around; }
+ .content-stretch-l { align-content: stretch; }
+
+ .order-0-l { order: 0; }
+ .order-1-l { order: 1; }
+ .order-2-l { order: 2; }
+ .order-3-l { order: 3; }
+ .order-4-l { order: 4; }
+ .order-5-l { order: 5; }
+ .order-6-l { order: 6; }
+ .order-7-l { order: 7; }
+ .order-8-l { order: 8; }
+ .order-last-l { order: 99999; }
+}
diff --git a/packages/tachyons-floats/.gitignore b/packages/tachyons-floats/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-floats/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-floats/LICENSE.txt b/packages/tachyons-floats/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-floats/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-floats/code-of-conduct.md b/packages/tachyons-floats/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-floats/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-floats/css/tachyons-floats.css b/packages/tachyons-floats/css/tachyons-floats.css
new file mode 100644
index 000000000..af45599f3
--- /dev/null
+++ b/packages/tachyons-floats/css/tachyons-floats.css
@@ -0,0 +1,44 @@
+/* Media Query Variables */
+/*
+
+ FLOATS
+
+ 1. Floated elements are automatically rendered as block level elements.
+ Setting floats to display inline will fix the double margin bug in
+ ie6. You know... just in case.
+
+ 2. Don't forget to clearfix your floats with .cf
+
+ Base:
+ f = float
+
+ Modifiers:
+ l = left
+ r = right
+ n = none
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.fl { float: left; _display: inline; }
+.fr { float: right; _display: inline; }
+.fn { float: none; }
+@media screen and (min-width: 30em) {
+ .fl-ns { float: left; display: inline; }
+ .fr-ns { float: right; display: inline; }
+ .fn-ns { float: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .fl-m { float: left; display: inline; }
+ .fr-m { float: right; display: inline; }
+ .fn-m { float: none; }
+}
+@media screen and (min-width: 60em) {
+ .fl-l { float: left; display: inline; }
+ .fr-l { float: right; display: inline; }
+ .fn-l { float: none; }
+}
+
diff --git a/packages/tachyons-floats/css/tachyons-floats.min.css b/packages/tachyons-floats/css/tachyons-floats.min.css
new file mode 100644
index 000000000..021698acc
--- /dev/null
+++ b/packages/tachyons-floats/css/tachyons-floats.min.css
@@ -0,0 +1,2 @@
+.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}@media screen and (min-width:30em){.fl-ns{float:left}.fl-ns,.fr-ns{display:inline}.fr-ns{float:right}.fn-ns{float:none}}@media screen and (min-width:30em) and (max-width:60em){.fl-m{float:left}.fl-m,.fr-m{display:inline}.fr-m{float:right}.fn-m{float:none}}@media screen and (min-width:60em){.fl-l{float:left}.fl-l,.fr-l{display:inline}.fr-l{float:right}.fn-l{float:none}}
+
diff --git a/packages/tachyons-floats/package.json b/packages/tachyons-floats/package.json
new file mode 100644
index 000000000..34b85c597
--- /dev/null
+++ b/packages/tachyons-floats/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-floats",
+ "version": "3.0.0",
+ "style": "src/tachyons-floats.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-src"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-floats",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-floats.css > css/tachyons-floats.css",
+ "build:minify": "tachyons src/tachyons-floats.css --minify > css/tachyons-floats.min.css",
+ "build:docs": "tachyons src/tachyons-floats.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-floats/readme.md b/packages/tachyons-floats/readme.md
new file mode 100644
index 000000000..4e4726859
--- /dev/null
+++ b/packages/tachyons-floats/readme.md
@@ -0,0 +1,138 @@
+# tachyons-floats 3.0.0
+
+Performance based css module.
+
+#### Stats
+
+417 | 12 | 20
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-floats
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-floats
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-floats.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-floats";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/* Media Query Variables */
+/*
+
+ FLOATS
+
+ 1. Floated elements are automatically rendered as block level elements.
+ Setting floats to display inline will fix the double margin bug in
+ ie6. You know... just in case.
+
+ 2. Don't forget to clearfix your floats with .cf
+
+ Base:
+ f = float
+
+ Modifiers:
+ l = left
+ r = right
+ n = none
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.fl { float: left; _display: inline; }
+.fr { float: right; _display: inline; }
+.fn { float: none; }
+@media screen and (min-width: 30em) {
+ .fl-ns { float: left; display: inline; }
+ .fr-ns { float: right; display: inline; }
+ .fn-ns { float: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .fl-m { float: left; display: inline; }
+ .fr-m { float: right; display: inline; }
+ .fn-m { float: none; }
+}
+@media screen and (min-width: 60em) {
+ .fl-l { float: left; display: inline; }
+ .fr-l { float: right; display: inline; }
+ .fn-l { float: none; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-floats/src/tachyons-floats.css b/packages/tachyons-floats/src/tachyons-floats.css
new file mode 100644
index 000000000..e21851be7
--- /dev/null
+++ b/packages/tachyons-floats/src/tachyons-floats.css
@@ -0,0 +1,55 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ FLOATS
+ http://tachyons.io/docs/layout/floats/
+
+ 1. Floated elements are automatically rendered as block level elements.
+ Setting floats to display inline will fix the double margin bug in
+ ie6. You know... just in case.
+
+ 2. Don't forget to clearfix your floats with .cf
+
+ Base:
+ f = float
+
+ Modifiers:
+ l = left
+ r = right
+ n = none
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+
+
+.fl { float: left; _display: inline; }
+.fr { float: right; _display: inline; }
+.fn { float: none; }
+
+@media (--breakpoint-not-small) {
+ .fl-ns { float: left; _display: inline; }
+ .fr-ns { float: right; _display: inline; }
+ .fn-ns { float: none; }
+}
+
+@media (--breakpoint-medium) {
+ .fl-m { float: left; _display: inline; }
+ .fr-m { float: right; _display: inline; }
+ .fn-m { float: none; }
+}
+
+@media (--breakpoint-large) {
+ .fl-l { float: left; _display: inline; }
+ .fr-l { float: right; _display: inline; }
+ .fn-l { float: none; }
+}
diff --git a/packages/tachyons-font-family/.gitignore b/packages/tachyons-font-family/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-font-family/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-font-family/LICENSE.txt b/packages/tachyons-font-family/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-font-family/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-font-family/code-of-conduct.md b/packages/tachyons-font-family/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-font-family/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-font-family/css/tachyons-font-family.css b/packages/tachyons-font-family/css/tachyons-font-family.css
new file mode 100644
index 000000000..ae1a483f9
--- /dev/null
+++ b/packages/tachyons-font-family/css/tachyons-font-family.css
@@ -0,0 +1,24 @@
+/*
+
+ FONT FAMILY GROUPS
+
+*/
+.sans-serif { font-family: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, helvetica, 'helvetica neue', ubuntu, roboto, noto, 'segoe ui', arial, sans-serif; }
+.serif { font-family: georgia, times, serif; }
+.system-sans-serif { font-family: sans-serif; }
+.system-serif { font-family: serif; }
+/* Monospaced Typefaces (for code) */
+/* From http://cssfontstack.com */
+code, .code { font-family: Consolas, monaco, monospace; }
+.courier { font-family: 'Courier Next', courier, monospace; }
+/* Sans-Serif Typefaces */
+.helvetica { font-family: 'helvetica neue', helvetica, sans-serif; }
+.avenir { font-family: 'avenir next', avenir, sans-serif; }
+/* Serif Typefaces */
+.georgia { font-family: georgia, serif; }
+.times { font-family: times, serif; }
+.bodoni { font-family: "Bodoni MT", serif; }
+.calisto { font-family: "Calisto MT", serif; }
+.garamond { font-family: garamond, serif; }
+.baskerville { font-family: baskerville, serif; }
+
diff --git a/packages/tachyons-font-family/css/tachyons-font-family.min.css b/packages/tachyons-font-family/css/tachyons-font-family.min.css
new file mode 100644
index 000000000..e7b495a75
--- /dev/null
+++ b/packages/tachyons-font-family/css/tachyons-font-family.min.css
@@ -0,0 +1,2 @@
+.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}
+
diff --git a/packages/tachyons-font-family/package.json b/packages/tachyons-font-family/package.json
new file mode 100644
index 000000000..6f905885f
--- /dev/null
+++ b/packages/tachyons-font-family/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-font-family",
+ "version": "4.2.4",
+ "style": "src/tachyons-font-family.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-font-family",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-font-family.css > css/tachyons-font-family.css",
+ "build:minify": "tachyons src/tachyons-font-family.css --minify > css/tachyons-font-family.min.css",
+ "build:docs": "tachyons src/tachyons-font-family.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-font-family/readme.md b/packages/tachyons-font-family/readme.md
new file mode 100644
index 000000000..319cc678e
--- /dev/null
+++ b/packages/tachyons-font-family/readme.md
@@ -0,0 +1,118 @@
+# tachyons-font-family 4.2.4
+
+Performance based css module.
+
+#### Stats
+
+395 | 15 | 14
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-font-family
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-font-family
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-font-family.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-font-family";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ FONT FAMILY GROUPS
+
+*/
+.sans-serif { font-family: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, helvetica, 'helvetica neue', ubuntu, roboto, noto, 'segoe ui', arial, sans-serif; }
+.serif { font-family: georgia, times, serif; }
+.system-sans-serif { font-family: sans-serif; }
+.system-serif { font-family: serif; }
+/* Monospaced Typefaces (for code) */
+/* From http://cssfontstack.com */
+code, .code { font-family: Consolas, monaco, monospace; }
+.courier { font-family: 'Courier Next', courier, monospace; }
+/* Sans-Serif Typefaces */
+.helvetica { font-family: 'helvetica neue', helvetica, sans-serif; }
+.avenir { font-family: 'avenir next', avenir, sans-serif; }
+/* Serif Typefaces */
+.georgia { font-family: georgia, serif; }
+.times { font-family: times, serif; }
+.bodoni { font-family: "Bodoni MT", serif; }
+.calisto { font-family: "Calisto MT", serif; }
+.garamond { font-family: garamond, serif; }
+.baskerville { font-family: baskerville, serif; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-font-family/src/tachyons-font-family.css b/packages/tachyons-font-family/src/tachyons-font-family.css
new file mode 100644
index 000000000..f719fa334
--- /dev/null
+++ b/packages/tachyons-font-family/src/tachyons-font-family.css
@@ -0,0 +1,100 @@
+/*
+
+ FONT FAMILY GROUPS
+ Docs: http://tachyons.io/docs/typography/font-family/
+
+*/
+
+
+.sans-serif {
+ font-family: -apple-system, BlinkMacSystemFont,
+ 'avenir next', avenir,
+ 'helvetica neue', helvetica,
+ ubuntu,
+ roboto, noto,
+ 'segoe ui', arial,
+ sans-serif;
+}
+
+.serif {
+ font-family: georgia,
+ times,
+ serif;
+}
+
+.system-sans-serif {
+ font-family: sans-serif;
+}
+
+.system-serif {
+ font-family: serif;
+}
+
+
+/* Monospaced Typefaces (for code) */
+
+/* From http://cssfontstack.com */
+code, .code {
+ font-family: Consolas,
+ monaco,
+ monospace;
+}
+
+.courier {
+ font-family: 'Courier Next',
+ courier,
+ monospace;
+}
+
+
+/* Sans-Serif Typefaces */
+
+.helvetica {
+ font-family: 'helvetica neue', helvetica,
+ sans-serif;
+}
+
+.avenir {
+ font-family: 'avenir next', avenir,
+ sans-serif;
+}
+
+
+/* Serif Typefaces */
+
+.athelas {
+ font-family: athelas,
+ georgia,
+ serif;
+}
+
+.georgia {
+ font-family: georgia,
+ serif;
+}
+
+.times {
+ font-family: times,
+ serif;
+}
+
+.bodoni {
+ font-family: "Bodoni MT",
+ serif;
+}
+
+.calisto {
+ font-family: "Calisto MT",
+ serif;
+}
+
+.garamond {
+ font-family: garamond,
+ serif;
+}
+
+.baskerville {
+ font-family: baskerville,
+ serif;
+}
+
diff --git a/packages/tachyons-font-style/.gitignore b/packages/tachyons-font-style/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-font-style/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-font-style/LICENSE.txt b/packages/tachyons-font-style/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-font-style/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-font-style/code-of-conduct.md b/packages/tachyons-font-style/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-font-style/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-font-style/css/tachyons-font-style.css b/packages/tachyons-font-style/css/tachyons-font-style.css
new file mode 100644
index 000000000..d95e49888
--- /dev/null
+++ b/packages/tachyons-font-style/css/tachyons-font-style.css
@@ -0,0 +1,20 @@
+/*
+
+ FONT STYLE
+
+*/
+.i { font-style: italic; }
+.fs-normal { font-style: normal; }
+@media screen and (min-width: 30em) {
+ .i-ns { font-style: italic; }
+ .fs-normal-ns { font-style: normal; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .i-m { font-style: italic; }
+ .fs-normal-m { font-style: normal; }
+}
+@media screen and (min-width: 60em) {
+ .i-l { font-style: italic; }
+ .fs-normal-l { font-style: normal; }
+}
+
diff --git a/packages/tachyons-font-style/css/tachyons-font-style.min.css b/packages/tachyons-font-style/css/tachyons-font-style.min.css
new file mode 100644
index 000000000..1534af0a6
--- /dev/null
+++ b/packages/tachyons-font-style/css/tachyons-font-style.min.css
@@ -0,0 +1,2 @@
+.i{font-style:italic}.fs-normal{font-style:normal}@media screen and (min-width:30em){.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}}@media screen and (min-width:30em) and (max-width:60em){.i-m{font-style:italic}.fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.i-l{font-style:italic}.fs-normal-l{font-style:normal}}
+
diff --git a/packages/tachyons-font-style/package.json b/packages/tachyons-font-style/package.json
new file mode 100644
index 000000000..df516a93d
--- /dev/null
+++ b/packages/tachyons-font-style/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-font-style",
+ "version": "4.0.0",
+ "style": "src/tachyons-font-style.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-font-style",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-font-style.css > css/tachyons-font-style.css",
+ "build:minify": "tachyons src/tachyons-font-style.css --minify > css/tachyons-font-style.min.css",
+ "build:docs": "tachyons src/tachyons-font-style.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-font-style/readme.md b/packages/tachyons-font-style/readme.md
new file mode 100644
index 000000000..1315287d6
--- /dev/null
+++ b/packages/tachyons-font-style/readme.md
@@ -0,0 +1,114 @@
+# tachyons-font-style 4.0.0
+
+Performance based css module.
+
+#### Stats
+
+165 | 8 | 8
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-font-style
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-font-style
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-font-style.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-font-style";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ FONT STYLE
+
+*/
+.i { font-style: italic; }
+.fs-normal { font-style: normal; }
+@media screen and (min-width: 30em) {
+ .i-ns { font-style: italic; }
+ .fs-normal-ns { font-style: normal; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .i-m { font-style: italic; }
+ .fs-normal-m { font-style: normal; }
+}
+@media screen and (min-width: 60em) {
+ .i-l { font-style: italic; }
+ .fs-normal-l { font-style: normal; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-font-style/src/tachyons-font-style.css b/packages/tachyons-font-style/src/tachyons-font-style.css
new file mode 100644
index 000000000..1ae49255d
--- /dev/null
+++ b/packages/tachyons-font-style/src/tachyons-font-style.css
@@ -0,0 +1,35 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ FONT STYLE
+ Docs: http://tachyons.io/docs/typography/font-style/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.i { font-style: italic; }
+.fs-normal { font-style: normal; }
+
+@media (--breakpoint-not-small) {
+ .i-ns { font-style: italic; }
+ .fs-normal-ns { font-style: normal; }
+}
+
+@media (--breakpoint-medium) {
+ .i-m { font-style: italic; }
+ .fs-normal-m { font-style: normal; }
+}
+
+@media (--breakpoint-large) {
+ .i-l { font-style: italic; }
+ .fs-normal-l { font-style: normal; }
+}
diff --git a/packages/tachyons-font-weight/.gitignore b/packages/tachyons-font-weight/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-font-weight/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-font-weight/LICENSE.txt b/packages/tachyons-font-weight/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-font-weight/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-font-weight/code-of-conduct.md b/packages/tachyons-font-weight/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-font-weight/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-font-weight/css/tachyons-font-weight.css b/packages/tachyons-font-weight/css/tachyons-font-weight.css
new file mode 100644
index 000000000..d69c7ec0d
--- /dev/null
+++ b/packages/tachyons-font-weight/css/tachyons-font-weight.css
@@ -0,0 +1,56 @@
+/*
+
+ FONT WEIGHT
+
+*/
+.normal { font-weight: normal; }
+.b { font-weight: bold; }
+.fw1 { font-weight: 100; }
+.fw2 { font-weight: 200; }
+.fw3 { font-weight: 300; }
+.fw4 { font-weight: 400; }
+.fw5 { font-weight: 500; }
+.fw6 { font-weight: 600; }
+.fw7 { font-weight: 700; }
+.fw8 { font-weight: 800; }
+.fw9 { font-weight: 900; }
+@media screen and (min-width: 30em) {
+ .normal-ns { font-weight: normal; }
+ .b-ns { font-weight: bold; }
+ .fw1-ns { font-weight: 100; }
+ .fw2-ns { font-weight: 200; }
+ .fw3-ns { font-weight: 300; }
+ .fw4-ns { font-weight: 400; }
+ .fw5-ns { font-weight: 500; }
+ .fw6-ns { font-weight: 600; }
+ .fw7-ns { font-weight: 700; }
+ .fw8-ns { font-weight: 800; }
+ .fw9-ns { font-weight: 900; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .normal-m { font-weight: normal; }
+ .b-m { font-weight: bold; }
+ .fw1-m { font-weight: 100; }
+ .fw2-m { font-weight: 200; }
+ .fw3-m { font-weight: 300; }
+ .fw4-m { font-weight: 400; }
+ .fw5-m { font-weight: 500; }
+ .fw6-m { font-weight: 600; }
+ .fw7-m { font-weight: 700; }
+ .fw8-m { font-weight: 800; }
+ .fw9-m { font-weight: 900; }
+}
+@media screen and (min-width: 60em) {
+ .normal-l { font-weight: normal; }
+ .b-l { font-weight: bold; }
+ .fw1-l { font-weight: 100; }
+ .fw2-l { font-weight: 200; }
+ .fw3-l { font-weight: 300; }
+ .fw4-l { font-weight: 400; }
+ .fw5-l { font-weight: 500; }
+ .fw6-l { font-weight: 600; }
+ .fw7-l { font-weight: 700; }
+ .fw8-l { font-weight: 800; }
+ .fw9-l { font-weight: 900; }
+}
+
diff --git a/packages/tachyons-font-weight/css/tachyons-font-weight.min.css b/packages/tachyons-font-weight/css/tachyons-font-weight.min.css
new file mode 100644
index 000000000..7cae6489a
--- /dev/null
+++ b/packages/tachyons-font-weight/css/tachyons-font-weight.min.css
@@ -0,0 +1,2 @@
+.normal{font-weight:400}.b{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}@media screen and (min-width:30em){.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}}@media screen and (min-width:30em) and (max-width:60em){.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}}@media screen and (min-width:60em){.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}}
+
diff --git a/packages/tachyons-font-weight/package.json b/packages/tachyons-font-weight/package.json
new file mode 100644
index 000000000..184261cab
--- /dev/null
+++ b/packages/tachyons-font-weight/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-font-weight",
+ "version": "5.0.0",
+ "style": "src/tachyons-font-weight.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-font-weight",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-font-weight.css > css/tachyons-font-weight.css",
+ "build:minify": "tachyons src/tachyons-font-weight.css --minify > css/tachyons-font-weight.min.css",
+ "build:docs": "tachyons src/tachyons-font-weight.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-font-weight/readme.md b/packages/tachyons-font-weight/readme.md
new file mode 100644
index 000000000..8cc29170a
--- /dev/null
+++ b/packages/tachyons-font-weight/readme.md
@@ -0,0 +1,150 @@
+# tachyons-font-weight 5.0.0
+
+Performance based css module.
+
+#### Stats
+
+299 | 44 | 44
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-font-weight
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-font-weight
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-font-weight.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-font-weight";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ FONT WEIGHT
+
+*/
+.normal { font-weight: normal; }
+.b { font-weight: bold; }
+.fw1 { font-weight: 100; }
+.fw2 { font-weight: 200; }
+.fw3 { font-weight: 300; }
+.fw4 { font-weight: 400; }
+.fw5 { font-weight: 500; }
+.fw6 { font-weight: 600; }
+.fw7 { font-weight: 700; }
+.fw8 { font-weight: 800; }
+.fw9 { font-weight: 900; }
+@media screen and (min-width: 30em) {
+ .normal-ns { font-weight: normal; }
+ .b-ns { font-weight: bold; }
+ .fw1-ns { font-weight: 100; }
+ .fw2-ns { font-weight: 200; }
+ .fw3-ns { font-weight: 300; }
+ .fw4-ns { font-weight: 400; }
+ .fw5-ns { font-weight: 500; }
+ .fw6-ns { font-weight: 600; }
+ .fw7-ns { font-weight: 700; }
+ .fw8-ns { font-weight: 800; }
+ .fw9-ns { font-weight: 900; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .normal-m { font-weight: normal; }
+ .b-m { font-weight: bold; }
+ .fw1-m { font-weight: 100; }
+ .fw2-m { font-weight: 200; }
+ .fw3-m { font-weight: 300; }
+ .fw4-m { font-weight: 400; }
+ .fw5-m { font-weight: 500; }
+ .fw6-m { font-weight: 600; }
+ .fw7-m { font-weight: 700; }
+ .fw8-m { font-weight: 800; }
+ .fw9-m { font-weight: 900; }
+}
+@media screen and (min-width: 60em) {
+ .normal-l { font-weight: normal; }
+ .b-l { font-weight: bold; }
+ .fw1-l { font-weight: 100; }
+ .fw2-l { font-weight: 200; }
+ .fw3-l { font-weight: 300; }
+ .fw4-l { font-weight: 400; }
+ .fw5-l { font-weight: 500; }
+ .fw6-l { font-weight: 600; }
+ .fw7-l { font-weight: 700; }
+ .fw8-l { font-weight: 800; }
+ .fw9-l { font-weight: 900; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-font-weight/src/tachyons-font-weight.css b/packages/tachyons-font-weight/src/tachyons-font-weight.css
new file mode 100644
index 000000000..fe797be76
--- /dev/null
+++ b/packages/tachyons-font-weight/src/tachyons-font-weight.css
@@ -0,0 +1,86 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ FONT WEIGHT
+ Docs: http://tachyons.io/docs/typography/font-weight/
+
+ Base
+ fw = font-weight
+
+ Modifiers:
+ 1 = literal value 100
+ 2 = literal value 200
+ 3 = literal value 300
+ 4 = literal value 400
+ 5 = literal value 500
+ 6 = literal value 600
+ 7 = literal value 700
+ 8 = literal value 800
+ 9 = literal value 900
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.normal { font-weight: normal; }
+.b { font-weight: bold; }
+.fw1 { font-weight: 100; }
+.fw2 { font-weight: 200; }
+.fw3 { font-weight: 300; }
+.fw4 { font-weight: 400; }
+.fw5 { font-weight: 500; }
+.fw6 { font-weight: 600; }
+.fw7 { font-weight: 700; }
+.fw8 { font-weight: 800; }
+.fw9 { font-weight: 900; }
+
+
+@media (--breakpoint-not-small) {
+ .normal-ns { font-weight: normal; }
+ .b-ns { font-weight: bold; }
+ .fw1-ns { font-weight: 100; }
+ .fw2-ns { font-weight: 200; }
+ .fw3-ns { font-weight: 300; }
+ .fw4-ns { font-weight: 400; }
+ .fw5-ns { font-weight: 500; }
+ .fw6-ns { font-weight: 600; }
+ .fw7-ns { font-weight: 700; }
+ .fw8-ns { font-weight: 800; }
+ .fw9-ns { font-weight: 900; }
+}
+
+@media (--breakpoint-medium) {
+ .normal-m { font-weight: normal; }
+ .b-m { font-weight: bold; }
+ .fw1-m { font-weight: 100; }
+ .fw2-m { font-weight: 200; }
+ .fw3-m { font-weight: 300; }
+ .fw4-m { font-weight: 400; }
+ .fw5-m { font-weight: 500; }
+ .fw6-m { font-weight: 600; }
+ .fw7-m { font-weight: 700; }
+ .fw8-m { font-weight: 800; }
+ .fw9-m { font-weight: 900; }
+}
+
+@media (--breakpoint-large) {
+ .normal-l { font-weight: normal; }
+ .b-l { font-weight: bold; }
+ .fw1-l { font-weight: 100; }
+ .fw2-l { font-weight: 200; }
+ .fw3-l { font-weight: 300; }
+ .fw4-l { font-weight: 400; }
+ .fw5-l { font-weight: 500; }
+ .fw6-l { font-weight: 600; }
+ .fw7-l { font-weight: 700; }
+ .fw8-l { font-weight: 800; }
+ .fw9-l { font-weight: 900; }
+}
diff --git a/packages/tachyons-forms/.gitignore b/packages/tachyons-forms/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-forms/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-forms/LICENSE.txt b/packages/tachyons-forms/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-forms/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-forms/code-of-conduct.md b/packages/tachyons-forms/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-forms/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-forms/css/tachyons-forms.css b/packages/tachyons-forms/css/tachyons-forms.css
new file mode 100644
index 000000000..840e84dcc
--- /dev/null
+++ b/packages/tachyons-forms/css/tachyons-forms.css
@@ -0,0 +1,7 @@
+/*
+
+ FORMS
+
+*/
+.input-reset { -webkit-appearance: none; -moz-appearance: none; }
+
diff --git a/packages/tachyons-forms/css/tachyons-forms.min.css b/packages/tachyons-forms/css/tachyons-forms.min.css
new file mode 100644
index 000000000..607199db0
--- /dev/null
+++ b/packages/tachyons-forms/css/tachyons-forms.min.css
@@ -0,0 +1,2 @@
+.input-reset{-webkit-appearance:none;-moz-appearance:none}
+
diff --git a/packages/tachyons-forms/index.html b/packages/tachyons-forms/index.html
new file mode 100644
index 000000000..a45ccfc3e
--- /dev/null
+++ b/packages/tachyons-forms/index.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ tachyons forms
+
+
+
+
+
+
+ tachyons forms
+ Examples
+
+ .input {
+
+
+/* Forms */
+
+.input {
+ outline:0;
+ border: 1px solid $silver;
+
+ }
+ View package on npm
+
+
diff --git a/packages/tachyons-forms/package.json b/packages/tachyons-forms/package.json
new file mode 100644
index 000000000..333ac8095
--- /dev/null
+++ b/packages/tachyons-forms/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "tachyons-forms",
+ "version": "3.0.4",
+ "style": "src/tachyons-forms.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "forms",
+ "design"
+ ],
+ "repository": "tachyons-css/tachyons-forms",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-forms.css > css/tachyons-forms.css",
+ "build:minify": "tachyons src/tachyons-forms.css --minify > css/tachyons-forms.min.css",
+ "build:docs": "tachyons src/tachyons-forms.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "elements",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-forms/readme.md b/packages/tachyons-forms/readme.md
new file mode 100644
index 000000000..24c798fb2
--- /dev/null
+++ b/packages/tachyons-forms/readme.md
@@ -0,0 +1,101 @@
+# tachyons-forms 3.0.4
+
+Performance based css module.
+
+#### Stats
+
+86 | 1 | 2
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-forms
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-forms
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-forms.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-forms";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ FORMS
+
+*/
+.input-reset { -webkit-appearance: none; -moz-appearance: none; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-forms/src/tachyons-forms.css b/packages/tachyons-forms/src/tachyons-forms.css
new file mode 100644
index 000000000..fe0b8ab6c
--- /dev/null
+++ b/packages/tachyons-forms/src/tachyons-forms.css
@@ -0,0 +1,16 @@
+/*
+
+ FORMS
+
+*/
+
+.input-reset {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+}
+
+.button-reset::-moz-focus-inner,
+.input-reset::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
diff --git a/packages/tachyons-heights/.gitignore b/packages/tachyons-heights/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-heights/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-heights/LICENSE.txt b/packages/tachyons-heights/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-heights/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-heights/code-of-conduct.md b/packages/tachyons-heights/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-heights/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-heights/css/heights.css b/packages/tachyons-heights/css/heights.css
new file mode 100644
index 000000000..81e6591ae
--- /dev/null
+++ b/packages/tachyons-heights/css/heights.css
@@ -0,0 +1,247 @@
+/*
+
+ QUERIES
+
+*/
+/*
+ * Mixing for mobile first queries.
+ * Two breakpoints.
+ * Use like @include break(medium) {
+ * ***Styles***
+ * }
+ *
+ */
+/*
+
+ Heights
+
+*/
+/* Width Scale */
+.wi1 {
+ height: 1rem; }
+
+.wi2 {
+ height: 2rem; }
+
+.wi3 {
+ height: 4rem; }
+
+.wi4 {
+ height: 8rem; }
+
+.wi5 {
+ height: 16rem; }
+
+.hi-10 {
+ height: 10%; }
+
+.hi-20 {
+ height: 20%; }
+
+.hi-25 {
+ height: 25%; }
+
+.hi-40 {
+ height: 40%; }
+
+.hi-50 {
+ height: 50%; }
+
+.hi-60 {
+ height: 60%; }
+
+.hi-75 {
+ height: 75%; }
+
+.hi-80 {
+ height: 80%; }
+
+.hi-100 {
+ height: 100%; }
+
+/* Width String Properties */
+.hi-bb {
+ height: border-box; }
+
+.hi-cb {
+ height: content-box; }
+
+.hi-mx {
+ height: -webkit-max-content;
+ height: -moz-max-content;
+ height: max-content; }
+
+.hi-mn {
+ height: -webkit-min-content;
+ height: -moz-min-content;
+ height: min-content; }
+
+.hi-av {
+ height: available; }
+
+.hi-fc {
+ height: -webkit-fit-content;
+ height: -moz-fit-content;
+ height: fit-content; }
+
+.hi-at {
+ height: auto; }
+
+.hi-i {
+ height: inherit; }
+
+@media screen and (min-width: 48em) {
+ .wi1-ns {
+ height: 1rem; }
+ .wi2-ns {
+ height: 2rem; }
+ .wi3-ns {
+ height: 4rem; }
+ .wi4-ns {
+ height: 8rem; }
+ .wi5-ns {
+ height: 16rem; }
+ .hi-10-ns {
+ height: 10%; }
+ .hi-20-ns {
+ height: 20%; }
+ .hi-25-ns {
+ height: 25%; }
+ .hi-40-ns {
+ height: 40%; }
+ .hi-50-ns {
+ height: 50%; }
+ .hi-60-ns {
+ height: 60%; }
+ .hi-75-ns {
+ height: 75%; }
+ .hi-80-ns {
+ height: 80%; }
+ .hi-100-ns {
+ height: 100%; }
+ .hi-bb-ns {
+ height: border-box; }
+ .hi-cb-ns {
+ height: content-box; }
+ .hi-mx-ns {
+ height: -webkit-max-content;
+ height: -moz-max-content;
+ height: max-content; }
+ .hi-mn-ns {
+ height: -webkit-min-content;
+ height: -moz-min-content;
+ height: min-content; }
+ .hi-av-ns {
+ height: available; }
+ .hi-fc-ns {
+ height: -webkit-fit-content;
+ height: -moz-fit-content;
+ height: fit-content; }
+ .hi-at-ns {
+ height: auto; }
+ .hi-i-ns {
+ height: inherit; } }
+
+@media screen and (min-width: 48em) and (max-width: 64em) {
+ .wi1-m {
+ height: 1rem; }
+ .wi2-m {
+ height: 2rem; }
+ .wi3-m {
+ height: 4rem; }
+ .wi4-m {
+ height: 8rem; }
+ .wi5-m {
+ height: 16rem; }
+ .hi-10-m {
+ height: 10%; }
+ .hi-20-m {
+ height: 20%; }
+ .hi-25-m {
+ height: 25%; }
+ .hi-40-m {
+ height: 40%; }
+ .hi-50-m {
+ height: 50%; }
+ .hi-60-m {
+ height: 60%; }
+ .hi-75-m {
+ height: 75%; }
+ .hi-80-m {
+ height: 80%; }
+ .hi-100-m {
+ height: 100%; }
+ .hi-bb-m {
+ height: border-box; }
+ .hi-cb-m {
+ height: content-box; }
+ .hi-mx-m {
+ height: -webkit-max-content;
+ height: -moz-max-content;
+ height: max-content; }
+ .hi-mn-m {
+ height: -webkit-min-content;
+ height: -moz-min-content;
+ height: min-content; }
+ .hi-av-m {
+ height: available; }
+ .hi-fc-m {
+ height: -webkit-fit-content;
+ height: -moz-fit-content;
+ height: fit-content; }
+ .hi-at-m {
+ height: auto; }
+ .hi-i-m {
+ height: inherit; } }
+
+@media screen and (min-width: 64em) {
+ .wi1-l {
+ height: 1rem; }
+ .wi2-l {
+ height: 2rem; }
+ .wi3-l {
+ height: 4rem; }
+ .wi4-l {
+ height: 8rem; }
+ .wi5-l {
+ height: 16rem; }
+ .hi-10-l {
+ height: 10%; }
+ .hi-20-l {
+ height: 20%; }
+ .hi-25-l {
+ height: 25%; }
+ .hi-40-l {
+ height: 40%; }
+ .hi-50-l {
+ height: 50%; }
+ .hi-60-l {
+ height: 60%; }
+ .hi-75-l {
+ height: 75%; }
+ .hi-80-l {
+ height: 80%; }
+ .hi-100-l {
+ height: 100%; }
+ .hi-bb-l {
+ height: border-box; }
+ .hi-cb-l {
+ height: content-box; }
+ .hi-mx-l {
+ height: -webkit-max-content;
+ height: -moz-max-content;
+ height: max-content; }
+ .hi-mn-l {
+ height: -webkit-min-content;
+ height: -moz-min-content;
+ height: min-content; }
+ .hi-av-l {
+ height: available; }
+ .hi-fc-l {
+ height: -webkit-fit-content;
+ height: -moz-fit-content;
+ height: fit-content; }
+ .hi-at-l {
+ height: auto; }
+ .hi-i-l {
+ height: inherit; } }
diff --git a/packages/tachyons-heights/css/heights.min.css b/packages/tachyons-heights/css/heights.min.css
new file mode 100644
index 000000000..d4f20a207
--- /dev/null
+++ b/packages/tachyons-heights/css/heights.min.css
@@ -0,0 +1 @@
+.wi1{height:1rem}.wi2{height:2rem}.wi3{height:4rem}.wi4{height:8rem}.wi5{height:16rem}.hi-10{height:10%}.hi-20{height:20%}.hi-25{height:25%}.hi-40{height:40%}.hi-50{height:50%}.hi-60{height:60%}.hi-75{height:75%}.hi-80{height:80%}.hi-100{height:100%}.hi-bb{height:border-box}.hi-cb{height:content-box}.hi-mx{height:-webkit-max-content;height:-moz-max-content;height:max-content}.hi-mn{height:-webkit-min-content;height:-moz-min-content;height:min-content}.hi-av{height:available}.hi-fc{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.hi-at{height:auto}.hi-i{height:inherit}@media screen and (min-width:48em){.wi1-ns{height:1rem}.wi2-ns{height:2rem}.wi3-ns{height:4rem}.wi4-ns{height:8rem}.wi5-ns{height:16rem}.hi-10-ns{height:10%}.hi-20-ns{height:20%}.hi-25-ns{height:25%}.hi-40-ns{height:40%}.hi-50-ns{height:50%}.hi-60-ns{height:60%}.hi-75-ns{height:75%}.hi-80-ns{height:80%}.hi-100-ns{height:100%}.hi-bb-ns{height:border-box}.hi-cb-ns{height:content-box}.hi-mx-ns{height:-webkit-max-content;height:-moz-max-content;height:max-content}.hi-mn-ns{height:-webkit-min-content;height:-moz-min-content;height:min-content}.hi-av-ns{height:available}.hi-fc-ns{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.hi-at-ns{height:auto}.hi-i-ns{height:inherit}}@media screen and (min-width:48em) and (max-width:64em){.wi1-m{height:1rem}.wi2-m{height:2rem}.wi3-m{height:4rem}.wi4-m{height:8rem}.wi5-m{height:16rem}.hi-10-m{height:10%}.hi-20-m{height:20%}.hi-25-m{height:25%}.hi-40-m{height:40%}.hi-50-m{height:50%}.hi-60-m{height:60%}.hi-75-m{height:75%}.hi-80-m{height:80%}.hi-100-m{height:100%}.hi-bb-m{height:border-box}.hi-cb-m{height:content-box}.hi-mx-m{height:-webkit-max-content;height:-moz-max-content;height:max-content}.hi-mn-m{height:-webkit-min-content;height:-moz-min-content;height:min-content}.hi-av-m{height:available}.hi-fc-m{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.hi-at-m{height:auto}.hi-i-m{height:inherit}}@media screen and (min-width:64em){.wi1-l{height:1rem}.wi2-l{height:2rem}.wi3-l{height:4rem}.wi4-l{height:8rem}.wi5-l{height:16rem}.hi-10-l{height:10%}.hi-20-l{height:20%}.hi-25-l{height:25%}.hi-40-l{height:40%}.hi-50-l{height:50%}.hi-60-l{height:60%}.hi-75-l{height:75%}.hi-80-l{height:80%}.hi-100-l{height:100%}.hi-bb-l{height:border-box}.hi-cb-l{height:content-box}.hi-mx-l{height:-webkit-max-content;height:-moz-max-content;height:max-content}.hi-mn-l{height:-webkit-min-content;height:-moz-min-content;height:min-content}.hi-av-l{height:available}.hi-fc-l{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.hi-at-l{height:auto}.hi-i-l{height:inherit}}
\ No newline at end of file
diff --git a/packages/tachyons-heights/css/tachyons-heights.css b/packages/tachyons-heights/css/tachyons-heights.css
new file mode 100644
index 000000000..5dce383de
--- /dev/null
+++ b/packages/tachyons-heights/css/tachyons-heights.css
@@ -0,0 +1,59 @@
+/*
+
+ HEIGHTS
+
+*/
+/* Height Scale */
+.h1 { height: 1rem; }
+.h2 { height: 2rem; }
+.h3 { height: 4rem; }
+.h4 { height: 8rem; }
+.h5 { height: 16rem; }
+/* Height Percentages */
+.h-25 { height: 25%; }
+.h-50 { height: 50%; }
+.h-75 { height: 75%; }
+.h-100 { height: 100%; }
+/* String Properties */
+.h-auto { height: auto; }
+.h-inherit { height: inherit; }
+@media screen and (min-width: 30em) {
+ .h1-ns { height: 1rem; }
+ .h2-ns { height: 2rem; }
+ .h3-ns { height: 4rem; }
+ .h4-ns { height: 8rem; }
+ .h5-ns { height: 16rem; }
+ .h-25-ns { height: 25%; }
+ .h-50-ns { height: 50%; }
+ .h-75-ns { height: 75%; }
+ .h-100-ns { height: 100%; }
+ .h-auto-ns { height: auto; }
+ .h-inherit-ns { height: inherit; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .h1-m { height: 1rem; }
+ .h2-m { height: 2rem; }
+ .h3-m { height: 4rem; }
+ .h4-m { height: 8rem; }
+ .h5-m { height: 16rem; }
+ .h-25-m { height: 25%; }
+ .h-50-m { height: 50%; }
+ .h-75-m { height: 75%; }
+ .h-100-m { height: 100%; }
+ .h-auto-m { height: auto; }
+ .h-inherit-m { height: inherit; }
+}
+@media screen and (min-width: 60em) {
+ .h1-l { height: 1rem; }
+ .h2-l { height: 2rem; }
+ .h3-l { height: 4rem; }
+ .h4-l { height: 8rem; }
+ .h5-l { height: 16rem; }
+ .h-25-l { height: 25%; }
+ .h-50-l { height: 50%; }
+ .h-75-l { height: 75%; }
+ .h-100-l { height: 100%; }
+ .h-auto-l { height: auto; }
+ .h-inherit-l { height: inherit; }
+}
+
diff --git a/packages/tachyons-heights/css/tachyons-heights.min.css b/packages/tachyons-heights/css/tachyons-heights.min.css
new file mode 100644
index 000000000..0a261d933
--- /dev/null
+++ b/packages/tachyons-heights/css/tachyons-heights.min.css
@@ -0,0 +1,2 @@
+.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.h-auto{height:auto}.h-inherit{height:inherit}@media screen and (min-width:30em){.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}}@media screen and (min-width:30em) and (max-width:60em){.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.h-auto-m{height:auto}.h-inherit-m{height:inherit}}@media screen and (min-width:60em){.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.h-auto-l{height:auto}.h-inherit-l{height:inherit}}
+
diff --git a/packages/tachyons-heights/package.json b/packages/tachyons-heights/package.json
new file mode 100644
index 000000000..823845ccd
--- /dev/null
+++ b/packages/tachyons-heights/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-heights",
+ "version": "6.0.0",
+ "style": "src/tachyons-heights.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-heights",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-heights.css > css/tachyons-heights.css",
+ "build:minify": "tachyons src/tachyons-heights.css --minify > css/tachyons-heights.min.css",
+ "build:docs": "tachyons src/tachyons-heights.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-heights/readme.md b/packages/tachyons-heights/readme.md
new file mode 100644
index 000000000..aa14da09b
--- /dev/null
+++ b/packages/tachyons-heights/readme.md
@@ -0,0 +1,153 @@
+# tachyons-heights 6.0.0
+
+Performance based css module.
+
+#### Stats
+
+354 | 44 | 44
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-heights
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-heights
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-heights.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-heights";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ HEIGHTS
+
+*/
+/* Height Scale */
+.h1 { height: 1rem; }
+.h2 { height: 2rem; }
+.h3 { height: 4rem; }
+.h4 { height: 8rem; }
+.h5 { height: 16rem; }
+/* Height Percentages */
+.h-25 { height: 25%; }
+.h-50 { height: 50%; }
+.h-75 { height: 75%; }
+.h-100 { height: 100%; }
+/* String Properties */
+.h-auto { height: auto; }
+.h-inherit { height: inherit; }
+@media screen and (min-width: 30em) {
+ .h1-ns { height: 1rem; }
+ .h2-ns { height: 2rem; }
+ .h3-ns { height: 4rem; }
+ .h4-ns { height: 8rem; }
+ .h5-ns { height: 16rem; }
+ .h-25-ns { height: 25%; }
+ .h-50-ns { height: 50%; }
+ .h-75-ns { height: 75%; }
+ .h-100-ns { height: 100%; }
+ .h-auto-ns { height: auto; }
+ .h-inherit-ns { height: inherit; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .h1-m { height: 1rem; }
+ .h2-m { height: 2rem; }
+ .h3-m { height: 4rem; }
+ .h4-m { height: 8rem; }
+ .h5-m { height: 16rem; }
+ .h-25-m { height: 25%; }
+ .h-50-m { height: 50%; }
+ .h-75-m { height: 75%; }
+ .h-100-m { height: 100%; }
+ .h-auto-m { height: auto; }
+ .h-inherit-m { height: inherit; }
+}
+@media screen and (min-width: 60em) {
+ .h1-l { height: 1rem; }
+ .h2-l { height: 2rem; }
+ .h3-l { height: 4rem; }
+ .h4-l { height: 8rem; }
+ .h5-l { height: 16rem; }
+ .h-25-l { height: 25%; }
+ .h-50-l { height: 50%; }
+ .h-75-l { height: 75%; }
+ .h-100-l { height: 100%; }
+ .h-auto-l { height: auto; }
+ .h-inherit-l { height: inherit; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-heights/src/tachyons-heights.css b/packages/tachyons-heights/src/tachyons-heights.css
new file mode 100644
index 000000000..fcb624de0
--- /dev/null
+++ b/packages/tachyons-heights/src/tachyons-heights.css
@@ -0,0 +1,130 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ HEIGHTS
+ Docs: http://tachyons.io/docs/layout/heights/
+
+ Base:
+ h = height
+ min-h = min-height
+ min-vh = min-height vertical screen height
+ vh = vertical screen height
+
+ Modifiers
+ 1 = 1st step in height scale
+ 2 = 2nd step in height scale
+ 3 = 3rd step in height scale
+ 4 = 4th step in height scale
+ 5 = 5th step in height scale
+
+ -25 = literal value 25%
+ -50 = literal value 50%
+ -75 = literal value 75%
+ -100 = literal value 100%
+
+ -auto = string value of auto
+ -inherit = string value of inherit
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+/* Height Scale */
+
+.h1 { height: 1rem; }
+.h2 { height: 2rem; }
+.h3 { height: 4rem; }
+.h4 { height: 8rem; }
+.h5 { height: 16rem; }
+
+/* Height Percentages - Based off of height of parent */
+
+.h-25 { height: 25%; }
+.h-50 { height: 50%; }
+.h-75 { height: 75%; }
+.h-100 { height: 100%; }
+
+.min-h-100 { min-height: 100%; }
+
+/* Screen Height Percentage */
+
+.vh-25 { height: 25vh; }
+.vh-50 { height: 50vh; }
+.vh-75 { height: 75vh; }
+.vh-100 { height: 100vh; }
+
+.min-vh-100 { min-height: 100vh; }
+
+
+/* String Properties */
+
+.h-auto { height: auto; }
+.h-inherit { height: inherit; }
+
+@media (--breakpoint-not-small) {
+ .h1-ns { height: 1rem; }
+ .h2-ns { height: 2rem; }
+ .h3-ns { height: 4rem; }
+ .h4-ns { height: 8rem; }
+ .h5-ns { height: 16rem; }
+ .h-25-ns { height: 25%; }
+ .h-50-ns { height: 50%; }
+ .h-75-ns { height: 75%; }
+ .h-100-ns { height: 100%; }
+ .min-h-100-ns { min-height: 100%; }
+ .vh-25-ns { height: 25vh; }
+ .vh-50-ns { height: 50vh; }
+ .vh-75-ns { height: 75vh; }
+ .vh-100-ns { height: 100vh; }
+ .min-vh-100-ns { min-height: 100vh; }
+ .h-auto-ns { height: auto; }
+ .h-inherit-ns { height: inherit; }
+}
+
+@media (--breakpoint-medium) {
+ .h1-m { height: 1rem; }
+ .h2-m { height: 2rem; }
+ .h3-m { height: 4rem; }
+ .h4-m { height: 8rem; }
+ .h5-m { height: 16rem; }
+ .h-25-m { height: 25%; }
+ .h-50-m { height: 50%; }
+ .h-75-m { height: 75%; }
+ .h-100-m { height: 100%; }
+ .min-h-100-m { min-height: 100%; }
+ .vh-25-m { height: 25vh; }
+ .vh-50-m { height: 50vh; }
+ .vh-75-m { height: 75vh; }
+ .vh-100-m { height: 100vh; }
+ .min-vh-100-m { min-height: 100vh; }
+ .h-auto-m { height: auto; }
+ .h-inherit-m { height: inherit; }
+}
+
+@media (--breakpoint-large) {
+ .h1-l { height: 1rem; }
+ .h2-l { height: 2rem; }
+ .h3-l { height: 4rem; }
+ .h4-l { height: 8rem; }
+ .h5-l { height: 16rem; }
+ .h-25-l { height: 25%; }
+ .h-50-l { height: 50%; }
+ .h-75-l { height: 75%; }
+ .h-100-l { height: 100%; }
+ .min-h-100-l { min-height: 100%; }
+ .vh-25-l { height: 25vh; }
+ .vh-50-l { height: 50vh; }
+ .vh-75-l { height: 75vh; }
+ .vh-100-l { height: 100vh; }
+ .min-vh-100-l { min-height: 100vh; }
+ .h-auto-l { height: auto; }
+ .h-inherit-l { height: inherit; }
+}
diff --git a/packages/tachyons-hovers/.gitignore b/packages/tachyons-hovers/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-hovers/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-hovers/LICENSE.txt b/packages/tachyons-hovers/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-hovers/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-hovers/code-of-conduct.md b/packages/tachyons-hovers/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-hovers/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-hovers/css/tachyons-hovers.css b/packages/tachyons-hovers/css/tachyons-hovers.css
new file mode 100644
index 000000000..f9632b3a9
--- /dev/null
+++ b/packages/tachyons-hovers/css/tachyons-hovers.css
@@ -0,0 +1,42 @@
+/*
+
+ HOVER EFFECTS
+
+
+*/
+/*
+
+ Dim element on hover by adding the dim class.
+
+*/
+.dim { opacity: 1; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.dim:hover, .dim:focus { opacity: .5; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.dim:active { opacity: .8; -webkit-transition: opacity .15s ease-out; transition: opacity .15s ease-out; }
+/*
+
+ Hide child & reveal on hover:
+
+ Put the hide-child class on a parent element and any nested element with the
+ child class will be hidden and displayed on hover or focus.
+
+
+
Hidden until hover or focus
+
Hidden until hover or focus
+
Hidden until hover or focus
+
Hidden until hover or focus
+
+*/
+.hide-child .child { opacity: 0; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.hide-child:hover .child, .hide-child:focus .child, .hide-child:active .child { opacity: 1; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.underline-hover:hover, .underline-hover:focus { text-decoration: underline; }
+/* Can combine this with overflow-hidden to make background images grow on hover
+ * even if you are using background-size: cover */
+.grow { -webkit-transition: -webkit-transform .2s; transition: -webkit-transform .2s; transition: transform .2s; transition: transform .2s, -webkit-transform .2s; }
+.grow:hover, .grow:focus { -webkit-transform: scale( 1.05 ); transform: scale( 1.05 ); }
+.grow-large { -webkit-transition: -webkit-transform .2s; transition: -webkit-transform .2s; transition: transform .2s; transition: transform .2s, -webkit-transform .2s; }
+.grow-large:hover, .grow-large:focus { -webkit-transform: scale( 1.2 ); transform: scale( 1.2 ); }
+/* Add pointer on hover */
+.pointer:hover { cursor: pointer; }
+/* Add shadow on hover */
+.shadow-hover:hover, .shadow-hover:focus { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+
diff --git a/packages/tachyons-hovers/css/tachyons-hovers.min.css b/packages/tachyons-hovers/css/tachyons-hovers.min.css
new file mode 100644
index 000000000..fb71d360d
--- /dev/null
+++ b/packages/tachyons-hovers/css/tachyons-hovers.min.css
@@ -0,0 +1,2 @@
+.dim{opacity:1}.dim,.dim:focus,.dim:hover{-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;-webkit-transition:opacity .15s ease-out;transition:opacity .15s ease-out}.hide-child .child{opacity:0;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.grow:focus,.grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.grow-large{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.pointer:hover{cursor:pointer}.shadow-hover:focus,.shadow-hover:hover{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}
+
diff --git a/packages/tachyons-hovers/package.json b/packages/tachyons-hovers/package.json
new file mode 100644
index 000000000..36c9a220c
--- /dev/null
+++ b/packages/tachyons-hovers/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-hovers",
+ "version": "2.4.0",
+ "style": "src/tachyons-hovers.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-hovers",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-hovers.css > css/tachyons-hovers.css",
+ "build:minify": "tachyons src/tachyons-hovers.css --minify > css/tachyons-hovers.min.css",
+ "build:docs": "tachyons src/tachyons-hovers.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "theming",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-hovers/readme.md b/packages/tachyons-hovers/readme.md
new file mode 100644
index 000000000..c8e880902
--- /dev/null
+++ b/packages/tachyons-hovers/readme.md
@@ -0,0 +1,136 @@
+# tachyons-hovers 2.4.0
+
+Performance based css module.
+
+#### Stats
+
+590 | 19 | 30
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-hovers
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-hovers
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-hovers.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-hovers";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ HOVER EFFECTS
+
+
+*/
+/*
+
+ Dim element on hover by adding the dim class.
+
+*/
+.dim { opacity: 1; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.dim:hover, .dim:focus { opacity: .5; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.dim:active { opacity: .8; -webkit-transition: opacity .15s ease-out; transition: opacity .15s ease-out; }
+/*
+
+ Hide child & reveal on hover:
+
+ Put the hide-child class on a parent element and any nested element with the
+ child class will be hidden and displayed on hover or focus.
+
+
+
Hidden until hover or focus
+
Hidden until hover or focus
+
Hidden until hover or focus
+
Hidden until hover or focus
+
+*/
+.hide-child .child { opacity: 0; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.hide-child:hover .child, .hide-child:focus .child, .hide-child:active .child { opacity: 1; -webkit-transition: opacity .15s ease-in; transition: opacity .15s ease-in; }
+.underline-hover:hover, .underline-hover:focus { text-decoration: underline; }
+/* Can combine this with overflow-hidden to make background images grow on hover
+ * even if you are using background-size: cover */
+.grow { -webkit-transition: -webkit-transform .2s; transition: -webkit-transform .2s; transition: transform .2s; transition: transform .2s, -webkit-transform .2s; }
+.grow:hover, .grow:focus { -webkit-transform: scale( 1.05 ); transform: scale( 1.05 ); }
+.grow-large { -webkit-transition: -webkit-transform .2s; transition: -webkit-transform .2s; transition: transform .2s; transition: transform .2s, -webkit-transform .2s; }
+.grow-large:hover, .grow-large:focus { -webkit-transform: scale( 1.2 ); transform: scale( 1.2 ); }
+/* Add pointer on hover */
+.pointer:hover { cursor: pointer; }
+/* Add shadow on hover */
+.shadow-hover:hover, .shadow-hover:focus { box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-hovers/src/tachyons-hovers.css b/packages/tachyons-hovers/src/tachyons-hovers.css
new file mode 100644
index 000000000..6d3802bfe
--- /dev/null
+++ b/packages/tachyons-hovers/src/tachyons-hovers.css
@@ -0,0 +1,159 @@
+/*
+
+ HOVER EFFECTS
+ Docs: http://tachyons.io/docs/themes/hovers/
+
+ - Dim
+ - Glow
+ - Hide Child
+ - Underline text
+ - Grow
+ - Pointer
+ - Shadow
+
+*/
+
+/*
+
+ Dim element on hover by adding the dim class.
+
+*/
+.dim {
+ opacity: 1;
+ transition: opacity .15s ease-in;
+}
+.dim:hover,
+.dim:focus {
+ opacity: .5;
+ transition: opacity .15s ease-in;
+}
+.dim:active {
+ opacity: .8; transition: opacity .15s ease-out;
+}
+
+/*
+
+ Animate opacity to 100% on hover by adding the glow class.
+
+*/
+.glow {
+ transition: opacity .15s ease-in;
+}
+.glow:hover,
+.glow:focus {
+ opacity: 1;
+ transition: opacity .15s ease-in;
+}
+
+/*
+
+ Hide child & reveal on hover:
+
+ Put the hide-child class on a parent element and any nested element with the
+ child class will be hidden and displayed on hover or focus.
+
+
+
Hidden until hover or focus
+
Hidden until hover or focus
+
Hidden until hover or focus
+
Hidden until hover or focus
+
+*/
+
+.hide-child .child {
+ opacity: 0;
+ transition: opacity .15s ease-in;
+}
+.hide-child:hover .child,
+.hide-child:focus .child,
+.hide-child:active .child {
+ opacity: 1;
+ transition: opacity .15s ease-in;
+}
+
+.underline-hover:hover,
+.underline-hover:focus {
+ text-decoration: underline;
+}
+
+/* Can combine this with overflow-hidden to make background images grow on hover
+ * even if you are using background-size: cover */
+
+.grow {
+ -moz-osx-font-smoothing: grayscale;
+ backface-visibility: hidden;
+ transform: translateZ(0);
+ transition: transform 0.25s ease-out;
+}
+
+.grow:hover,
+.grow:focus {
+ transform: scale(1.05);
+}
+
+.grow:active {
+ transform: scale(.90);
+}
+
+.grow-large {
+ -moz-osx-font-smoothing: grayscale;
+ backface-visibility: hidden;
+ transform: translateZ(0);
+ transition: transform .25s ease-in-out;
+}
+
+.grow-large:hover,
+.grow-large:focus {
+ transform: scale(1.2);
+}
+
+.grow-large:active {
+ transform: scale(.95);
+}
+
+/* Add pointer on hover */
+
+.pointer:hover {
+ cursor: pointer;
+}
+
+/*
+ Add shadow on hover.
+
+ Performant box-shadow animation pattern from
+ http://tobiasahlin.com/blog/how-to-animate-box-shadow/
+*/
+
+.shadow-hover {
+ cursor: pointer;
+ position: relative;
+ transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
+}
+
+.shadow-hover::after {
+ content: '';
+ box-shadow: 0px 0px 16px 2px rgba( 0, 0, 0, .2 );
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
+}
+
+.shadow-hover:hover::after,
+.shadow-hover:focus::after {
+ opacity: 1;
+}
+
+/* Combine with classes in skins and skins-pseudo for
+ * many different transition possibilities. */
+
+.bg-animate,
+.bg-animate:hover,
+.bg-animate:focus {
+ transition: background-color .15s ease-in-out;
+}
+
diff --git a/packages/tachyons-images/.gitignore b/packages/tachyons-images/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-images/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-images/LICENSE.txt b/packages/tachyons-images/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-images/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-images/code-of-conduct.md b/packages/tachyons-images/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-images/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-images/css/tachyons-images.css b/packages/tachyons-images/css/tachyons-images.css
new file mode 100644
index 000000000..7b18ea60c
--- /dev/null
+++ b/packages/tachyons-images/css/tachyons-images.css
@@ -0,0 +1,8 @@
+/*
+
+ IMAGES
+
+*/
+/* Responsive images! */
+img { max-width: 100%; }
+
diff --git a/packages/tachyons-images/css/tachyons-images.min.css b/packages/tachyons-images/css/tachyons-images.min.css
new file mode 100644
index 000000000..7dc4d14b2
--- /dev/null
+++ b/packages/tachyons-images/css/tachyons-images.min.css
@@ -0,0 +1,2 @@
+img{max-width:100%}
+
diff --git a/packages/tachyons-images/package.json b/packages/tachyons-images/package.json
new file mode 100644
index 000000000..d58c261fd
--- /dev/null
+++ b/packages/tachyons-images/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-images",
+ "version": "1.0.7",
+ "style": "src/tachyons-images.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-images",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-images.css > css/tachyons-images.css",
+ "build:minify": "tachyons src/tachyons-images.css --minify > css/tachyons-images.min.css",
+ "build:docs": "tachyons src/tachyons-images.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "elements",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-images/readme.md b/packages/tachyons-images/readme.md
new file mode 100644
index 000000000..1c1149fe2
--- /dev/null
+++ b/packages/tachyons-images/readme.md
@@ -0,0 +1,102 @@
+# tachyons-images 1.0.7
+
+Performance based css module.
+
+#### Stats
+
+87 | 1 | 1
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-images
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-images
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-images.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-images";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ IMAGES
+
+*/
+/* Responsive images! */
+img { max-width: 100%; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-images/src/tachyons-images.css b/packages/tachyons-images/src/tachyons-images.css
new file mode 100644
index 000000000..0298ceae7
--- /dev/null
+++ b/packages/tachyons-images/src/tachyons-images.css
@@ -0,0 +1,11 @@
+/*
+
+ IMAGES
+ Docs: http://tachyons.io/docs/elements/images/
+
+*/
+
+/* Responsive images! */
+
+img { max-width: 100%; }
+
diff --git a/packages/tachyons-letter-spacing/.gitignore b/packages/tachyons-letter-spacing/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-letter-spacing/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-letter-spacing/LICENSE.txt b/packages/tachyons-letter-spacing/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-letter-spacing/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-letter-spacing/code-of-conduct.md b/packages/tachyons-letter-spacing/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-letter-spacing/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-letter-spacing/css/tachyons-letter-spacing.css b/packages/tachyons-letter-spacing/css/tachyons-letter-spacing.css
new file mode 100644
index 000000000..119228087
--- /dev/null
+++ b/packages/tachyons-letter-spacing/css/tachyons-letter-spacing.css
@@ -0,0 +1,24 @@
+/*
+
+ LETTER SPACING
+
+*/
+.tracked { letter-spacing: .1em; }
+.tracked-tight { letter-spacing: -.05em; }
+.tracked-mega { letter-spacing: .25em; }
+@media screen and (min-width: 30em) {
+ .tracked-ns { letter-spacing: .1em; }
+ .tracked-tight-ns { letter-spacing: -.05em; }
+ .tracked-mega-ns { letter-spacing: .25em; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .tracked-m { letter-spacing: .1em; }
+ .tracked-tight-m { letter-spacing: -.05em; }
+ .tracked-mega-m { letter-spacing: .25em; }
+}
+@media screen and (min-width: 60em) {
+ .tracked-l { letter-spacing: .1em; }
+ .tracked-tight-l { letter-spacing: -.05em; }
+ .tracked-mega-l { letter-spacing: .25em; }
+}
+
diff --git a/packages/tachyons-letter-spacing/css/tachyons-letter-spacing.min.css b/packages/tachyons-letter-spacing/css/tachyons-letter-spacing.min.css
new file mode 100644
index 000000000..0690a8e1c
--- /dev/null
+++ b/packages/tachyons-letter-spacing/css/tachyons-letter-spacing.min.css
@@ -0,0 +1,2 @@
+.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em) and (max-width:60em){.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}}
+
diff --git a/packages/tachyons-letter-spacing/package.json b/packages/tachyons-letter-spacing/package.json
new file mode 100644
index 000000000..c8f180c4e
--- /dev/null
+++ b/packages/tachyons-letter-spacing/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "tachyons-letter-spacing",
+ "version": "3.0.0",
+ "style": "src/tachyons-letter-spacing.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-letter-spacing",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-letter-spacing.css > css/tachyons-letter-spacing.css",
+ "build:minify": "tachyons src/tachyons-letter-spacing.css --minify > css/tachyons-letter-spacing.min.css",
+ "build:docs": "tachyons src/tachyons-letter-spacing.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true,
+ "nickName": "tracking"
+ }
+}
diff --git a/packages/tachyons-letter-spacing/readme.md b/packages/tachyons-letter-spacing/readme.md
new file mode 100644
index 000000000..574767d2d
--- /dev/null
+++ b/packages/tachyons-letter-spacing/readme.md
@@ -0,0 +1,118 @@
+# tachyons-letter-spacing 3.0.0
+
+Performance based css module.
+
+#### Stats
+
+196 | 12 | 12
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-letter-spacing
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-letter-spacing
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-letter-spacing.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-letter-spacing";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ LETTER SPACING
+
+*/
+.tracked { letter-spacing: .1em; }
+.tracked-tight { letter-spacing: -.05em; }
+.tracked-mega { letter-spacing: .25em; }
+@media screen and (min-width: 30em) {
+ .tracked-ns { letter-spacing: .1em; }
+ .tracked-tight-ns { letter-spacing: -.05em; }
+ .tracked-mega-ns { letter-spacing: .25em; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .tracked-m { letter-spacing: .1em; }
+ .tracked-tight-m { letter-spacing: -.05em; }
+ .tracked-mega-m { letter-spacing: .25em; }
+}
+@media screen and (min-width: 60em) {
+ .tracked-l { letter-spacing: .1em; }
+ .tracked-tight-l { letter-spacing: -.05em; }
+ .tracked-mega-l { letter-spacing: .25em; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-letter-spacing/src/tachyons-letter-spacing.css b/packages/tachyons-letter-spacing/src/tachyons-letter-spacing.css
new file mode 100644
index 000000000..b58663971
--- /dev/null
+++ b/packages/tachyons-letter-spacing/src/tachyons-letter-spacing.css
@@ -0,0 +1,39 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ LETTER SPACING
+ Docs: http://tachyons.io/docs/typography/tracking/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.tracked { letter-spacing: .1em; }
+.tracked-tight { letter-spacing: -.05em; }
+.tracked-mega { letter-spacing: .25em; }
+
+@media (--breakpoint-not-small) {
+ .tracked-ns { letter-spacing: .1em; }
+ .tracked-tight-ns { letter-spacing: -.05em; }
+ .tracked-mega-ns { letter-spacing: .25em; }
+}
+
+@media (--breakpoint-medium) {
+ .tracked-m { letter-spacing: .1em; }
+ .tracked-tight-m { letter-spacing: -.05em; }
+ .tracked-mega-m { letter-spacing: .25em; }
+}
+
+@media (--breakpoint-large) {
+ .tracked-l { letter-spacing: .1em; }
+ .tracked-tight-l { letter-spacing: -.05em; }
+ .tracked-mega-l { letter-spacing: .25em; }
+}
diff --git a/packages/tachyons-line-height/.gitignore b/packages/tachyons-line-height/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-line-height/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-line-height/LICENSE.txt b/packages/tachyons-line-height/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-line-height/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-line-height/code-of-conduct.md b/packages/tachyons-line-height/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-line-height/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-line-height/css/tachyons-line-height.css b/packages/tachyons-line-height/css/tachyons-line-height.css
new file mode 100644
index 000000000..008d372b8
--- /dev/null
+++ b/packages/tachyons-line-height/css/tachyons-line-height.css
@@ -0,0 +1,24 @@
+/*
+
+ LINE HEIGHT / LEADING
+
+*/
+.lh-solid { line-height: 1; }
+.lh-title { line-height: 1.3; }
+.lh-copy { line-height: 1.6; }
+@media screen and (min-width: 30em) {
+ .lh-solid-ns { line-height: 1; }
+ .lh-title-ns { line-height: 1.3; }
+ .lh-copy-ns { line-height: 1.6; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .lh-solid-m { line-height: 1; }
+ .lh-title-m { line-height: 1.3; }
+ .lh-copy-m { line-height: 1.6; }
+}
+@media screen and (min-width: 60em) {
+ .lh-solid-l { line-height: 1; }
+ .lh-title-l { line-height: 1.3; }
+ .lh-copy-l { line-height: 1.6; }
+}
+
diff --git a/packages/tachyons-line-height/css/tachyons-line-height.min.css b/packages/tachyons-line-height/css/tachyons-line-height.min.css
new file mode 100644
index 000000000..ec22c6cff
--- /dev/null
+++ b/packages/tachyons-line-height/css/tachyons-line-height.min.css
@@ -0,0 +1,2 @@
+.lh-solid{line-height:1}.lh-title{line-height:1.3}.lh-copy{line-height:1.6}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.3}.lh-copy-ns{line-height:1.6}}@media screen and (min-width:30em) and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.3}.lh-copy-m{line-height:1.6}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.3}.lh-copy-l{line-height:1.6}}
+
diff --git a/packages/tachyons-line-height/package.json b/packages/tachyons-line-height/package.json
new file mode 100644
index 000000000..22cc31ec1
--- /dev/null
+++ b/packages/tachyons-line-height/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-line-height",
+ "version": "3.0.0",
+ "style": "src/tachyons-line-height.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-line-height",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-line-height.css > css/tachyons-line-height.css",
+ "build:minify": "tachyons src/tachyons-line-height.css --minify > css/tachyons-line-height.min.css",
+ "build:docs": "tachyons src/tachyons-line-height.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-line-height/readme.md b/packages/tachyons-line-height/readme.md
new file mode 100644
index 000000000..a11a3a66f
--- /dev/null
+++ b/packages/tachyons-line-height/readme.md
@@ -0,0 +1,118 @@
+# tachyons-line-height 3.0.0
+
+Performance based css module.
+
+#### Stats
+
+189 | 12 | 12
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-line-height
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-line-height
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-line-height.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-line-height";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ LINE HEIGHT / LEADING
+
+*/
+.lh-solid { line-height: 1; }
+.lh-title { line-height: 1.3; }
+.lh-copy { line-height: 1.6; }
+@media screen and (min-width: 30em) {
+ .lh-solid-ns { line-height: 1; }
+ .lh-title-ns { line-height: 1.3; }
+ .lh-copy-ns { line-height: 1.6; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .lh-solid-m { line-height: 1; }
+ .lh-title-m { line-height: 1.3; }
+ .lh-copy-m { line-height: 1.6; }
+}
+@media screen and (min-width: 60em) {
+ .lh-solid-l { line-height: 1; }
+ .lh-title-l { line-height: 1.3; }
+ .lh-copy-l { line-height: 1.6; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-line-height/src/tachyons-line-height.css b/packages/tachyons-line-height/src/tachyons-line-height.css
new file mode 100644
index 000000000..b97185c45
--- /dev/null
+++ b/packages/tachyons-line-height/src/tachyons-line-height.css
@@ -0,0 +1,40 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ LINE HEIGHT / LEADING
+ Docs: http://tachyons.io/docs/typography/line-height
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+ .lh-solid { line-height: 1; }
+ .lh-title { line-height: 1.25; }
+ .lh-copy { line-height: 1.5; }
+
+@media (--breakpoint-not-small) {
+ .lh-solid-ns { line-height: 1; }
+ .lh-title-ns { line-height: 1.25; }
+ .lh-copy-ns { line-height: 1.5; }
+}
+
+@media (--breakpoint-medium) {
+ .lh-solid-m { line-height: 1; }
+ .lh-title-m { line-height: 1.25; }
+ .lh-copy-m { line-height: 1.5; }
+}
+
+@media (--breakpoint-large) {
+ .lh-solid-l { line-height: 1; }
+ .lh-title-l { line-height: 1.25; }
+ .lh-copy-l { line-height: 1.5; }
+}
+
diff --git a/packages/tachyons-links/.gitignore b/packages/tachyons-links/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-links/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-links/LICENSE.txt b/packages/tachyons-links/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-links/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-links/code-of-conduct.md b/packages/tachyons-links/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-links/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-links/css/tachyons-links.css b/packages/tachyons-links/css/tachyons-links.css
new file mode 100644
index 000000000..c46059961
--- /dev/null
+++ b/packages/tachyons-links/css/tachyons-links.css
@@ -0,0 +1,11 @@
+/*
+
+ LINKS
+
+*/
+.link { text-decoration: none; -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link:link, .link:visited { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link:hover { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link:active { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link:focus { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+
diff --git a/packages/tachyons-links/css/tachyons-links.min.css b/packages/tachyons-links/css/tachyons-links.min.css
new file mode 100644
index 000000000..a882f3189
--- /dev/null
+++ b/packages/tachyons-links/css/tachyons-links.min.css
@@ -0,0 +1,2 @@
+.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{-webkit-transition:color .15s ease-in;transition:color .15s ease-in}
+
diff --git a/packages/tachyons-links/package.json b/packages/tachyons-links/package.json
new file mode 100644
index 000000000..68156cced
--- /dev/null
+++ b/packages/tachyons-links/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-links",
+ "version": "3.0.5",
+ "style": "src/tachyons-links.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-links",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-links.css > css/tachyons-links.css",
+ "build:minify": "tachyons src/tachyons-links.css --minify > css/tachyons-links.min.css",
+ "build:docs": "tachyons src/tachyons-links.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "elements",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-links/readme.md b/packages/tachyons-links/readme.md
new file mode 100644
index 000000000..7a8456d27
--- /dev/null
+++ b/packages/tachyons-links/readme.md
@@ -0,0 +1,105 @@
+# tachyons-links 3.0.5
+
+Performance based css module.
+
+#### Stats
+
+148 | 6 | 11
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-links
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-links
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-links.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-links";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ LINKS
+
+*/
+.link { text-decoration: none; -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link:link, .link:visited { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link:hover { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link:active { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+.link:focus { -webkit-transition: color .15s ease-in; transition: color .15s ease-in; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-links/src/tachyons-links.css b/packages/tachyons-links/src/tachyons-links.css
new file mode 100644
index 000000000..6c9a2c876
--- /dev/null
+++ b/packages/tachyons-links/src/tachyons-links.css
@@ -0,0 +1,27 @@
+/*
+
+ LINKS
+ Docs: http://tachyons.io/docs/elements/links/
+
+*/
+
+.link {
+ text-decoration: none;
+ transition: color .15s ease-in;
+}
+
+.link:link,
+.link:visited {
+ transition: color .15s ease-in;
+}
+.link:hover {
+ transition: color .15s ease-in;
+}
+.link:active {
+ transition: color .15s ease-in;
+}
+.link:focus {
+ transition: color .15s ease-in;
+ outline: 1px dotted currentColor;
+}
+
diff --git a/packages/tachyons-lists/.gitignore b/packages/tachyons-lists/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-lists/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-lists/LICENSE.txt b/packages/tachyons-lists/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-lists/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-lists/code-of-conduct.md b/packages/tachyons-lists/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-lists/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-lists/css/tachyons-lists.css b/packages/tachyons-lists/css/tachyons-lists.css
new file mode 100644
index 000000000..435cf8cf0
--- /dev/null
+++ b/packages/tachyons-lists/css/tachyons-lists.css
@@ -0,0 +1,7 @@
+/*
+
+ LISTS
+
+*/
+.list { list-style-type: none; }
+
diff --git a/packages/tachyons-lists/css/tachyons-lists.min.css b/packages/tachyons-lists/css/tachyons-lists.min.css
new file mode 100644
index 000000000..d8ef837d0
--- /dev/null
+++ b/packages/tachyons-lists/css/tachyons-lists.min.css
@@ -0,0 +1,2 @@
+.list{list-style-type:none}
+
diff --git a/packages/tachyons-lists/package.json b/packages/tachyons-lists/package.json
new file mode 100644
index 000000000..1d5e55b39
--- /dev/null
+++ b/packages/tachyons-lists/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-lists",
+ "version": "2.0.8",
+ "style": "src/tachyons-lists.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-lists",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-lists.css > css/tachyons-lists.css",
+ "build:minify": "tachyons src/tachyons-lists.css --minify > css/tachyons-lists.min.css",
+ "build:docs": "tachyons src/tachyons-lists.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "elements",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-lists/readme.md b/packages/tachyons-lists/readme.md
new file mode 100644
index 000000000..6481bb0b0
--- /dev/null
+++ b/packages/tachyons-lists/readme.md
@@ -0,0 +1,101 @@
+# tachyons-lists 2.0.8
+
+Performance based css module.
+
+#### Stats
+
+67 | 1 | 1
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-lists
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-lists
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-lists.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-lists";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ LISTS
+
+*/
+.list { list-style-type: none; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-lists/src/tachyons-lists.css b/packages/tachyons-lists/src/tachyons-lists.css
new file mode 100644
index 000000000..88ca28d90
--- /dev/null
+++ b/packages/tachyons-lists/src/tachyons-lists.css
@@ -0,0 +1,8 @@
+/*
+
+ LISTS
+ http://tachyons.io/docs/elements/lists/
+
+*/
+
+.list { list-style-type: none; }
diff --git a/packages/tachyons-max-widths/.gitignore b/packages/tachyons-max-widths/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-max-widths/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-max-widths/LICENSE.txt b/packages/tachyons-max-widths/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-max-widths/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-max-widths/code-of-conduct.md b/packages/tachyons-max-widths/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-max-widths/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-max-widths/css/tachyons-max-widths.css b/packages/tachyons-max-widths/css/tachyons-max-widths.css
new file mode 100644
index 000000000..982d08984
--- /dev/null
+++ b/packages/tachyons-max-widths/css/tachyons-max-widths.css
@@ -0,0 +1,59 @@
+/*
+
+ MAX WIDTHS
+
+*/
+/* Max Width Percentages */
+.mw-100 { max-width: 100%; }
+/* Max Width Scale */
+.mw1 { max-width: 1rem; }
+.mw2 { max-width: 2rem; }
+.mw3 { max-width: 4rem; }
+.mw4 { max-width: 8rem; }
+.mw5 { max-width: 16rem; }
+.mw6 { max-width: 32rem; }
+.mw7 { max-width: 48rem; }
+.mw8 { max-width: 64rem; }
+.mw9 { max-width: 96rem; }
+/* Max Width String Properties */
+.mw-none { max-width: none; }
+@media screen and (min-width: 30em) {
+ .mw-100-ns { max-width: 100%; }
+ .mw1-ns { max-width: 1rem; }
+ .mw2-ns { max-width: 2rem; }
+ .mw3-ns { max-width: 4rem; }
+ .mw4-ns { max-width: 8rem; }
+ .mw5-ns { max-width: 16rem; }
+ .mw6-ns { max-width: 32rem; }
+ .mw7-ns { max-width: 48rem; }
+ .mw8-ns { max-width: 64rem; }
+ .mw9-ns { max-width: 96rem; }
+ .mw-none-ns { max-width: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .mw-100-m { max-width: 100%; }
+ .mw1-m { max-width: 1rem; }
+ .mw2-m { max-width: 2rem; }
+ .mw3-m { max-width: 4rem; }
+ .mw4-m { max-width: 8rem; }
+ .mw5-m { max-width: 16rem; }
+ .mw6-m { max-width: 32rem; }
+ .mw7-m { max-width: 48rem; }
+ .mw8-m { max-width: 64rem; }
+ .mw9-m { max-width: 96rem; }
+ .mw-none-m { max-width: none; }
+}
+@media screen and (min-width: 60em) {
+ .mw-100-l { max-width: 100%; }
+ .mw1-l { max-width: 1rem; }
+ .mw2-l { max-width: 2rem; }
+ .mw3-l { max-width: 4rem; }
+ .mw4-l { max-width: 8rem; }
+ .mw5-l { max-width: 16rem; }
+ .mw6-l { max-width: 32rem; }
+ .mw7-l { max-width: 48rem; }
+ .mw8-l { max-width: 64rem; }
+ .mw9-l { max-width: 96rem; }
+ .mw-none-l { max-width: none; }
+}
+
diff --git a/packages/tachyons-max-widths/css/tachyons-max-widths.min.css b/packages/tachyons-max-widths/css/tachyons-max-widths.min.css
new file mode 100644
index 000000000..caabcfb04
--- /dev/null
+++ b/packages/tachyons-max-widths/css/tachyons-max-widths.min.css
@@ -0,0 +1,2 @@
+.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}@media screen and (min-width:30em){.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}}@media screen and (min-width:30em) and (max-width:60em){.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}}@media screen and (min-width:60em){.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}}
+
diff --git a/packages/tachyons-max-widths/package.json b/packages/tachyons-max-widths/package.json
new file mode 100644
index 000000000..c30a97ba8
--- /dev/null
+++ b/packages/tachyons-max-widths/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-max-widths",
+ "version": "4.0.0",
+ "style": "src/tachyons-max-widths.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-max-widths",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-max-widths.css > css/tachyons-max-widths.css",
+ "build:minify": "tachyons src/tachyons-max-widths.css --minify > css/tachyons-max-widths.min.css",
+ "build:docs": "tachyons src/tachyons-max-widths.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-max-widths/readme.md b/packages/tachyons-max-widths/readme.md
new file mode 100644
index 000000000..e2f76b1cc
--- /dev/null
+++ b/packages/tachyons-max-widths/readme.md
@@ -0,0 +1,153 @@
+# tachyons-max-widths 4.0.0
+
+Performance based css module.
+
+#### Stats
+
+346 | 44 | 44
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-max-widths
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-max-widths
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-max-widths.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-max-widths";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ MAX WIDTHS
+
+*/
+/* Max Width Percentages */
+.mw-100 { max-width: 100%; }
+/* Max Width Scale */
+.mw1 { max-width: 1rem; }
+.mw2 { max-width: 2rem; }
+.mw3 { max-width: 4rem; }
+.mw4 { max-width: 8rem; }
+.mw5 { max-width: 16rem; }
+.mw6 { max-width: 32rem; }
+.mw7 { max-width: 48rem; }
+.mw8 { max-width: 64rem; }
+.mw9 { max-width: 96rem; }
+/* Max Width String Properties */
+.mw-none { max-width: none; }
+@media screen and (min-width: 30em) {
+ .mw-100-ns { max-width: 100%; }
+ .mw1-ns { max-width: 1rem; }
+ .mw2-ns { max-width: 2rem; }
+ .mw3-ns { max-width: 4rem; }
+ .mw4-ns { max-width: 8rem; }
+ .mw5-ns { max-width: 16rem; }
+ .mw6-ns { max-width: 32rem; }
+ .mw7-ns { max-width: 48rem; }
+ .mw8-ns { max-width: 64rem; }
+ .mw9-ns { max-width: 96rem; }
+ .mw-none-ns { max-width: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .mw-100-m { max-width: 100%; }
+ .mw1-m { max-width: 1rem; }
+ .mw2-m { max-width: 2rem; }
+ .mw3-m { max-width: 4rem; }
+ .mw4-m { max-width: 8rem; }
+ .mw5-m { max-width: 16rem; }
+ .mw6-m { max-width: 32rem; }
+ .mw7-m { max-width: 48rem; }
+ .mw8-m { max-width: 64rem; }
+ .mw9-m { max-width: 96rem; }
+ .mw-none-m { max-width: none; }
+}
+@media screen and (min-width: 60em) {
+ .mw-100-l { max-width: 100%; }
+ .mw1-l { max-width: 1rem; }
+ .mw2-l { max-width: 2rem; }
+ .mw3-l { max-width: 4rem; }
+ .mw4-l { max-width: 8rem; }
+ .mw5-l { max-width: 16rem; }
+ .mw6-l { max-width: 32rem; }
+ .mw7-l { max-width: 48rem; }
+ .mw8-l { max-width: 64rem; }
+ .mw9-l { max-width: 96rem; }
+ .mw-none-l { max-width: none; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-max-widths/src/tachyons-max-widths.css b/packages/tachyons-max-widths/src/tachyons-max-widths.css
new file mode 100644
index 000000000..8b1d17da1
--- /dev/null
+++ b/packages/tachyons-max-widths/src/tachyons-max-widths.css
@@ -0,0 +1,104 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ MAX WIDTHS
+ Docs: http://tachyons.io/docs/layout/max-widths/
+
+ Base:
+ mw = max-width
+
+ Modifiers
+ 1 = 1st step in width scale
+ 2 = 2nd step in width scale
+ 3 = 3rd step in width scale
+ 4 = 4th step in width scale
+ 5 = 5th step in width scale
+ 6 = 6st step in width scale
+ 7 = 7nd step in width scale
+ 8 = 8rd step in width scale
+ 9 = 9th step in width scale
+
+ -100 = literal value 100%
+
+ -none = string value none
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+/* Max Width Percentages */
+
+.mw-100 { max-width: 100%; }
+
+/* Max Width Scale */
+
+.mw1 { max-width: 1rem; }
+.mw2 { max-width: 2rem; }
+.mw3 { max-width: 4rem; }
+.mw4 { max-width: 8rem; }
+.mw5 { max-width: 16rem; }
+.mw6 { max-width: 32rem; }
+.mw7 { max-width: 48rem; }
+.mw8 { max-width: 64rem; }
+.mw9 { max-width: 96rem; }
+
+/* Max Width String Properties */
+
+.mw-none { max-width: none; }
+
+@media (--breakpoint-not-small) {
+ .mw-100-ns { max-width: 100%; }
+
+ .mw1-ns { max-width: 1rem; }
+ .mw2-ns { max-width: 2rem; }
+ .mw3-ns { max-width: 4rem; }
+ .mw4-ns { max-width: 8rem; }
+ .mw5-ns { max-width: 16rem; }
+ .mw6-ns { max-width: 32rem; }
+ .mw7-ns { max-width: 48rem; }
+ .mw8-ns { max-width: 64rem; }
+ .mw9-ns { max-width: 96rem; }
+
+ .mw-none-ns { max-width: none; }
+}
+
+@media (--breakpoint-medium) {
+ .mw-100-m { max-width: 100%; }
+
+ .mw1-m { max-width: 1rem; }
+ .mw2-m { max-width: 2rem; }
+ .mw3-m { max-width: 4rem; }
+ .mw4-m { max-width: 8rem; }
+ .mw5-m { max-width: 16rem; }
+ .mw6-m { max-width: 32rem; }
+ .mw7-m { max-width: 48rem; }
+ .mw8-m { max-width: 64rem; }
+ .mw9-m { max-width: 96rem; }
+
+ .mw-none-m { max-width: none; }
+}
+
+@media (--breakpoint-large) {
+ .mw-100-l { max-width: 100%; }
+
+ .mw1-l { max-width: 1rem; }
+ .mw2-l { max-width: 2rem; }
+ .mw3-l { max-width: 4rem; }
+ .mw4-l { max-width: 8rem; }
+ .mw5-l { max-width: 16rem; }
+ .mw6-l { max-width: 32rem; }
+ .mw7-l { max-width: 48rem; }
+ .mw8-l { max-width: 64rem; }
+ .mw9-l { max-width: 96rem; }
+
+ .mw-none-l { max-width: none; }
+}
diff --git a/packages/tachyons-negative-margins/.gitignore b/packages/tachyons-negative-margins/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-negative-margins/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-negative-margins/code-of-conduct.md b/packages/tachyons-negative-margins/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-negative-margins/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-negative-margins/css/tachyons-negative-margins.css b/packages/tachyons-negative-margins/css/tachyons-negative-margins.css
new file mode 100644
index 000000000..2fe4f9cca
--- /dev/null
+++ b/packages/tachyons-negative-margins/css/tachyons-negative-margins.css
@@ -0,0 +1,174 @@
+/*
+ TACHYONS - NEGATIVE MARGINS
+
+ Base:
+ n = negative
+
+ Modifiers:
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.na1 { margin: undefined; }
+.na2 { margin: undefined; }
+.na3 { margin: undefined; }
+.na4 { margin: undefined; }
+.na5 { margin: undefined; }
+.na6 { margin: undefined; }
+.na7 { margin: undefined; }
+.nl1 { margin-left: undefined; }
+.nl2 { margin-left: undefined; }
+.nl3 { margin-left: undefined; }
+.nl4 { margin-left: undefined; }
+.nl5 { margin-left: undefined; }
+.nl6 { margin-left: undefined; }
+.nl7 { margin-left: undefined; }
+.nr1 { margin-right: undefined; }
+.nr2 { margin-right: undefined; }
+.nr3 { margin-right: undefined; }
+.nr4 { margin-right: undefined; }
+.nr5 { margin-right: undefined; }
+.nr6 { margin-right: undefined; }
+.nr7 { margin-right: undefined; }
+.nb1 { margin-bottom: undefined; }
+.nb2 { margin-bottom: undefined; }
+.nb3 { margin-bottom: undefined; }
+.nb4 { margin-bottom: undefined; }
+.nb5 { margin-bottom: undefined; }
+.nb6 { margin-bottom: undefined; }
+.nb7 { margin-bottom: undefined; }
+.nt1 { margin-top: undefined; }
+.nt2 { margin-top: undefined; }
+.nt3 { margin-top: undefined; }
+.nt4 { margin-top: undefined; }
+.nt5 { margin-top: undefined; }
+.nt6 { margin-top: undefined; }
+.nt7 { margin-top: undefined; }
+@media screen and (min-width: 30em) {
+ .na1-ns { margin: undefined; }
+ .na2-ns { margin: undefined; }
+ .na3-ns { margin: undefined; }
+ .na4-ns { margin: undefined; }
+ .na5-ns { margin: undefined; }
+ .na6-ns { margin: undefined; }
+ .na7-ns { margin: undefined; }
+ .nl1-ns { margin-left: undefined; }
+ .nl2-ns { margin-left: undefined; }
+ .nl3-ns { margin-left: undefined; }
+ .nl4-ns { margin-left: undefined; }
+ .nl5-ns { margin-left: undefined; }
+ .nl6-ns { margin-left: undefined; }
+ .nl7-ns { margin-left: undefined; }
+ .nr1-ns { margin-right: undefined; }
+ .nr2-ns { margin-right: undefined; }
+ .nr3-ns { margin-right: undefined; }
+ .nr4-ns { margin-right: undefined; }
+ .nr5-ns { margin-right: undefined; }
+ .nr6-ns { margin-right: undefined; }
+ .nr7-ns { margin-right: undefined; }
+ .nb1-ns { margin-bottom: undefined; }
+ .nb2-ns { margin-bottom: undefined; }
+ .nb3-ns { margin-bottom: undefined; }
+ .nb4-ns { margin-bottom: undefined; }
+ .nb5-ns { margin-bottom: undefined; }
+ .nb6-ns { margin-bottom: undefined; }
+ .nb7-ns { margin-bottom: undefined; }
+ .nt1-ns { margin-top: undefined; }
+ .nt2-ns { margin-top: undefined; }
+ .nt3-ns { margin-top: undefined; }
+ .nt4-ns { margin-top: undefined; }
+ .nt5-ns { margin-top: undefined; }
+ .nt6-ns { margin-top: undefined; }
+ .nt7-ns { margin-top: undefined; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .na1-m { margin: undefined; }
+ .na2-m { margin: undefined; }
+ .na3-m { margin: undefined; }
+ .na4-m { margin: undefined; }
+ .na5-m { margin: undefined; }
+ .na6-m { margin: undefined; }
+ .na7-m { margin: undefined; }
+ .nl1-m { margin-left: undefined; }
+ .nl2-m { margin-left: undefined; }
+ .nl3-m { margin-left: undefined; }
+ .nl4-m { margin-left: undefined; }
+ .nl5-m { margin-left: undefined; }
+ .nl6-m { margin-left: undefined; }
+ .nl7-m { margin-left: undefined; }
+ .nr1-m { margin-right: undefined; }
+ .nr2-m { margin-right: undefined; }
+ .nr3-m { margin-right: undefined; }
+ .nr4-m { margin-right: undefined; }
+ .nr5-m { margin-right: undefined; }
+ .nr6-m { margin-right: undefined; }
+ .nr7-m { margin-right: undefined; }
+ .nb1-m { margin-bottom: undefined; }
+ .nb2-m { margin-bottom: undefined; }
+ .nb3-m { margin-bottom: undefined; }
+ .nb4-m { margin-bottom: undefined; }
+ .nb5-m { margin-bottom: undefined; }
+ .nb6-m { margin-bottom: undefined; }
+ .nb7-m { margin-bottom: undefined; }
+ .nt1-m { margin-top: undefined; }
+ .nt2-m { margin-top: undefined; }
+ .nt3-m { margin-top: undefined; }
+ .nt4-m { margin-top: undefined; }
+ .nt5-m { margin-top: undefined; }
+ .nt6-m { margin-top: undefined; }
+ .nt7-m { margin-top: undefined; }
+}
+@media screen and (min-width: 60em) {
+ .na1-l { margin: undefined; }
+ .na2-l { margin: undefined; }
+ .na3-l { margin: undefined; }
+ .na4-l { margin: undefined; }
+ .na5-l { margin: undefined; }
+ .na6-l { margin: undefined; }
+ .na7-l { margin: undefined; }
+ .nl1-l { margin-left: undefined; }
+ .nl2-l { margin-left: undefined; }
+ .nl3-l { margin-left: undefined; }
+ .nl4-l { margin-left: undefined; }
+ .nl5-l { margin-left: undefined; }
+ .nl6-l { margin-left: undefined; }
+ .nl7-l { margin-left: undefined; }
+ .nr1-l { margin-right: undefined; }
+ .nr2-l { margin-right: undefined; }
+ .nr3-l { margin-right: undefined; }
+ .nr4-l { margin-right: undefined; }
+ .nr5-l { margin-right: undefined; }
+ .nr6-l { margin-right: undefined; }
+ .nr7-l { margin-right: undefined; }
+ .nb1-l { margin-bottom: undefined; }
+ .nb2-l { margin-bottom: undefined; }
+ .nb3-l { margin-bottom: undefined; }
+ .nb4-l { margin-bottom: undefined; }
+ .nb5-l { margin-bottom: undefined; }
+ .nb6-l { margin-bottom: undefined; }
+ .nb7-l { margin-bottom: undefined; }
+ .nt1-l { margin-top: undefined; }
+ .nt2-l { margin-top: undefined; }
+ .nt3-l { margin-top: undefined; }
+ .nt4-l { margin-top: undefined; }
+ .nt5-l { margin-top: undefined; }
+ .nt6-l { margin-top: undefined; }
+ .nt7-l { margin-top: undefined; }
+}
+
diff --git a/packages/tachyons-negative-margins/css/tachyons-negative-margins.min.css b/packages/tachyons-negative-margins/css/tachyons-negative-margins.min.css
new file mode 100644
index 000000000..8d3646a0c
--- /dev/null
+++ b/packages/tachyons-negative-margins/css/tachyons-negative-margins.min.css
@@ -0,0 +1,2 @@
+.na1,.na2,.na3,.na4,.na5,.na6,.na7{margin:undefined}.nl1,.nl2,.nl3,.nl4,.nl5,.nl6,.nl7{margin-left:undefined}.nr1,.nr2,.nr3,.nr4,.nr5,.nr6,.nr7{margin-right:undefined}.nb1,.nb2,.nb3,.nb4,.nb5,.nb6,.nb7{margin-bottom:undefined}.nt1,.nt2,.nt3,.nt4,.nt5,.nt6,.nt7{margin-top:undefined}@media screen and (min-width:30em){.na1-ns,.na2-ns,.na3-ns,.na4-ns,.na5-ns,.na6-ns,.na7-ns{margin:undefined}.nl1-ns,.nl2-ns,.nl3-ns,.nl4-ns,.nl5-ns,.nl6-ns,.nl7-ns{margin-left:undefined}.nr1-ns,.nr2-ns,.nr3-ns,.nr4-ns,.nr5-ns,.nr6-ns,.nr7-ns{margin-right:undefined}.nb1-ns,.nb2-ns,.nb3-ns,.nb4-ns,.nb5-ns,.nb6-ns,.nb7-ns{margin-bottom:undefined}.nt1-ns,.nt2-ns,.nt3-ns,.nt4-ns,.nt5-ns,.nt6-ns,.nt7-ns{margin-top:undefined}}@media screen and (min-width:30em) and (max-width:60em){.na1-m,.na2-m,.na3-m,.na4-m,.na5-m,.na6-m,.na7-m{margin:undefined}.nl1-m,.nl2-m,.nl3-m,.nl4-m,.nl5-m,.nl6-m,.nl7-m{margin-left:undefined}.nr1-m,.nr2-m,.nr3-m,.nr4-m,.nr5-m,.nr6-m,.nr7-m{margin-right:undefined}.nb1-m,.nb2-m,.nb3-m,.nb4-m,.nb5-m,.nb6-m,.nb7-m{margin-bottom:undefined}.nt1-m,.nt2-m,.nt3-m,.nt4-m,.nt5-m,.nt6-m,.nt7-m{margin-top:undefined}}@media screen and (min-width:60em){.na1-l,.na2-l,.na3-l,.na4-l,.na5-l,.na6-l,.na7-l{margin:undefined}.nl1-l,.nl2-l,.nl3-l,.nl4-l,.nl5-l,.nl6-l,.nl7-l{margin-left:undefined}.nr1-l,.nr2-l,.nr3-l,.nr4-l,.nr5-l,.nr6-l,.nr7-l{margin-right:undefined}.nb1-l,.nb2-l,.nb3-l,.nb4-l,.nb5-l,.nb6-l,.nb7-l{margin-bottom:undefined}.nt1-l,.nt2-l,.nt3-l,.nt4-l,.nt5-l,.nt6-l,.nt7-l{margin-top:undefined}}
+
diff --git a/packages/tachyons-negative-margins/license b/packages/tachyons-negative-margins/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-negative-margins/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-negative-margins/package-lock.json b/packages/tachyons-negative-margins/package-lock.json
new file mode 100644
index 000000000..6cddd5cfa
--- /dev/null
+++ b/packages/tachyons-negative-margins/package-lock.json
@@ -0,0 +1,2088 @@
+{
+ "name": "tachyons-negative-margins",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "any-promise": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz",
+ "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ },
+ "author-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-0.2.1.tgz",
+ "integrity": "sha1-i976rGBlqTF5m+wH7u9RuUDgjzw=",
+ "dev": true
+ },
+ "authors-to-markdown": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/authors-to-markdown/-/authors-to-markdown-0.1.0.tgz",
+ "integrity": "sha1-ozgAZCiacl9AzRUhRMIfqjf9Fis=",
+ "dev": true,
+ "requires": {
+ "is-blank": "1.1.0",
+ "normalize-url": "1.9.1",
+ "parse-author": "0.2.2"
+ }
+ },
+ "autoprefixer": {
+ "version": "6.7.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000701",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000701",
+ "electron-to-chromium": "1.3.15"
+ }
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz",
+ "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
+ }
+ },
+ "caniuse-api": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
+ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000701",
+ "lodash.memoize": "4.1.2",
+ "lodash.uniq": "4.5.0"
+ }
+ },
+ "caniuse-db": {
+ "version": "1.0.30000701",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000701.tgz",
+ "integrity": "sha1-LjKwaZO/Pb2QtD2T8E4m0Rr93Lo=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "clap": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz",
+ "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3"
+ }
+ },
+ "class-repeat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/class-repeat/-/class-repeat-1.0.1.tgz",
+ "integrity": "sha1-knNYMP7Dp7IdkPmMn4CEeZ0kPSg=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4",
+ "get-css-classes": "1.1.0",
+ "has-class-selector": "1.0.0",
+ "is-present": "1.0.0"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+ "dev": true
+ },
+ "coa": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "color": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
+ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
+ "dev": true,
+ "requires": {
+ "clone": "1.0.2",
+ "color-convert": "1.9.0",
+ "color-string": "0.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.2"
+ }
+ },
+ "color-name": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz",
+ "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.2"
+ }
+ },
+ "colormin": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
+ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
+ "dev": true,
+ "requires": {
+ "color": "0.11.4",
+ "css-color-names": "0.0.4",
+ "has": "1.0.1"
+ },
+ "dependencies": {
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ }
+ }
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "comment-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/comment-regex/-/comment-regex-1.0.0.tgz",
+ "integrity": "sha1-fdcCaMg2SKnEzBm/Ry1S5k9jkY0=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "copy-files": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/copy-files/-/copy-files-0.1.0.tgz",
+ "integrity": "sha1-+jg4XcBH74gZPBxhtqJTqKQn8RY=",
+ "dev": true,
+ "requires": {
+ "async": "0.9.2",
+ "lodash": "2.4.2",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ }
+ }
+ },
+ "css-color-converter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-color-converter/-/css-color-converter-1.1.0.tgz",
+ "integrity": "sha1-wufZPC6WyK2Msax6Hy5J2AUq3jY=",
+ "dev": true,
+ "requires": {
+ "color-convert": "0.5.3",
+ "color-name": "1.1.2"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
+ "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
+ "dev": true
+ }
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.1.tgz",
+ "integrity": "sha1-XQVI+iVkVu3kqaDCrHqxnT6xrYE=",
+ "dev": true
+ },
+ "css-mqpacker": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/css-mqpacker/-/css-mqpacker-5.0.1.tgz",
+ "integrity": "sha1-by1iJSYj/Xwzpo4biNwTcMiFkh4=",
+ "dev": true,
+ "requires": {
+ "minimist": "1.2.0",
+ "postcss": "5.2.17"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1",
+ "regexpu-core": "1.0.0"
+ }
+ },
+ "css-shorthand-expand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-shorthand-expand/-/css-shorthand-expand-1.1.0.tgz",
+ "integrity": "sha1-EC9yhsvTI3VDC1hJ1OL+o6oh6mQ=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "0.0.1",
+ "css-url-regex": "0.0.1",
+ "hex-color-regex": "1.1.0",
+ "hsl-regex": "1.0.0",
+ "hsla-regex": "1.0.0",
+ "map-obj": "1.0.1",
+ "repeat-element": "1.1.2",
+ "rgb-regex": "1.0.1",
+ "rgba-regex": "1.0.0",
+ "xtend": "4.0.1"
+ }
+ },
+ "css-shorthand-properties": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.0.0.tgz",
+ "integrity": "sha1-VnvmcRA2ebmqBaSBVeUUdLJ1h38=",
+ "dev": true
+ },
+ "css-unit-converter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
+ "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
+ "dev": true
+ },
+ "css-url-regex": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-0.0.1.tgz",
+ "integrity": "sha1-4Fr4xsKQ1FHvFjK0VepcgbSxOVw=",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
+ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "decamelize": "1.2.0",
+ "defined": "1.0.0",
+ "has": "1.0.1",
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-calc": "5.3.1",
+ "postcss-colormin": "2.2.2",
+ "postcss-convert-values": "2.6.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-discard-duplicates": "2.1.0",
+ "postcss-discard-empty": "2.1.0",
+ "postcss-discard-overridden": "0.1.1",
+ "postcss-discard-unused": "2.2.3",
+ "postcss-filter-plugins": "2.0.2",
+ "postcss-merge-idents": "2.1.7",
+ "postcss-merge-longhand": "2.0.2",
+ "postcss-merge-rules": "2.1.2",
+ "postcss-minify-font-values": "1.0.5",
+ "postcss-minify-gradients": "1.0.5",
+ "postcss-minify-params": "1.2.2",
+ "postcss-minify-selectors": "2.1.1",
+ "postcss-normalize-charset": "1.1.1",
+ "postcss-normalize-url": "3.0.8",
+ "postcss-ordered-values": "2.2.3",
+ "postcss-reduce-idents": "2.4.0",
+ "postcss-reduce-initial": "1.0.1",
+ "postcss-reduce-transforms": "1.0.4",
+ "postcss-svgo": "2.1.6",
+ "postcss-unique-selectors": "2.0.2",
+ "postcss-value-parser": "3.3.0",
+ "postcss-zindex": "2.2.0"
+ }
+ },
+ "csso": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
+ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+ "dev": true,
+ "requires": {
+ "clap": "1.2.0",
+ "source-map": "0.5.6"
+ }
+ },
+ "cssstats": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cssstats/-/cssstats-3.1.0.tgz",
+ "integrity": "sha512-zLG+H8tyLITS5uYUu8MVtS0wUU7XhV1298CgF62wWLm/xfJIbbE7WlrIfXtgLWk929/cfrCidSkCpYJrlqsJ/g==",
+ "dev": true,
+ "requires": {
+ "bytes": "2.5.0",
+ "css-selector-tokenizer": "0.7.0",
+ "css-shorthand-expand": "1.1.0",
+ "gzip-size": "3.0.0",
+ "has-class-selector": "1.0.0",
+ "has-element-selector": "1.0.0",
+ "has-id-selector": "1.0.0",
+ "has-pseudo-class": "1.0.1",
+ "has-pseudo-element": "1.0.0",
+ "is-blank": "1.1.0",
+ "is-css-shorthand": "1.0.1",
+ "is-present": "1.0.0",
+ "is-vendor-prefixed": "0.0.1",
+ "lodash": "4.17.4",
+ "postcss": "5.2.17",
+ "postcss-safe-parser": "2.0.1",
+ "specificity": "0.3.1"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "1.0.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "dev": true
+ },
+ "detect-newline": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz",
+ "integrity": "sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.15",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz",
+ "integrity": "sha1-CDl5NIkcvPrrvRi4KpW1pIETg2k=",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "exec-sh": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
+ "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
+ "dev": true,
+ "requires": {
+ "merge": "1.2.0"
+ }
+ },
+ "extend": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz",
+ "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=",
+ "dev": true
+ },
+ "extend-options": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/extend-options/-/extend-options-0.0.1.tgz",
+ "integrity": "sha1-6TyDMSQ4wTVl5k7Cts6GqYKd0Xs=",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+ "dev": true
+ },
+ "file-exists": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-exists/-/file-exists-2.0.0.tgz",
+ "integrity": "sha1-okFQZlFQ5i1VvFRJKB2I0rCBDco=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
+ "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
+ "dev": true
+ },
+ "gather-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz",
+ "integrity": "sha1-szmUr0V6gRVwDUEPMXczy+egkEs=",
+ "dev": true
+ },
+ "get-css-classes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-css-classes/-/get-css-classes-1.1.0.tgz",
+ "integrity": "sha1-W0Tqihks7OdWfARXRjOpKqRJF7M=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4",
+ "lodash": "4.17.4"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "gzip-size": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
+ "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
+ },
+ "has": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "dev": true,
+ "requires": {
+ "function-bind": "1.1.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-class-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-class-selector/-/has-class-selector-1.0.0.tgz",
+ "integrity": "sha1-p79Rvs3C133/JQkgPtafNEUODC0=",
+ "dev": true
+ },
+ "has-element-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-element-selector/-/has-element-selector-1.0.0.tgz",
+ "integrity": "sha1-JohCJeEjQ36N+WBMATWB0p0ZC5c=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "has-id-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-id-selector/-/has-id-selector-1.0.0.tgz",
+ "integrity": "sha1-1BtC6SKFhub+xWZyjOszqucay0U=",
+ "dev": true
+ },
+ "has-pseudo-class": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-pseudo-class/-/has-pseudo-class-1.0.1.tgz",
+ "integrity": "sha1-Bj7cjp9ZRpdq9P9OuzLDMNVW4Ac=",
+ "dev": true,
+ "requires": {
+ "pseudo-classes": "0.0.1"
+ }
+ },
+ "has-pseudo-element": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-pseudo-element/-/has-pseudo-element-1.0.0.tgz",
+ "integrity": "sha1-NMoZEgHAFDcJ9CtLc/HcY7dg8D8=",
+ "dev": true,
+ "requires": {
+ "pseudo-elements": "1.0.0"
+ }
+ },
+ "hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
+ "dev": true
+ },
+ "hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+ "dev": true
+ },
+ "hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
+ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+ "dev": true
+ },
+ "immutable-css": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/immutable-css/-/immutable-css-1.1.2.tgz",
+ "integrity": "sha1-RBUWYyKpPVAPrPJoocf5Bw/0YYo=",
+ "dev": true,
+ "requires": {
+ "extend-options": "0.0.1",
+ "file-exists": "0.1.1",
+ "get-css-classes": "1.1.0",
+ "glob": "5.0.15",
+ "has-class-selector": "1.0.0",
+ "is-css": "1.0.0",
+ "meow": "3.7.0",
+ "postcss": "5.2.17",
+ "specificity": "0.1.6"
+ },
+ "dependencies": {
+ "file-exists": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/file-exists/-/file-exists-0.1.1.tgz",
+ "integrity": "sha1-mT0//7W0nRH+/Mj0XCNVAnRAgDw=",
+ "dev": true
+ },
+ "specificity": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.1.6.tgz",
+ "integrity": "sha1-qlAQSPluaUhd3JXvn3pbd/ASMqo=",
+ "dev": true
+ }
+ }
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-blank": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-blank/-/is-blank-1.1.0.tgz",
+ "integrity": "sha1-knTdvUY2PLdnB1w4XUq4jGpk3Bc=",
+ "dev": true,
+ "requires": {
+ "is-empty": "0.0.1",
+ "is-whitespace": "0.3.0"
+ }
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-css": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-css/-/is-css-1.0.0.tgz",
+ "integrity": "sha1-nE7hEQaR4Kffnl5qp4Frrj1SbTg=",
+ "dev": true
+ },
+ "is-css-shorthand": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-css-shorthand/-/is-css-shorthand-1.0.1.tgz",
+ "integrity": "sha1-MPldAyEGBf7f3RKOU9rEpEN6kzw=",
+ "dev": true,
+ "requires": {
+ "css-shorthand-properties": "1.0.0"
+ }
+ },
+ "is-empty": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-0.0.1.tgz",
+ "integrity": "sha1-Cf3D1kndpZaRVsCFOpt2vXgcWjM=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-present": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-present/-/is-present-1.0.0.tgz",
+ "integrity": "sha1-Kcm46ObnhqWUwpL8cjmqJL5wuAw=",
+ "dev": true,
+ "requires": {
+ "is-blank": "1.0.0"
+ },
+ "dependencies": {
+ "is-blank": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-blank/-/is-blank-1.0.0.tgz",
+ "integrity": "sha1-YOOb60H5LDsnrLtQKcsPKfmD7mc=",
+ "dev": true,
+ "requires": {
+ "is-empty": "0.0.1",
+ "is-whitespace": "0.3.0"
+ }
+ }
+ }
+ },
+ "is-svg": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
+ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "1.1.1"
+ }
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-vendor-prefixed": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/is-vendor-prefixed/-/is-vendor-prefixed-0.0.1.tgz",
+ "integrity": "sha1-Bc8NhTxidNf7K/htU+EHgguca0Q=",
+ "dev": true,
+ "requires": {
+ "vendor-prefixes": "0.0.1"
+ }
+ },
+ "is-whitespace": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz",
+ "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=",
+ "dev": true
+ },
+ "js-base64": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
+ "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "2.7.3"
+ }
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "macaddress": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz",
+ "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "math-expression-evaluator": {
+ "version": "1.2.17",
+ "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
+ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
+ "dev": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.4.0",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "merge": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
+ "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "2.5.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.3.0",
+ "validate-npm-package-license": "3.0.1"
+ }
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "prepend-http": "1.0.4",
+ "query-string": "4.3.4",
+ "sort-keys": "1.1.2"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "parse-author": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-0.2.2.tgz",
+ "integrity": "sha1-MC0bjkxmUZ0cRd2VED0zKMRJjv0=",
+ "dev": true,
+ "requires": {
+ "author-regex": "0.2.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "perfectionist": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/perfectionist/-/perfectionist-2.4.0.tgz",
+ "integrity": "sha1-wUetNxThJkZ/F2QSnuct+GHUfqA=",
+ "dev": true,
+ "requires": {
+ "comment-regex": "1.0.0",
+ "defined": "1.0.0",
+ "minimist": "1.2.0",
+ "postcss": "5.2.17",
+ "postcss-scss": "0.3.1",
+ "postcss-value-parser": "3.3.0",
+ "read-file-stdin": "0.2.1",
+ "string.prototype.repeat": "0.2.0",
+ "vendors": "1.0.1",
+ "write-file-stdout": "0.0.2"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "postcss": {
+ "version": "5.2.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
+ "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.1.9",
+ "source-map": "0.5.6",
+ "supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-message-helpers": "2.0.0",
+ "reduce-css-calc": "1.3.0"
+ }
+ },
+ "postcss-class-repeat": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-class-repeat/-/postcss-class-repeat-0.1.0.tgz",
+ "integrity": "sha1-+2zO0SqdmPhZ9HTYGItmbm2oe04=",
+ "dev": true,
+ "requires": {
+ "class-repeat": "1.0.1",
+ "has-class-selector": "1.0.0",
+ "is-present": "1.0.0",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-colormin": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
+ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
+ "dev": true,
+ "requires": {
+ "colormin": "1.1.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-conditionals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-conditionals/-/postcss-conditionals-2.1.0.tgz",
+ "integrity": "sha1-TR9iqlQEWM56t3n3FlaQHI+Okpo=",
+ "dev": true,
+ "requires": {
+ "css-color-converter": "1.1.0",
+ "css-unit-converter": "1.1.1",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
+ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-css-variables": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/postcss-css-variables/-/postcss-css-variables-0.7.0.tgz",
+ "integrity": "sha1-SqWO6zyFmm8JCQE6sXvspWZSh/0=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "extend": "2.0.1",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-custom-media": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz",
+ "integrity": "sha1-E40loYS/LrVN4S1VpsAcMKnYvYE=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
+ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
+ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
+ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
+ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-unused": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
+ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-filter-plugins": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
+ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "uniqid": "4.1.1"
+ }
+ },
+ "postcss-import": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-9.1.0.tgz",
+ "integrity": "sha1-lf6YdqHnmvSfvcNYnwH+WqfMHoA=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "promise-each": "2.2.0",
+ "read-cache": "1.0.0",
+ "resolve": "1.3.3"
+ }
+ },
+ "postcss-merge-idents": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-api": "1.6.1",
+ "postcss": "5.2.17",
+ "postcss-selector-parser": "2.2.3",
+ "vendors": "1.0.1"
+ }
+ },
+ "postcss-message-helpers": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+ "dev": true
+ },
+ "postcss-minify-font-values": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-selector-parser": "2.2.3"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "2.1.0",
+ "normalize-url": "1.9.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
+ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-safe-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-2.0.1.tgz",
+ "integrity": "sha1-Oz0cS0OiTDlC4vC+eWE4KzSLOxM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-scss": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-0.3.1.tgz",
+ "integrity": "sha1-ZcYQ2OKn7g5isYNbcbiHBzSBbks=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+ "dev": true,
+ "requires": {
+ "flatten": "1.0.2",
+ "indexes-of": "1.0.1",
+ "uniq": "1.0.1"
+ }
+ },
+ "postcss-svgo": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
+ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
+ "dev": true,
+ "requires": {
+ "is-svg": "2.1.0",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "svgo": "0.7.2"
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
+ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
+ "dev": true
+ },
+ "postcss-zindex": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
+ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "promise-each": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz",
+ "integrity": "sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=",
+ "dev": true,
+ "requires": {
+ "any-promise": "0.1.0"
+ }
+ },
+ "pseudo-classes": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pseudo-classes/-/pseudo-classes-0.0.1.tgz",
+ "integrity": "sha1-3smD2Upo0D3f3vPwfESvn2wiOls=",
+ "dev": true
+ },
+ "pseudo-elements": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pseudo-elements/-/pseudo-elements-1.0.0.tgz",
+ "integrity": "sha1-S+YMvNhJlpKh1yz90+WDnautFhg=",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
+ "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
+ "dev": true
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "strict-uri-encode": "1.1.0"
+ }
+ },
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-file-stdin": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz",
+ "integrity": "sha1-JezP86FTtoCa+ssj7hU4fbng7mE=",
+ "dev": true,
+ "requires": {
+ "gather-stream": "1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
+ }
+ },
+ "reduce-css-calc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
+ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2",
+ "math-expression-evaluator": "1.2.17",
+ "reduce-function-call": "1.0.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "reduce-function-call": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
+ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "regenerate": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
+ "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "1.3.2",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "resolve": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
+ "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
+ "dev": true,
+ "requires": {
+ "path-parse": "1.0.5"
+ }
+ },
+ "rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+ "dev": true
+ },
+ "rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+ "dev": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "single-trailing-newline": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz",
+ "integrity": "sha1-gfCtKtZFGBlFyAlSpcFBSZLulmQ=",
+ "dev": true,
+ "requires": {
+ "detect-newline": "1.0.3"
+ }
+ },
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "1.1.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "1.2.2"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+ "dev": true
+ },
+ "specificity": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.1.tgz",
+ "integrity": "sha1-8bBoQkzjF64HR42V3jwhz4Xo1Wc=",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
+ "string.prototype.repeat": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz",
+ "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "svgo": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
+ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+ "dev": true,
+ "requires": {
+ "coa": "1.0.4",
+ "colors": "1.1.2",
+ "csso": "2.3.2",
+ "js-yaml": "3.7.0",
+ "mkdirp": "0.5.1",
+ "sax": "1.2.4",
+ "whet.extend": "0.9.9"
+ }
+ },
+ "tachyons-build-css": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/tachyons-build-css/-/tachyons-build-css-1.3.0.tgz",
+ "integrity": "sha1-6puM9/juxtSZLNQEh4hK21hqlc4=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "css-mqpacker": "5.0.1",
+ "cssnano": "3.10.0",
+ "perfectionist": "2.4.0",
+ "postcss": "5.2.17",
+ "postcss-class-repeat": "0.1.0",
+ "postcss-conditionals": "2.1.0",
+ "postcss-css-variables": "0.7.0",
+ "postcss-custom-media": "5.0.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-import": "9.1.0"
+ }
+ },
+ "tachyons-cli": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/tachyons-cli/-/tachyons-cli-1.0.11.tgz",
+ "integrity": "sha1-tkNEPkS63Ca7c5K6Veb3QB6Hsvs=",
+ "dev": true,
+ "requires": {
+ "authors-to-markdown": "0.1.0",
+ "chalk": "1.1.3",
+ "copy-files": "0.1.0",
+ "css-mqpacker": "5.0.1",
+ "cssstats": "3.1.0",
+ "file-exists": "2.0.0",
+ "immutable-css": "1.1.2",
+ "is-blank": "1.1.0",
+ "is-present": "1.0.0",
+ "lodash": "4.17.4",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "single-trailing-newline": "1.0.0",
+ "tachyons-build-css": "1.3.0"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqid": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
+ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
+ "dev": true,
+ "requires": {
+ "macaddress": "0.2.8"
+ }
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "1.0.2",
+ "spdx-expression-parse": "1.0.4"
+ }
+ },
+ "vendor-prefixes": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/vendor-prefixes/-/vendor-prefixes-0.0.1.tgz",
+ "integrity": "sha1-mLQ2f4y3CZIw78IOBA9UrtAY0G0=",
+ "dev": true
+ },
+ "vendors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
+ "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
+ "dev": true
+ },
+ "watch": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz",
+ "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=",
+ "dev": true,
+ "requires": {
+ "exec-sh": "0.2.0",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "whet.extend": {
+ "version": "0.9.9",
+ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write-file-stdout": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-stdout/-/write-file-stdout-0.0.2.tgz",
+ "integrity": "sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ }
+ }
+}
diff --git a/packages/tachyons-negative-margins/package.json b/packages/tachyons-negative-margins/package.json
new file mode 100644
index 000000000..4aed491a2
--- /dev/null
+++ b/packages/tachyons-negative-margins/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "tachyons-negative-margins",
+ "description": "negative-margins CSS module for Tachyons",
+ "version": "1.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-negative-margins.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "negative-margins"
+ ],
+ "repository": "tachyons-css/tachyons-negative-margins",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.11",
+ "watch": "^1.0.2"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-negative-margins.css > css/tachyons-negative-margins.css",
+ "build:minify": "tachyons src/tachyons-negative-margins.css --minify > css/tachyons-negative-margins.min.css",
+ "build:docs": "tachyons src/tachyons-negative-margins.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-negative-margins/readme.md b/packages/tachyons-negative-margins/readme.md
new file mode 100644
index 000000000..b6141a3fb
--- /dev/null
+++ b/packages/tachyons-negative-margins/readme.md
@@ -0,0 +1,268 @@
+# tachyons-negative-margins 1.0.0
+
+negative-margins CSS module for Tachyons
+
+#### Stats
+
+716 | 140 | 140
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-negative-margins
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-negative-margins
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-negative-margins.git
+```
+
+## Usage
+
+#### Using with [Postcss](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-negative-margins";
+```
+
+Then process the css using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the css
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built css is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source css files can be found in the `src` directory.
+Running `$ npm start` will process the source css and place the built css in the `css` directory.
+
+## The css
+
+```css
+/*
+ TACHYONS - NEGATIVE MARGINS
+
+ Base:
+ n = negative
+
+ Modifiers:
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.na1 { margin: undefined; }
+.na2 { margin: undefined; }
+.na3 { margin: undefined; }
+.na4 { margin: undefined; }
+.na5 { margin: undefined; }
+.na6 { margin: undefined; }
+.na7 { margin: undefined; }
+.nl1 { margin-left: undefined; }
+.nl2 { margin-left: undefined; }
+.nl3 { margin-left: undefined; }
+.nl4 { margin-left: undefined; }
+.nl5 { margin-left: undefined; }
+.nl6 { margin-left: undefined; }
+.nl7 { margin-left: undefined; }
+.nr1 { margin-right: undefined; }
+.nr2 { margin-right: undefined; }
+.nr3 { margin-right: undefined; }
+.nr4 { margin-right: undefined; }
+.nr5 { margin-right: undefined; }
+.nr6 { margin-right: undefined; }
+.nr7 { margin-right: undefined; }
+.nb1 { margin-bottom: undefined; }
+.nb2 { margin-bottom: undefined; }
+.nb3 { margin-bottom: undefined; }
+.nb4 { margin-bottom: undefined; }
+.nb5 { margin-bottom: undefined; }
+.nb6 { margin-bottom: undefined; }
+.nb7 { margin-bottom: undefined; }
+.nt1 { margin-top: undefined; }
+.nt2 { margin-top: undefined; }
+.nt3 { margin-top: undefined; }
+.nt4 { margin-top: undefined; }
+.nt5 { margin-top: undefined; }
+.nt6 { margin-top: undefined; }
+.nt7 { margin-top: undefined; }
+@media screen and (min-width: 30em) {
+ .na1-ns { margin: undefined; }
+ .na2-ns { margin: undefined; }
+ .na3-ns { margin: undefined; }
+ .na4-ns { margin: undefined; }
+ .na5-ns { margin: undefined; }
+ .na6-ns { margin: undefined; }
+ .na7-ns { margin: undefined; }
+ .nl1-ns { margin-left: undefined; }
+ .nl2-ns { margin-left: undefined; }
+ .nl3-ns { margin-left: undefined; }
+ .nl4-ns { margin-left: undefined; }
+ .nl5-ns { margin-left: undefined; }
+ .nl6-ns { margin-left: undefined; }
+ .nl7-ns { margin-left: undefined; }
+ .nr1-ns { margin-right: undefined; }
+ .nr2-ns { margin-right: undefined; }
+ .nr3-ns { margin-right: undefined; }
+ .nr4-ns { margin-right: undefined; }
+ .nr5-ns { margin-right: undefined; }
+ .nr6-ns { margin-right: undefined; }
+ .nr7-ns { margin-right: undefined; }
+ .nb1-ns { margin-bottom: undefined; }
+ .nb2-ns { margin-bottom: undefined; }
+ .nb3-ns { margin-bottom: undefined; }
+ .nb4-ns { margin-bottom: undefined; }
+ .nb5-ns { margin-bottom: undefined; }
+ .nb6-ns { margin-bottom: undefined; }
+ .nb7-ns { margin-bottom: undefined; }
+ .nt1-ns { margin-top: undefined; }
+ .nt2-ns { margin-top: undefined; }
+ .nt3-ns { margin-top: undefined; }
+ .nt4-ns { margin-top: undefined; }
+ .nt5-ns { margin-top: undefined; }
+ .nt6-ns { margin-top: undefined; }
+ .nt7-ns { margin-top: undefined; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .na1-m { margin: undefined; }
+ .na2-m { margin: undefined; }
+ .na3-m { margin: undefined; }
+ .na4-m { margin: undefined; }
+ .na5-m { margin: undefined; }
+ .na6-m { margin: undefined; }
+ .na7-m { margin: undefined; }
+ .nl1-m { margin-left: undefined; }
+ .nl2-m { margin-left: undefined; }
+ .nl3-m { margin-left: undefined; }
+ .nl4-m { margin-left: undefined; }
+ .nl5-m { margin-left: undefined; }
+ .nl6-m { margin-left: undefined; }
+ .nl7-m { margin-left: undefined; }
+ .nr1-m { margin-right: undefined; }
+ .nr2-m { margin-right: undefined; }
+ .nr3-m { margin-right: undefined; }
+ .nr4-m { margin-right: undefined; }
+ .nr5-m { margin-right: undefined; }
+ .nr6-m { margin-right: undefined; }
+ .nr7-m { margin-right: undefined; }
+ .nb1-m { margin-bottom: undefined; }
+ .nb2-m { margin-bottom: undefined; }
+ .nb3-m { margin-bottom: undefined; }
+ .nb4-m { margin-bottom: undefined; }
+ .nb5-m { margin-bottom: undefined; }
+ .nb6-m { margin-bottom: undefined; }
+ .nb7-m { margin-bottom: undefined; }
+ .nt1-m { margin-top: undefined; }
+ .nt2-m { margin-top: undefined; }
+ .nt3-m { margin-top: undefined; }
+ .nt4-m { margin-top: undefined; }
+ .nt5-m { margin-top: undefined; }
+ .nt6-m { margin-top: undefined; }
+ .nt7-m { margin-top: undefined; }
+}
+@media screen and (min-width: 60em) {
+ .na1-l { margin: undefined; }
+ .na2-l { margin: undefined; }
+ .na3-l { margin: undefined; }
+ .na4-l { margin: undefined; }
+ .na5-l { margin: undefined; }
+ .na6-l { margin: undefined; }
+ .na7-l { margin: undefined; }
+ .nl1-l { margin-left: undefined; }
+ .nl2-l { margin-left: undefined; }
+ .nl3-l { margin-left: undefined; }
+ .nl4-l { margin-left: undefined; }
+ .nl5-l { margin-left: undefined; }
+ .nl6-l { margin-left: undefined; }
+ .nl7-l { margin-left: undefined; }
+ .nr1-l { margin-right: undefined; }
+ .nr2-l { margin-right: undefined; }
+ .nr3-l { margin-right: undefined; }
+ .nr4-l { margin-right: undefined; }
+ .nr5-l { margin-right: undefined; }
+ .nr6-l { margin-right: undefined; }
+ .nr7-l { margin-right: undefined; }
+ .nb1-l { margin-bottom: undefined; }
+ .nb2-l { margin-bottom: undefined; }
+ .nb3-l { margin-bottom: undefined; }
+ .nb4-l { margin-bottom: undefined; }
+ .nb5-l { margin-bottom: undefined; }
+ .nb6-l { margin-bottom: undefined; }
+ .nb7-l { margin-bottom: undefined; }
+ .nt1-l { margin-top: undefined; }
+ .nt2-l { margin-top: undefined; }
+ .nt3-l { margin-top: undefined; }
+ .nt4-l { margin-top: undefined; }
+ .nt5-l { margin-top: undefined; }
+ .nt6-l { margin-top: undefined; }
+ .nt7-l { margin-top: undefined; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-negative-margins/src/tachyons-negative-margins.css b/packages/tachyons-negative-margins/src/tachyons-negative-margins.css
new file mode 100644
index 000000000..0b3e8d30e
--- /dev/null
+++ b/packages/tachyons-negative-margins/src/tachyons-negative-margins.css
@@ -0,0 +1,205 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+ NEGATIVE MARGINS
+
+ Base:
+ n = negative
+
+ Modifiers:
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+
+
+.na1 { margin: -var(--spacing-extra-small); }
+.na2 { margin: -var(--spacing-small); }
+.na3 { margin: -var(--spacing-medium); }
+.na4 { margin: -var(--spacing-large); }
+.na5 { margin: -var(--spacing-extra-large); }
+.na6 { margin: -var(--spacing-extra-extra-large); }
+.na7 { margin: -var(--spacing-extra-extra-extra-large); }
+
+.nl1 { margin-left: -var(--spacing-extra-small); }
+.nl2 { margin-left: -var(--spacing-small); }
+.nl3 { margin-left: -var(--spacing-medium); }
+.nl4 { margin-left: -var(--spacing-large); }
+.nl5 { margin-left: -var(--spacing-extra-large); }
+.nl6 { margin-left: -var(--spacing-extra-extra-large); }
+.nl7 { margin-left: -var(--spacing-extra-extra-extra-large); }
+
+.nr1 { margin-right: -var(--spacing-extra-small); }
+.nr2 { margin-right: -var(--spacing-small); }
+.nr3 { margin-right: -var(--spacing-medium); }
+.nr4 { margin-right: -var(--spacing-large); }
+.nr5 { margin-right: -var(--spacing-extra-large); }
+.nr6 { margin-right: -var(--spacing-extra-extra-large); }
+.nr7 { margin-right: -var(--spacing-extra-extra-extra-large); }
+
+.nb1 { margin-bottom: -var(--spacing-extra-small); }
+.nb2 { margin-bottom: -var(--spacing-small); }
+.nb3 { margin-bottom: -var(--spacing-medium); }
+.nb4 { margin-bottom: -var(--spacing-large); }
+.nb5 { margin-bottom: -var(--spacing-extra-large); }
+.nb6 { margin-bottom: -var(--spacing-extra-extra-large); }
+.nb7 { margin-bottom: -var(--spacing-extra-extra-extra-large); }
+
+.nt1 { margin-top: -var(--spacing-extra-small); }
+.nt2 { margin-top: -var(--spacing-small); }
+.nt3 { margin-top: -var(--spacing-medium); }
+.nt4 { margin-top: -var(--spacing-large); }
+.nt5 { margin-top: -var(--spacing-extra-large); }
+.nt6 { margin-top: -var(--spacing-extra-extra-large); }
+.nt7 { margin-top: -var(--spacing-extra-extra-extra-large); }
+
+@media (--breakpoint-not-small) {
+
+ .na1-ns { margin: -var(--spacing-extra-small); }
+ .na2-ns { margin: -var(--spacing-small); }
+ .na3-ns { margin: -var(--spacing-medium); }
+ .na4-ns { margin: -var(--spacing-large); }
+ .na5-ns { margin: -var(--spacing-extra-large); }
+ .na6-ns { margin: -var(--spacing-extra-extra-large); }
+ .na7-ns { margin: -var(--spacing-extra-extra-extra-large); }
+
+ .nl1-ns { margin-left: -var(--spacing-extra-small); }
+ .nl2-ns { margin-left: -var(--spacing-small); }
+ .nl3-ns { margin-left: -var(--spacing-medium); }
+ .nl4-ns { margin-left: -var(--spacing-large); }
+ .nl5-ns { margin-left: -var(--spacing-extra-large); }
+ .nl6-ns { margin-left: -var(--spacing-extra-extra-large); }
+ .nl7-ns { margin-left: -var(--spacing-extra-extra-extra-large); }
+
+ .nr1-ns { margin-right: -var(--spacing-extra-small); }
+ .nr2-ns { margin-right: -var(--spacing-small); }
+ .nr3-ns { margin-right: -var(--spacing-medium); }
+ .nr4-ns { margin-right: -var(--spacing-large); }
+ .nr5-ns { margin-right: -var(--spacing-extra-large); }
+ .nr6-ns { margin-right: -var(--spacing-extra-extra-large); }
+ .nr7-ns { margin-right: -var(--spacing-extra-extra-extra-large); }
+
+ .nb1-ns { margin-bottom: -var(--spacing-extra-small); }
+ .nb2-ns { margin-bottom: -var(--spacing-small); }
+ .nb3-ns { margin-bottom: -var(--spacing-medium); }
+ .nb4-ns { margin-bottom: -var(--spacing-large); }
+ .nb5-ns { margin-bottom: -var(--spacing-extra-large); }
+ .nb6-ns { margin-bottom: -var(--spacing-extra-extra-large); }
+ .nb7-ns { margin-bottom: -var(--spacing-extra-extra-extra-large); }
+
+ .nt1-ns { margin-top: -var(--spacing-extra-small); }
+ .nt2-ns { margin-top: -var(--spacing-small); }
+ .nt3-ns { margin-top: -var(--spacing-medium); }
+ .nt4-ns { margin-top: -var(--spacing-large); }
+ .nt5-ns { margin-top: -var(--spacing-extra-large); }
+ .nt6-ns { margin-top: -var(--spacing-extra-extra-large); }
+ .nt7-ns { margin-top: -var(--spacing-extra-extra-extra-large); }
+
+}
+
+@media (--breakpoint-medium) {
+ .na1-m { margin: -var(--spacing-extra-small); }
+ .na2-m { margin: -var(--spacing-small); }
+ .na3-m { margin: -var(--spacing-medium); }
+ .na4-m { margin: -var(--spacing-large); }
+ .na5-m { margin: -var(--spacing-extra-large); }
+ .na6-m { margin: -var(--spacing-extra-extra-large); }
+ .na7-m { margin: -var(--spacing-extra-extra-extra-large); }
+
+ .nl1-m { margin-left: -var(--spacing-extra-small); }
+ .nl2-m { margin-left: -var(--spacing-small); }
+ .nl3-m { margin-left: -var(--spacing-medium); }
+ .nl4-m { margin-left: -var(--spacing-large); }
+ .nl5-m { margin-left: -var(--spacing-extra-large); }
+ .nl6-m { margin-left: -var(--spacing-extra-extra-large); }
+ .nl7-m { margin-left: -var(--spacing-extra-extra-extra-large); }
+
+ .nr1-m { margin-right: -var(--spacing-extra-small); }
+ .nr2-m { margin-right: -var(--spacing-small); }
+ .nr3-m { margin-right: -var(--spacing-medium); }
+ .nr4-m { margin-right: -var(--spacing-large); }
+ .nr5-m { margin-right: -var(--spacing-extra-large); }
+ .nr6-m { margin-right: -var(--spacing-extra-extra-large); }
+ .nr7-m { margin-right: -var(--spacing-extra-extra-extra-large); }
+
+ .nb1-m { margin-bottom: -var(--spacing-extra-small); }
+ .nb2-m { margin-bottom: -var(--spacing-small); }
+ .nb3-m { margin-bottom: -var(--spacing-medium); }
+ .nb4-m { margin-bottom: -var(--spacing-large); }
+ .nb5-m { margin-bottom: -var(--spacing-extra-large); }
+ .nb6-m { margin-bottom: -var(--spacing-extra-extra-large); }
+ .nb7-m { margin-bottom: -var(--spacing-extra-extra-extra-large); }
+
+ .nt1-m { margin-top: -var(--spacing-extra-small); }
+ .nt2-m { margin-top: -var(--spacing-small); }
+ .nt3-m { margin-top: -var(--spacing-medium); }
+ .nt4-m { margin-top: -var(--spacing-large); }
+ .nt5-m { margin-top: -var(--spacing-extra-large); }
+ .nt6-m { margin-top: -var(--spacing-extra-extra-large); }
+ .nt7-m { margin-top: -var(--spacing-extra-extra-extra-large); }
+
+}
+
+@media (--breakpoint-large) {
+ .na1-l { margin: -var(--spacing-extra-small); }
+ .na2-l { margin: -var(--spacing-small); }
+ .na3-l { margin: -var(--spacing-medium); }
+ .na4-l { margin: -var(--spacing-large); }
+ .na5-l { margin: -var(--spacing-extra-large); }
+ .na6-l { margin: -var(--spacing-extra-extra-large); }
+ .na7-l { margin: -var(--spacing-extra-extra-extra-large); }
+
+ .nl1-l { margin-left: -var(--spacing-extra-small); }
+ .nl2-l { margin-left: -var(--spacing-small); }
+ .nl3-l { margin-left: -var(--spacing-medium); }
+ .nl4-l { margin-left: -var(--spacing-large); }
+ .nl5-l { margin-left: -var(--spacing-extra-large); }
+ .nl6-l { margin-left: -var(--spacing-extra-extra-large); }
+ .nl7-l { margin-left: -var(--spacing-extra-extra-extra-large); }
+
+ .nr1-l { margin-right: -var(--spacing-extra-small); }
+ .nr2-l { margin-right: -var(--spacing-small); }
+ .nr3-l { margin-right: -var(--spacing-medium); }
+ .nr4-l { margin-right: -var(--spacing-large); }
+ .nr5-l { margin-right: -var(--spacing-extra-large); }
+ .nr6-l { margin-right: -var(--spacing-extra-extra-large); }
+ .nr7-l { margin-right: -var(--spacing-extra-extra-extra-large); }
+
+ .nb1-l { margin-bottom: -var(--spacing-extra-small); }
+ .nb2-l { margin-bottom: -var(--spacing-small); }
+ .nb3-l { margin-bottom: -var(--spacing-medium); }
+ .nb4-l { margin-bottom: -var(--spacing-large); }
+ .nb5-l { margin-bottom: -var(--spacing-extra-large); }
+ .nb6-l { margin-bottom: -var(--spacing-extra-extra-large); }
+ .nb7-l { margin-bottom: -var(--spacing-extra-extra-extra-large); }
+
+ .nt1-l { margin-top: -var(--spacing-extra-small); }
+ .nt2-l { margin-top: -var(--spacing-small); }
+ .nt3-l { margin-top: -var(--spacing-medium); }
+ .nt4-l { margin-top: -var(--spacing-large); }
+ .nt5-l { margin-top: -var(--spacing-extra-large); }
+ .nt6-l { margin-top: -var(--spacing-extra-extra-large); }
+ .nt7-l { margin-top: -var(--spacing-extra-extra-extra-large); }
+}
+
diff --git a/packages/tachyons-opacity/.gitignore b/packages/tachyons-opacity/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-opacity/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-opacity/LICENSE.txt b/packages/tachyons-opacity/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-opacity/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-opacity/css/tachyons-opacity.css b/packages/tachyons-opacity/css/tachyons-opacity.css
new file mode 100644
index 000000000..293ee7926
--- /dev/null
+++ b/packages/tachyons-opacity/css/tachyons-opacity.css
@@ -0,0 +1,19 @@
+/*
+
+ Opacity
+
+*/
+.o-100 { opacity: 1; }
+.o-90 { opacity: .9; }
+.o-80 { opacity: .8; }
+.o-70 { opacity: .7; }
+.o-60 { opacity: .6; }
+.o-50 { opacity: .5; }
+.o-40 { opacity: .4; }
+.o-30 { opacity: .3; }
+.o-20 { opacity: .2; }
+.o-10 { opacity: .1; }
+.o-05 { opacity: .05; }
+.o-025 { opacity: .025; }
+.o-0 { opacity: 0; }
+
diff --git a/packages/tachyons-opacity/css/tachyons-opacity.min.css b/packages/tachyons-opacity/css/tachyons-opacity.min.css
new file mode 100644
index 000000000..38a610237
--- /dev/null
+++ b/packages/tachyons-opacity/css/tachyons-opacity.min.css
@@ -0,0 +1,2 @@
+.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}
+
diff --git a/packages/tachyons-opacity/package.json b/packages/tachyons-opacity/package.json
new file mode 100644
index 000000000..48b7696a4
--- /dev/null
+++ b/packages/tachyons-opacity/package.json
@@ -0,0 +1,39 @@
+{
+ "name": "tachyons-opacity",
+ "description": "Tachyons CSS module for setting opacity",
+ "version": "1.1.3",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-opacity.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "opacity"
+ ],
+ "repository": "tachyons-css/tachyons-opacity",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-opacity.css > css/tachyons-opacity.css",
+ "build:minify": "tachyons src/tachyons-opacity.css --minify > css/tachyons-opacity.min.css",
+ "build:docs": "tachyons src/tachyons-opacity.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "theming",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-opacity/readme.md b/packages/tachyons-opacity/readme.md
new file mode 100644
index 000000000..f821f7926
--- /dev/null
+++ b/packages/tachyons-opacity/readme.md
@@ -0,0 +1,113 @@
+# tachyons-opacity 1.1.3
+
+Tachyons CSS module for setting opacity
+
+#### Stats
+
+122 | 13 | 13
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-opacity
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-opacity
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-opacity.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-opacity";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ Opacity
+
+*/
+.o-100 { opacity: 1; }
+.o-90 { opacity: .9; }
+.o-80 { opacity: .8; }
+.o-70 { opacity: .7; }
+.o-60 { opacity: .6; }
+.o-50 { opacity: .5; }
+.o-40 { opacity: .4; }
+.o-30 { opacity: .3; }
+.o-20 { opacity: .2; }
+.o-10 { opacity: .1; }
+.o-05 { opacity: .05; }
+.o-025 { opacity: .025; }
+.o-0 { opacity: 0; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-opacity/src/tachyons-opacity.css b/packages/tachyons-opacity/src/tachyons-opacity.css
new file mode 100644
index 000000000..3f2a39bbc
--- /dev/null
+++ b/packages/tachyons-opacity/src/tachyons-opacity.css
@@ -0,0 +1,20 @@
+/*
+
+ OPACITY
+ Docs: http://tachyons.io/docs/themes/opacity/
+
+*/
+
+.o-100 { opacity: 1; }
+.o-90 { opacity: .9; }
+.o-80 { opacity: .8; }
+.o-70 { opacity: .7; }
+.o-60 { opacity: .6; }
+.o-50 { opacity: .5; }
+.o-40 { opacity: .4; }
+.o-30 { opacity: .3; }
+.o-20 { opacity: .2; }
+.o-10 { opacity: .1; }
+.o-05 { opacity: .05; }
+.o-025 { opacity: .025; }
+.o-0 { opacity: 0; }
diff --git a/packages/tachyons-outlines/.gitignore b/packages/tachyons-outlines/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-outlines/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-outlines/code-of-conduct.md b/packages/tachyons-outlines/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-outlines/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-outlines/css/tachyons-base.css b/packages/tachyons-outlines/css/tachyons-base.css
new file mode 100644
index 000000000..1b5341668
--- /dev/null
+++ b/packages/tachyons-outlines/css/tachyons-base.css
@@ -0,0 +1,7 @@
+/*
+
+ BASE
+
+*/
+html, body { height: 100%; }
+
diff --git a/packages/tachyons-outlines/css/tachyons-base.min.css b/packages/tachyons-outlines/css/tachyons-base.min.css
new file mode 100644
index 000000000..9d5439b43
--- /dev/null
+++ b/packages/tachyons-outlines/css/tachyons-base.min.css
@@ -0,0 +1,2 @@
+body,html{height:100%}
+
diff --git a/packages/tachyons-outlines/css/tachyons-outlines.css b/packages/tachyons-outlines/css/tachyons-outlines.css
new file mode 100644
index 000000000..58184ab8c
--- /dev/null
+++ b/packages/tachyons-outlines/css/tachyons-outlines.css
@@ -0,0 +1,22 @@
+/*
+
+ OUTLINES
+
+*/
+.outline { outline: 1px solid; }
+.outline-transparent { outline: 1px solid transparent; }
+.outline-0 { outline: 0; }
+@media screen and (min-width: 48em) {
+ .outline-ns { outline: 1px solid; }
+ .outline-transparent-ns { outline: 1px solid transparent; }
+ .outline-0-ns { outline: 0; }
+}
+@media screen and (min-width: 48em) and (max-width: 64em) {
+ .outline-m { outline: 1px solid; }
+ .outline-transparent-m { outline: 1px solid transparent; }
+ .outline-0-m { outline: 0; }
+ .outline-l { outline: 1px solid; }
+ .outline-transparent-l { outline: 1px solid transparent; }
+ .outline-0-l { outline: 0; }
+}
+
diff --git a/packages/tachyons-outlines/css/tachyons-outlines.min.css b/packages/tachyons-outlines/css/tachyons-outlines.min.css
new file mode 100644
index 000000000..aabef56c3
--- /dev/null
+++ b/packages/tachyons-outlines/css/tachyons-outlines.min.css
@@ -0,0 +1,2 @@
+.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}@media screen and (min-width:48em){.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}}@media screen and (min-width:48em) and (max-width:64em){.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}}
+
diff --git a/packages/tachyons-outlines/license b/packages/tachyons-outlines/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-outlines/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-outlines/package.json b/packages/tachyons-outlines/package.json
new file mode 100644
index 000000000..27b69fc05
--- /dev/null
+++ b/packages/tachyons-outlines/package.json
@@ -0,0 +1,29 @@
+{
+ "name": "tachyons-outlines",
+ "description": "Tachyons module for setting outlines",
+ "version": "1.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-outlines.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "base"
+ ],
+ "repository": "tachyons-css/tachyons-base",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^0.6.1"
+ },
+ "scripts": {
+ "start": "tachyons src/tachyons-outlines.css > css/tachyons-outlines.css && tachyons src/tachyons-outlines.css --minify > css/tachyons-outlines.min.css && tachyons src/tachyons-outlines.css --generate-docs --package=../../package.json > readme.md"
+ }
+}
diff --git a/packages/tachyons-outlines/readme.md b/packages/tachyons-outlines/readme.md
new file mode 100644
index 000000000..47c417eef
--- /dev/null
+++ b/packages/tachyons-outlines/readme.md
@@ -0,0 +1,98 @@
+# tachyons-outlines 1.0.0
+
+Tachyons module for setting outlines
+
+#### Stats
+
+189 | 12 | 12
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-outlines
+```
+
+#### With Git
+
+```
+git clone https://github.com/tachyons-css/tachyons-outlines
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-outlines";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ OUTLINES
+
+*/
+.outline { outline: 1px solid; }
+.outline-transparent { outline: 1px solid transparent; }
+.outline-0 { outline: 0; }
+@media screen and (min-width: 48em) {
+ .outline-ns { outline: 1px solid; }
+ .outline-transparent-ns { outline: 1px solid transparent; }
+ .outline-0-ns { outline: 0; }
+}
+@media screen and (min-width: 48em) and (max-width: 64em) {
+ .outline-m { outline: 1px solid; }
+ .outline-transparent-m { outline: 1px solid transparent; }
+ .outline-0-m { outline: 0; }
+ .outline-l { outline: 1px solid; }
+ .outline-transparent-l { outline: 1px solid transparent; }
+ .outline-0-l { outline: 0; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+MIT
+
diff --git a/packages/tachyons-outlines/src/tachyons-outlines.css b/packages/tachyons-outlines/src/tachyons-outlines.css
new file mode 100644
index 000000000..995b2d634
--- /dev/null
+++ b/packages/tachyons-outlines/src/tachyons-outlines.css
@@ -0,0 +1,38 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ OUTLINES
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.outline { outline: 1px solid; }
+.outline-transparent { outline: 1px solid transparent; }
+.outline-0 { outline: 0; }
+
+@media (--breakpoint-not-small) {
+ .outline-ns { outline: 1px solid; }
+ .outline-transparent-ns { outline: 1px solid transparent; }
+ .outline-0-ns { outline: 0; }
+}
+
+@media (--breakpoint-medium) {
+ .outline-m { outline: 1px solid; }
+ .outline-transparent-m { outline: 1px solid transparent; }
+ .outline-0-m { outline: 0; }
+}
+
+@media (--breakpoint-large) {
+ .outline-l { outline: 1px solid; }
+ .outline-transparent-l { outline: 1px solid transparent; }
+ .outline-0-l { outline: 0; }
+}
diff --git a/packages/tachyons-overflow/.gitignore b/packages/tachyons-overflow/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-overflow/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-overflow/LICENSE.txt b/packages/tachyons-overflow/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-overflow/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-overflow/code-of-conduct.md b/packages/tachyons-overflow/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-overflow/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-overflow/css/tachyons-overflow.css b/packages/tachyons-overflow/css/tachyons-overflow.css
new file mode 100644
index 000000000..aa36a36ca
--- /dev/null
+++ b/packages/tachyons-overflow/css/tachyons-overflow.css
@@ -0,0 +1,60 @@
+/*
+
+ OVERFLOW
+
+ */
+.overflow-visible { overflow: visible; }
+.overflow-hidden { overflow: hidden; }
+.overflow-scroll { overflow: scroll; }
+.overflow-auto { overflow: auto; }
+.overflow-x-visible { overflow-x: visible; }
+.overflow-x-hidden { overflow-x: hidden; }
+.overflow-x-scroll { overflow-x: scroll; }
+.overflow-x-auto { overflow-x: auto; }
+.overflow-y-visible { overflow-y: visible; }
+.overflow-y-hidden { overflow-y: hidden; }
+.overflow-y-scroll { overflow-y: scroll; }
+.overflow-y-auto { overflow-y: auto; }
+@media screen and (min-width: 30em) {
+ .overflow-visible-ns { overflow: visible; }
+ .overflow-hidden-ns { overflow: hidden; }
+ .overflow-scroll-ns { overflow: scroll; }
+ .overflow-auto-ns { overflow: auto; }
+ .overflow-x-visible-ns { overflow-x: visible; }
+ .overflow-x-hidden-ns { overflow-x: hidden; }
+ .overflow-x-scroll-ns { overflow-x: scroll; }
+ .overflow-x-auto-ns { overflow-x: auto; }
+ .overflow-y-visible-ns { overflow-y: visible; }
+ .overflow-y-hidden-ns { overflow-y: hidden; }
+ .overflow-y-scroll-ns { overflow-y: scroll; }
+ .overflow-y-auto-ns { overflow-y: auto; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .overflow-visible-m { overflow: visible; }
+ .overflow-hidden-m { overflow: hidden; }
+ .overflow-scroll-m { overflow: scroll; }
+ .overflow-auto-m { overflow: auto; }
+ .overflow-x-visible-m { overflow-x: visible; }
+ .overflow-x-hidden-m { overflow-x: hidden; }
+ .overflow-x-scroll-m { overflow-x: scroll; }
+ .overflow-x-auto-m { overflow-x: auto; }
+ .overflow-y-visible-m { overflow-y: visible; }
+ .overflow-y-hidden-m { overflow-y: hidden; }
+ .overflow-y-scroll-m { overflow-y: scroll; }
+ .overflow-y-auto-m { overflow-y: auto; }
+}
+@media screen and (min-width: 60em) {
+ .overflow-visible-l { overflow: visible; }
+ .overflow-hidden-l { overflow: hidden; }
+ .overflow-scroll-l { overflow: scroll; }
+ .overflow-auto-l { overflow: auto; }
+ .overflow-x-visible-l { overflow-x: visible; }
+ .overflow-x-hidden-l { overflow-x: hidden; }
+ .overflow-x-scroll-l { overflow-x: scroll; }
+ .overflow-x-auto-l { overflow-x: auto; }
+ .overflow-y-visible-l { overflow-y: visible; }
+ .overflow-y-hidden-l { overflow-y: hidden; }
+ .overflow-y-scroll-l { overflow-y: scroll; }
+ .overflow-y-auto-l { overflow-y: auto; }
+}
+
diff --git a/packages/tachyons-overflow/css/tachyons-overflow.min.css b/packages/tachyons-overflow/css/tachyons-overflow.min.css
new file mode 100644
index 000000000..ed748901e
--- /dev/null
+++ b/packages/tachyons-overflow/css/tachyons-overflow.min.css
@@ -0,0 +1,2 @@
+.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em) and (max-width:60em){.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}}
+
diff --git a/packages/tachyons-overflow/package.json b/packages/tachyons-overflow/package.json
new file mode 100644
index 000000000..f689f2213
--- /dev/null
+++ b/packages/tachyons-overflow/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "tachyons-overflow",
+ "version": "4.0.0",
+ "style": "src/tachyons-overflow.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-overflow",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-overflow.css > css/tachyons-overflow.css",
+ "build:minify": "tachyons src/tachyons-overflow.css --minify > css/tachyons-overflow.min.css",
+ "build:docs": "tachyons src/tachyons-overflow.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-overflow/readme.md b/packages/tachyons-overflow/readme.md
new file mode 100644
index 000000000..a2711ee3b
--- /dev/null
+++ b/packages/tachyons-overflow/readme.md
@@ -0,0 +1,154 @@
+# tachyons-overflow 4.0.0
+
+Performance based css module.
+
+#### Stats
+
+347 | 48 | 48
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-overflow
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-overflow
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-overflow.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-overflow";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ OVERFLOW
+
+ */
+.overflow-visible { overflow: visible; }
+.overflow-hidden { overflow: hidden; }
+.overflow-scroll { overflow: scroll; }
+.overflow-auto { overflow: auto; }
+.overflow-x-visible { overflow-x: visible; }
+.overflow-x-hidden { overflow-x: hidden; }
+.overflow-x-scroll { overflow-x: scroll; }
+.overflow-x-auto { overflow-x: auto; }
+.overflow-y-visible { overflow-y: visible; }
+.overflow-y-hidden { overflow-y: hidden; }
+.overflow-y-scroll { overflow-y: scroll; }
+.overflow-y-auto { overflow-y: auto; }
+@media screen and (min-width: 30em) {
+ .overflow-visible-ns { overflow: visible; }
+ .overflow-hidden-ns { overflow: hidden; }
+ .overflow-scroll-ns { overflow: scroll; }
+ .overflow-auto-ns { overflow: auto; }
+ .overflow-x-visible-ns { overflow-x: visible; }
+ .overflow-x-hidden-ns { overflow-x: hidden; }
+ .overflow-x-scroll-ns { overflow-x: scroll; }
+ .overflow-x-auto-ns { overflow-x: auto; }
+ .overflow-y-visible-ns { overflow-y: visible; }
+ .overflow-y-hidden-ns { overflow-y: hidden; }
+ .overflow-y-scroll-ns { overflow-y: scroll; }
+ .overflow-y-auto-ns { overflow-y: auto; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .overflow-visible-m { overflow: visible; }
+ .overflow-hidden-m { overflow: hidden; }
+ .overflow-scroll-m { overflow: scroll; }
+ .overflow-auto-m { overflow: auto; }
+ .overflow-x-visible-m { overflow-x: visible; }
+ .overflow-x-hidden-m { overflow-x: hidden; }
+ .overflow-x-scroll-m { overflow-x: scroll; }
+ .overflow-x-auto-m { overflow-x: auto; }
+ .overflow-y-visible-m { overflow-y: visible; }
+ .overflow-y-hidden-m { overflow-y: hidden; }
+ .overflow-y-scroll-m { overflow-y: scroll; }
+ .overflow-y-auto-m { overflow-y: auto; }
+}
+@media screen and (min-width: 60em) {
+ .overflow-visible-l { overflow: visible; }
+ .overflow-hidden-l { overflow: hidden; }
+ .overflow-scroll-l { overflow: scroll; }
+ .overflow-auto-l { overflow: auto; }
+ .overflow-x-visible-l { overflow-x: visible; }
+ .overflow-x-hidden-l { overflow-x: hidden; }
+ .overflow-x-scroll-l { overflow-x: scroll; }
+ .overflow-x-auto-l { overflow-x: auto; }
+ .overflow-y-visible-l { overflow-y: visible; }
+ .overflow-y-hidden-l { overflow-y: hidden; }
+ .overflow-y-scroll-l { overflow-y: scroll; }
+ .overflow-y-auto-l { overflow-y: auto; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-overflow/src/tachyons-overflow.css b/packages/tachyons-overflow/src/tachyons-overflow.css
new file mode 100644
index 000000000..9bd753b2f
--- /dev/null
+++ b/packages/tachyons-overflow/src/tachyons-overflow.css
@@ -0,0 +1,81 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ OVERFLOW
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+
+.overflow-visible { overflow: visible; }
+.overflow-hidden { overflow: hidden; }
+.overflow-scroll { overflow: scroll; }
+.overflow-auto { overflow: auto; }
+
+.overflow-x-visible { overflow-x: visible; }
+.overflow-x-hidden { overflow-x: hidden; }
+.overflow-x-scroll { overflow-x: scroll; }
+.overflow-x-auto { overflow-x: auto; }
+
+.overflow-y-visible { overflow-y: visible; }
+.overflow-y-hidden { overflow-y: hidden; }
+.overflow-y-scroll { overflow-y: scroll; }
+.overflow-y-auto { overflow-y: auto; }
+
+@media (--breakpoint-not-small) {
+ .overflow-visible-ns { overflow: visible; }
+ .overflow-hidden-ns { overflow: hidden; }
+ .overflow-scroll-ns { overflow: scroll; }
+ .overflow-auto-ns { overflow: auto; }
+ .overflow-x-visible-ns { overflow-x: visible; }
+ .overflow-x-hidden-ns { overflow-x: hidden; }
+ .overflow-x-scroll-ns { overflow-x: scroll; }
+ .overflow-x-auto-ns { overflow-x: auto; }
+
+ .overflow-y-visible-ns { overflow-y: visible; }
+ .overflow-y-hidden-ns { overflow-y: hidden; }
+ .overflow-y-scroll-ns { overflow-y: scroll; }
+ .overflow-y-auto-ns { overflow-y: auto; }
+}
+
+@media (--breakpoint-medium) {
+ .overflow-visible-m { overflow: visible; }
+ .overflow-hidden-m { overflow: hidden; }
+ .overflow-scroll-m { overflow: scroll; }
+ .overflow-auto-m { overflow: auto; }
+
+ .overflow-x-visible-m { overflow-x: visible; }
+ .overflow-x-hidden-m { overflow-x: hidden; }
+ .overflow-x-scroll-m { overflow-x: scroll; }
+ .overflow-x-auto-m { overflow-x: auto; }
+
+ .overflow-y-visible-m { overflow-y: visible; }
+ .overflow-y-hidden-m { overflow-y: hidden; }
+ .overflow-y-scroll-m { overflow-y: scroll; }
+ .overflow-y-auto-m { overflow-y: auto; }
+}
+
+@media (--breakpoint-large) {
+ .overflow-visible-l { overflow: visible; }
+ .overflow-hidden-l { overflow: hidden; }
+ .overflow-scroll-l { overflow: scroll; }
+ .overflow-auto-l { overflow: auto; }
+
+ .overflow-x-visible-l { overflow-x: visible; }
+ .overflow-x-hidden-l { overflow-x: hidden; }
+ .overflow-x-scroll-l { overflow-x: scroll; }
+ .overflow-x-auto-l { overflow-x: auto; }
+
+ .overflow-y-visible-l { overflow-y: visible; }
+ .overflow-y-hidden-l { overflow-y: hidden; }
+ .overflow-y-scroll-l { overflow-y: scroll; }
+ .overflow-y-auto-l { overflow-y: auto; }
+}
diff --git a/packages/tachyons-position/.gitignore b/packages/tachyons-position/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-position/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-position/LICENSE.txt b/packages/tachyons-position/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-position/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-position/code-of-conduct.md b/packages/tachyons-position/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-position/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-position/css/tachyons-position.css b/packages/tachyons-position/css/tachyons-position.css
new file mode 100644
index 000000000..74d9d9e72
--- /dev/null
+++ b/packages/tachyons-position/css/tachyons-position.css
@@ -0,0 +1,28 @@
+/*
+
+ POSITIONING
+
+ */
+.static { position: static; }
+.relative { position: relative; }
+.absolute { position: absolute; }
+.fixed { position: fixed; }
+@media screen and (min-width: 30em) {
+ .static-ns { position: static; }
+ .relative-ns { position: relative; }
+ .absolute-ns { position: absolute; }
+ .fixed-ns { position: fixed; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .static-m { position: static; }
+ .relative-m { position: relative; }
+ .absolute-m { position: absolute; }
+ .fixed-m { position: fixed; }
+}
+@media screen and (min-width: 60em) {
+ .static-l { position: static; }
+ .relative-l { position: relative; }
+ .absolute-l { position: absolute; }
+ .fixed-l { position: fixed; }
+}
+
diff --git a/packages/tachyons-position/css/tachyons-position.min.css b/packages/tachyons-position/css/tachyons-position.min.css
new file mode 100644
index 000000000..f04461b71
--- /dev/null
+++ b/packages/tachyons-position/css/tachyons-position.min.css
@@ -0,0 +1,2 @@
+.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:30em){.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}}@media screen and (min-width:30em) and (max-width:60em){.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}}@media screen and (min-width:60em){.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}}
+
diff --git a/packages/tachyons-position/package.json b/packages/tachyons-position/package.json
new file mode 100644
index 000000000..f9abe942e
--- /dev/null
+++ b/packages/tachyons-position/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-position",
+ "version": "6.0.0",
+ "style": "src/tachyons-position.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-position",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-position.css > css/tachyons-position.css",
+ "build:minify": "tachyons src/tachyons-position.css --minify > css/tachyons-position.min.css",
+ "build:docs": "tachyons src/tachyons-position.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-position/readme.md b/packages/tachyons-position/readme.md
new file mode 100644
index 000000000..b1001422c
--- /dev/null
+++ b/packages/tachyons-position/readme.md
@@ -0,0 +1,122 @@
+# tachyons-position 6.0.0
+
+Performance based css module.
+
+#### Stats
+
+210 | 16 | 16
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-position
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-position
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-position.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-position";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ POSITIONING
+
+ */
+.static { position: static; }
+.relative { position: relative; }
+.absolute { position: absolute; }
+.fixed { position: fixed; }
+@media screen and (min-width: 30em) {
+ .static-ns { position: static; }
+ .relative-ns { position: relative; }
+ .absolute-ns { position: absolute; }
+ .fixed-ns { position: fixed; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .static-m { position: static; }
+ .relative-m { position: relative; }
+ .absolute-m { position: absolute; }
+ .fixed-m { position: fixed; }
+}
+@media screen and (min-width: 60em) {
+ .static-l { position: static; }
+ .relative-l { position: relative; }
+ .absolute-l { position: absolute; }
+ .fixed-l { position: fixed; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-position/src/tachyons-position.css b/packages/tachyons-position/src/tachyons-position.css
new file mode 100644
index 000000000..1a47a4eba
--- /dev/null
+++ b/packages/tachyons-position/src/tachyons-position.css
@@ -0,0 +1,43 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ POSITIONING
+ Docs: http://tachyons.io/docs/layout/position/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.static { position: static; }
+.relative { position: relative; }
+.absolute { position: absolute; }
+.fixed { position: fixed; }
+
+@media (--breakpoint-not-small) {
+ .static-ns { position: static; }
+ .relative-ns { position: relative; }
+ .absolute-ns { position: absolute; }
+ .fixed-ns { position: fixed; }
+}
+
+@media (--breakpoint-medium) {
+ .static-m { position: static; }
+ .relative-m { position: relative; }
+ .absolute-m { position: absolute; }
+ .fixed-m { position: fixed; }
+}
+
+@media (--breakpoint-large) {
+ .static-l { position: static; }
+ .relative-l { position: relative; }
+ .absolute-l { position: absolute; }
+ .fixed-l { position: fixed; }
+}
diff --git a/packages/tachyons-rotations/.gitignore b/packages/tachyons-rotations/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-rotations/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-rotations/code-of-conduct.md b/packages/tachyons-rotations/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-rotations/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-rotations/css/tachyons-rotations.css b/packages/tachyons-rotations/css/tachyons-rotations.css
new file mode 100644
index 000000000..8317a0d0c
--- /dev/null
+++ b/packages/tachyons-rotations/css/tachyons-rotations.css
@@ -0,0 +1,42 @@
+/*
+
+ ROTATIONS
+
+ Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate
+
+*/
+.rotate-45 { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+.rotate-90 { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+.rotate-135 { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+.rotate-180 { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+.rotate-225 { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+.rotate-270 { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+.rotate-315 { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
+@media screen and (min-width: 30em) {
+ .rotate-45-ns { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-ns { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-ns { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-ns { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-ns { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-ns { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-ns { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .rotate-45-m { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-m { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-m { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-m { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-m { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-m { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-m { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
+}
+@media screen and (min-width: 60em) {
+ .rotate-45-l { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-l { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-l { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-l { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-l { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-l { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-l { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
+}
+
diff --git a/packages/tachyons-rotations/css/tachyons-rotations.min.css b/packages/tachyons-rotations/css/tachyons-rotations.min.css
new file mode 100644
index 000000000..49310d12a
--- /dev/null
+++ b/packages/tachyons-rotations/css/tachyons-rotations.min.css
@@ -0,0 +1,2 @@
+.rotate-45{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315{-webkit-transform:rotate(315deg);transform:rotate(315deg)}@media screen and (min-width:30em){.rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}@media screen and (min-width:30em) and (max-width:60em){.rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}@media screen and (min-width:60em){.rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}
+
diff --git a/packages/tachyons-rotations/license b/packages/tachyons-rotations/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-rotations/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-rotations/package-lock.json b/packages/tachyons-rotations/package-lock.json
new file mode 100644
index 000000000..d51415dda
--- /dev/null
+++ b/packages/tachyons-rotations/package-lock.json
@@ -0,0 +1,2088 @@
+{
+ "name": "tachyons-rotations",
+ "version": "1.0.4",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "any-promise": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz",
+ "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ },
+ "author-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-0.2.1.tgz",
+ "integrity": "sha1-i976rGBlqTF5m+wH7u9RuUDgjzw=",
+ "dev": true
+ },
+ "authors-to-markdown": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/authors-to-markdown/-/authors-to-markdown-0.1.0.tgz",
+ "integrity": "sha1-ozgAZCiacl9AzRUhRMIfqjf9Fis=",
+ "dev": true,
+ "requires": {
+ "is-blank": "1.1.0",
+ "normalize-url": "1.9.1",
+ "parse-author": "0.2.2"
+ }
+ },
+ "autoprefixer": {
+ "version": "6.7.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000701",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000701",
+ "electron-to-chromium": "1.3.15"
+ }
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz",
+ "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
+ }
+ },
+ "caniuse-api": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
+ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000701",
+ "lodash.memoize": "4.1.2",
+ "lodash.uniq": "4.5.0"
+ }
+ },
+ "caniuse-db": {
+ "version": "1.0.30000701",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000701.tgz",
+ "integrity": "sha1-LjKwaZO/Pb2QtD2T8E4m0Rr93Lo=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "clap": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz",
+ "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3"
+ }
+ },
+ "class-repeat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/class-repeat/-/class-repeat-1.0.1.tgz",
+ "integrity": "sha1-knNYMP7Dp7IdkPmMn4CEeZ0kPSg=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4",
+ "get-css-classes": "1.1.0",
+ "has-class-selector": "1.0.0",
+ "is-present": "1.0.0"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+ "dev": true
+ },
+ "coa": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "color": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
+ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
+ "dev": true,
+ "requires": {
+ "clone": "1.0.2",
+ "color-convert": "1.9.0",
+ "color-string": "0.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.2"
+ }
+ },
+ "color-name": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz",
+ "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.2"
+ }
+ },
+ "colormin": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
+ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
+ "dev": true,
+ "requires": {
+ "color": "0.11.4",
+ "css-color-names": "0.0.4",
+ "has": "1.0.1"
+ },
+ "dependencies": {
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ }
+ }
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "comment-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/comment-regex/-/comment-regex-1.0.0.tgz",
+ "integrity": "sha1-fdcCaMg2SKnEzBm/Ry1S5k9jkY0=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "copy-files": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/copy-files/-/copy-files-0.1.0.tgz",
+ "integrity": "sha1-+jg4XcBH74gZPBxhtqJTqKQn8RY=",
+ "dev": true,
+ "requires": {
+ "async": "0.9.2",
+ "lodash": "2.4.2",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ }
+ }
+ },
+ "css-color-converter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-color-converter/-/css-color-converter-1.1.0.tgz",
+ "integrity": "sha1-wufZPC6WyK2Msax6Hy5J2AUq3jY=",
+ "dev": true,
+ "requires": {
+ "color-convert": "0.5.3",
+ "color-name": "1.1.2"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
+ "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
+ "dev": true
+ }
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.1.tgz",
+ "integrity": "sha1-XQVI+iVkVu3kqaDCrHqxnT6xrYE=",
+ "dev": true
+ },
+ "css-mqpacker": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/css-mqpacker/-/css-mqpacker-5.0.1.tgz",
+ "integrity": "sha1-by1iJSYj/Xwzpo4biNwTcMiFkh4=",
+ "dev": true,
+ "requires": {
+ "minimist": "1.2.0",
+ "postcss": "5.2.17"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1",
+ "regexpu-core": "1.0.0"
+ }
+ },
+ "css-shorthand-expand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-shorthand-expand/-/css-shorthand-expand-1.1.0.tgz",
+ "integrity": "sha1-EC9yhsvTI3VDC1hJ1OL+o6oh6mQ=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "0.0.1",
+ "css-url-regex": "0.0.1",
+ "hex-color-regex": "1.1.0",
+ "hsl-regex": "1.0.0",
+ "hsla-regex": "1.0.0",
+ "map-obj": "1.0.1",
+ "repeat-element": "1.1.2",
+ "rgb-regex": "1.0.1",
+ "rgba-regex": "1.0.0",
+ "xtend": "4.0.1"
+ }
+ },
+ "css-shorthand-properties": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.0.0.tgz",
+ "integrity": "sha1-VnvmcRA2ebmqBaSBVeUUdLJ1h38=",
+ "dev": true
+ },
+ "css-unit-converter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
+ "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
+ "dev": true
+ },
+ "css-url-regex": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-0.0.1.tgz",
+ "integrity": "sha1-4Fr4xsKQ1FHvFjK0VepcgbSxOVw=",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
+ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "decamelize": "1.2.0",
+ "defined": "1.0.0",
+ "has": "1.0.1",
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-calc": "5.3.1",
+ "postcss-colormin": "2.2.2",
+ "postcss-convert-values": "2.6.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-discard-duplicates": "2.1.0",
+ "postcss-discard-empty": "2.1.0",
+ "postcss-discard-overridden": "0.1.1",
+ "postcss-discard-unused": "2.2.3",
+ "postcss-filter-plugins": "2.0.2",
+ "postcss-merge-idents": "2.1.7",
+ "postcss-merge-longhand": "2.0.2",
+ "postcss-merge-rules": "2.1.2",
+ "postcss-minify-font-values": "1.0.5",
+ "postcss-minify-gradients": "1.0.5",
+ "postcss-minify-params": "1.2.2",
+ "postcss-minify-selectors": "2.1.1",
+ "postcss-normalize-charset": "1.1.1",
+ "postcss-normalize-url": "3.0.8",
+ "postcss-ordered-values": "2.2.3",
+ "postcss-reduce-idents": "2.4.0",
+ "postcss-reduce-initial": "1.0.1",
+ "postcss-reduce-transforms": "1.0.4",
+ "postcss-svgo": "2.1.6",
+ "postcss-unique-selectors": "2.0.2",
+ "postcss-value-parser": "3.3.0",
+ "postcss-zindex": "2.2.0"
+ }
+ },
+ "csso": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
+ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+ "dev": true,
+ "requires": {
+ "clap": "1.2.0",
+ "source-map": "0.5.6"
+ }
+ },
+ "cssstats": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cssstats/-/cssstats-3.1.0.tgz",
+ "integrity": "sha512-zLG+H8tyLITS5uYUu8MVtS0wUU7XhV1298CgF62wWLm/xfJIbbE7WlrIfXtgLWk929/cfrCidSkCpYJrlqsJ/g==",
+ "dev": true,
+ "requires": {
+ "bytes": "2.5.0",
+ "css-selector-tokenizer": "0.7.0",
+ "css-shorthand-expand": "1.1.0",
+ "gzip-size": "3.0.0",
+ "has-class-selector": "1.0.0",
+ "has-element-selector": "1.0.0",
+ "has-id-selector": "1.0.0",
+ "has-pseudo-class": "1.0.1",
+ "has-pseudo-element": "1.0.0",
+ "is-blank": "1.1.0",
+ "is-css-shorthand": "1.0.1",
+ "is-present": "1.0.0",
+ "is-vendor-prefixed": "0.0.1",
+ "lodash": "4.17.4",
+ "postcss": "5.2.17",
+ "postcss-safe-parser": "2.0.1",
+ "specificity": "0.3.1"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "1.0.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "dev": true
+ },
+ "detect-newline": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz",
+ "integrity": "sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.15",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz",
+ "integrity": "sha1-CDl5NIkcvPrrvRi4KpW1pIETg2k=",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "exec-sh": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
+ "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
+ "dev": true,
+ "requires": {
+ "merge": "1.2.0"
+ }
+ },
+ "extend": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz",
+ "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=",
+ "dev": true
+ },
+ "extend-options": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/extend-options/-/extend-options-0.0.1.tgz",
+ "integrity": "sha1-6TyDMSQ4wTVl5k7Cts6GqYKd0Xs=",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+ "dev": true
+ },
+ "file-exists": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-exists/-/file-exists-2.0.0.tgz",
+ "integrity": "sha1-okFQZlFQ5i1VvFRJKB2I0rCBDco=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
+ "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
+ "dev": true
+ },
+ "gather-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz",
+ "integrity": "sha1-szmUr0V6gRVwDUEPMXczy+egkEs=",
+ "dev": true
+ },
+ "get-css-classes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-css-classes/-/get-css-classes-1.1.0.tgz",
+ "integrity": "sha1-W0Tqihks7OdWfARXRjOpKqRJF7M=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4",
+ "lodash": "4.17.4"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "gzip-size": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
+ "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
+ },
+ "has": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "dev": true,
+ "requires": {
+ "function-bind": "1.1.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-class-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-class-selector/-/has-class-selector-1.0.0.tgz",
+ "integrity": "sha1-p79Rvs3C133/JQkgPtafNEUODC0=",
+ "dev": true
+ },
+ "has-element-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-element-selector/-/has-element-selector-1.0.0.tgz",
+ "integrity": "sha1-JohCJeEjQ36N+WBMATWB0p0ZC5c=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "has-id-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-id-selector/-/has-id-selector-1.0.0.tgz",
+ "integrity": "sha1-1BtC6SKFhub+xWZyjOszqucay0U=",
+ "dev": true
+ },
+ "has-pseudo-class": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-pseudo-class/-/has-pseudo-class-1.0.1.tgz",
+ "integrity": "sha1-Bj7cjp9ZRpdq9P9OuzLDMNVW4Ac=",
+ "dev": true,
+ "requires": {
+ "pseudo-classes": "0.0.1"
+ }
+ },
+ "has-pseudo-element": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-pseudo-element/-/has-pseudo-element-1.0.0.tgz",
+ "integrity": "sha1-NMoZEgHAFDcJ9CtLc/HcY7dg8D8=",
+ "dev": true,
+ "requires": {
+ "pseudo-elements": "1.0.0"
+ }
+ },
+ "hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
+ "dev": true
+ },
+ "hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+ "dev": true
+ },
+ "hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
+ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+ "dev": true
+ },
+ "immutable-css": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/immutable-css/-/immutable-css-1.1.2.tgz",
+ "integrity": "sha1-RBUWYyKpPVAPrPJoocf5Bw/0YYo=",
+ "dev": true,
+ "requires": {
+ "extend-options": "0.0.1",
+ "file-exists": "0.1.1",
+ "get-css-classes": "1.1.0",
+ "glob": "5.0.15",
+ "has-class-selector": "1.0.0",
+ "is-css": "1.0.0",
+ "meow": "3.7.0",
+ "postcss": "5.2.17",
+ "specificity": "0.1.6"
+ },
+ "dependencies": {
+ "file-exists": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/file-exists/-/file-exists-0.1.1.tgz",
+ "integrity": "sha1-mT0//7W0nRH+/Mj0XCNVAnRAgDw=",
+ "dev": true
+ },
+ "specificity": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.1.6.tgz",
+ "integrity": "sha1-qlAQSPluaUhd3JXvn3pbd/ASMqo=",
+ "dev": true
+ }
+ }
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-blank": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-blank/-/is-blank-1.1.0.tgz",
+ "integrity": "sha1-knTdvUY2PLdnB1w4XUq4jGpk3Bc=",
+ "dev": true,
+ "requires": {
+ "is-empty": "0.0.1",
+ "is-whitespace": "0.3.0"
+ }
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-css": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-css/-/is-css-1.0.0.tgz",
+ "integrity": "sha1-nE7hEQaR4Kffnl5qp4Frrj1SbTg=",
+ "dev": true
+ },
+ "is-css-shorthand": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-css-shorthand/-/is-css-shorthand-1.0.1.tgz",
+ "integrity": "sha1-MPldAyEGBf7f3RKOU9rEpEN6kzw=",
+ "dev": true,
+ "requires": {
+ "css-shorthand-properties": "1.0.0"
+ }
+ },
+ "is-empty": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-0.0.1.tgz",
+ "integrity": "sha1-Cf3D1kndpZaRVsCFOpt2vXgcWjM=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-present": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-present/-/is-present-1.0.0.tgz",
+ "integrity": "sha1-Kcm46ObnhqWUwpL8cjmqJL5wuAw=",
+ "dev": true,
+ "requires": {
+ "is-blank": "1.0.0"
+ },
+ "dependencies": {
+ "is-blank": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-blank/-/is-blank-1.0.0.tgz",
+ "integrity": "sha1-YOOb60H5LDsnrLtQKcsPKfmD7mc=",
+ "dev": true,
+ "requires": {
+ "is-empty": "0.0.1",
+ "is-whitespace": "0.3.0"
+ }
+ }
+ }
+ },
+ "is-svg": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
+ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "1.1.1"
+ }
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-vendor-prefixed": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/is-vendor-prefixed/-/is-vendor-prefixed-0.0.1.tgz",
+ "integrity": "sha1-Bc8NhTxidNf7K/htU+EHgguca0Q=",
+ "dev": true,
+ "requires": {
+ "vendor-prefixes": "0.0.1"
+ }
+ },
+ "is-whitespace": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz",
+ "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=",
+ "dev": true
+ },
+ "js-base64": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
+ "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "2.7.3"
+ }
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "macaddress": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz",
+ "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "math-expression-evaluator": {
+ "version": "1.2.17",
+ "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
+ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
+ "dev": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.4.0",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "merge": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
+ "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "2.5.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.3.0",
+ "validate-npm-package-license": "3.0.1"
+ }
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "prepend-http": "1.0.4",
+ "query-string": "4.3.4",
+ "sort-keys": "1.1.2"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "parse-author": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-0.2.2.tgz",
+ "integrity": "sha1-MC0bjkxmUZ0cRd2VED0zKMRJjv0=",
+ "dev": true,
+ "requires": {
+ "author-regex": "0.2.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "perfectionist": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/perfectionist/-/perfectionist-2.4.0.tgz",
+ "integrity": "sha1-wUetNxThJkZ/F2QSnuct+GHUfqA=",
+ "dev": true,
+ "requires": {
+ "comment-regex": "1.0.0",
+ "defined": "1.0.0",
+ "minimist": "1.2.0",
+ "postcss": "5.2.17",
+ "postcss-scss": "0.3.1",
+ "postcss-value-parser": "3.3.0",
+ "read-file-stdin": "0.2.1",
+ "string.prototype.repeat": "0.2.0",
+ "vendors": "1.0.1",
+ "write-file-stdout": "0.0.2"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "postcss": {
+ "version": "5.2.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
+ "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.1.9",
+ "source-map": "0.5.6",
+ "supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-message-helpers": "2.0.0",
+ "reduce-css-calc": "1.3.0"
+ }
+ },
+ "postcss-class-repeat": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-class-repeat/-/postcss-class-repeat-0.1.0.tgz",
+ "integrity": "sha1-+2zO0SqdmPhZ9HTYGItmbm2oe04=",
+ "dev": true,
+ "requires": {
+ "class-repeat": "1.0.1",
+ "has-class-selector": "1.0.0",
+ "is-present": "1.0.0",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-colormin": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
+ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
+ "dev": true,
+ "requires": {
+ "colormin": "1.1.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-conditionals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-conditionals/-/postcss-conditionals-2.1.0.tgz",
+ "integrity": "sha1-TR9iqlQEWM56t3n3FlaQHI+Okpo=",
+ "dev": true,
+ "requires": {
+ "css-color-converter": "1.1.0",
+ "css-unit-converter": "1.1.1",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
+ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-css-variables": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/postcss-css-variables/-/postcss-css-variables-0.7.0.tgz",
+ "integrity": "sha1-SqWO6zyFmm8JCQE6sXvspWZSh/0=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "extend": "2.0.1",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-custom-media": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz",
+ "integrity": "sha1-E40loYS/LrVN4S1VpsAcMKnYvYE=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
+ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
+ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
+ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
+ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-unused": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
+ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-filter-plugins": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
+ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "uniqid": "4.1.1"
+ }
+ },
+ "postcss-import": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-9.1.0.tgz",
+ "integrity": "sha1-lf6YdqHnmvSfvcNYnwH+WqfMHoA=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "promise-each": "2.2.0",
+ "read-cache": "1.0.0",
+ "resolve": "1.3.3"
+ }
+ },
+ "postcss-merge-idents": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-api": "1.6.1",
+ "postcss": "5.2.17",
+ "postcss-selector-parser": "2.2.3",
+ "vendors": "1.0.1"
+ }
+ },
+ "postcss-message-helpers": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+ "dev": true
+ },
+ "postcss-minify-font-values": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-selector-parser": "2.2.3"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "2.1.0",
+ "normalize-url": "1.9.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
+ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-safe-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-2.0.1.tgz",
+ "integrity": "sha1-Oz0cS0OiTDlC4vC+eWE4KzSLOxM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-scss": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-0.3.1.tgz",
+ "integrity": "sha1-ZcYQ2OKn7g5isYNbcbiHBzSBbks=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+ "dev": true,
+ "requires": {
+ "flatten": "1.0.2",
+ "indexes-of": "1.0.1",
+ "uniq": "1.0.1"
+ }
+ },
+ "postcss-svgo": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
+ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
+ "dev": true,
+ "requires": {
+ "is-svg": "2.1.0",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "svgo": "0.7.2"
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
+ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
+ "dev": true
+ },
+ "postcss-zindex": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
+ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "promise-each": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz",
+ "integrity": "sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=",
+ "dev": true,
+ "requires": {
+ "any-promise": "0.1.0"
+ }
+ },
+ "pseudo-classes": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pseudo-classes/-/pseudo-classes-0.0.1.tgz",
+ "integrity": "sha1-3smD2Upo0D3f3vPwfESvn2wiOls=",
+ "dev": true
+ },
+ "pseudo-elements": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pseudo-elements/-/pseudo-elements-1.0.0.tgz",
+ "integrity": "sha1-S+YMvNhJlpKh1yz90+WDnautFhg=",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
+ "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
+ "dev": true
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "strict-uri-encode": "1.1.0"
+ }
+ },
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-file-stdin": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz",
+ "integrity": "sha1-JezP86FTtoCa+ssj7hU4fbng7mE=",
+ "dev": true,
+ "requires": {
+ "gather-stream": "1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
+ }
+ },
+ "reduce-css-calc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
+ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2",
+ "math-expression-evaluator": "1.2.17",
+ "reduce-function-call": "1.0.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "reduce-function-call": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
+ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "regenerate": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
+ "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "1.3.2",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "resolve": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
+ "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
+ "dev": true,
+ "requires": {
+ "path-parse": "1.0.5"
+ }
+ },
+ "rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+ "dev": true
+ },
+ "rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+ "dev": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "single-trailing-newline": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz",
+ "integrity": "sha1-gfCtKtZFGBlFyAlSpcFBSZLulmQ=",
+ "dev": true,
+ "requires": {
+ "detect-newline": "1.0.3"
+ }
+ },
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "1.1.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "1.2.2"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+ "dev": true
+ },
+ "specificity": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.1.tgz",
+ "integrity": "sha1-8bBoQkzjF64HR42V3jwhz4Xo1Wc=",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
+ "string.prototype.repeat": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz",
+ "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "svgo": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
+ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+ "dev": true,
+ "requires": {
+ "coa": "1.0.4",
+ "colors": "1.1.2",
+ "csso": "2.3.2",
+ "js-yaml": "3.7.0",
+ "mkdirp": "0.5.1",
+ "sax": "1.2.4",
+ "whet.extend": "0.9.9"
+ }
+ },
+ "tachyons-build-css": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/tachyons-build-css/-/tachyons-build-css-1.3.0.tgz",
+ "integrity": "sha1-6puM9/juxtSZLNQEh4hK21hqlc4=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "css-mqpacker": "5.0.1",
+ "cssnano": "3.10.0",
+ "perfectionist": "2.4.0",
+ "postcss": "5.2.17",
+ "postcss-class-repeat": "0.1.0",
+ "postcss-conditionals": "2.1.0",
+ "postcss-css-variables": "0.7.0",
+ "postcss-custom-media": "5.0.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-import": "9.1.0"
+ }
+ },
+ "tachyons-cli": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/tachyons-cli/-/tachyons-cli-1.0.11.tgz",
+ "integrity": "sha1-tkNEPkS63Ca7c5K6Veb3QB6Hsvs=",
+ "dev": true,
+ "requires": {
+ "authors-to-markdown": "0.1.0",
+ "chalk": "1.1.3",
+ "copy-files": "0.1.0",
+ "css-mqpacker": "5.0.1",
+ "cssstats": "3.1.0",
+ "file-exists": "2.0.0",
+ "immutable-css": "1.1.2",
+ "is-blank": "1.1.0",
+ "is-present": "1.0.0",
+ "lodash": "4.17.4",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "single-trailing-newline": "1.0.0",
+ "tachyons-build-css": "1.3.0"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqid": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
+ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
+ "dev": true,
+ "requires": {
+ "macaddress": "0.2.8"
+ }
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "1.0.2",
+ "spdx-expression-parse": "1.0.4"
+ }
+ },
+ "vendor-prefixes": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/vendor-prefixes/-/vendor-prefixes-0.0.1.tgz",
+ "integrity": "sha1-mLQ2f4y3CZIw78IOBA9UrtAY0G0=",
+ "dev": true
+ },
+ "vendors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
+ "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
+ "dev": true
+ },
+ "watch": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz",
+ "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=",
+ "dev": true,
+ "requires": {
+ "exec-sh": "0.2.0",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "whet.extend": {
+ "version": "0.9.9",
+ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write-file-stdout": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-stdout/-/write-file-stdout-0.0.2.tgz",
+ "integrity": "sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ }
+ }
+}
diff --git a/packages/tachyons-rotations/package.json b/packages/tachyons-rotations/package.json
new file mode 100644
index 000000000..619567e4d
--- /dev/null
+++ b/packages/tachyons-rotations/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "tachyons-rotations",
+ "description": "Css for setting the rotation of an element.",
+ "version": "1.0.4",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-rotations.css",
+ "main": "src/tachyons-rotations.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "base"
+ ],
+ "repository": "tachyons-css/tachyons-rotations",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.11",
+ "watch": "^1.0.2"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-rotations.css > css/tachyons-rotations.css",
+ "build:minify": "tachyons src/tachyons-rotations.css --minify > css/tachyons-rotations.min.css",
+ "build:docs": "tachyons src/tachyons-rotations.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-rotations/readme.md b/packages/tachyons-rotations/readme.md
new file mode 100644
index 000000000..019759d85
--- /dev/null
+++ b/packages/tachyons-rotations/readme.md
@@ -0,0 +1,136 @@
+# tachyons-rotations 1.0.4
+
+Css for setting the rotation of an element.
+
+#### Stats
+
+363 | 28 | 56
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-rotations
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-rotations
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-rotations.git
+```
+
+## Usage
+
+#### Using with [Postcss](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-rotations";
+```
+
+Then process the css using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the css
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built css is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source css files can be found in the `src` directory.
+Running `$ npm start` will process the source css and place the built css in the `css` directory.
+
+## The css
+
+```css
+/*
+
+ ROTATIONS
+
+ Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate
+
+*/
+.rotate-45 { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+.rotate-90 { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+.rotate-135 { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+.rotate-180 { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+.rotate-225 { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+.rotate-270 { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+.rotate-315 { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
+@media screen and (min-width: 30em) {
+ .rotate-45-ns { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-ns { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-ns { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-ns { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-ns { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-ns { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-ns { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .rotate-45-m { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-m { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-m { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-m { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-m { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-m { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-m { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
+}
+@media screen and (min-width: 60em) {
+ .rotate-45-l { -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); }
+ .rotate-90-l { -webkit-transform: rotate( 90deg ); transform: rotate( 90deg ); }
+ .rotate-135-l { -webkit-transform: rotate( 135deg ); transform: rotate( 135deg ); }
+ .rotate-180-l { -webkit-transform: rotate( 180deg ); transform: rotate( 180deg ); }
+ .rotate-225-l { -webkit-transform: rotate( 225deg ); transform: rotate( 225deg ); }
+ .rotate-270-l { -webkit-transform: rotate( 270deg ); transform: rotate( 270deg ); }
+ .rotate-315-l { -webkit-transform: rotate( 315deg ); transform: rotate( 315deg ); }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-rotations/src/tachyons-rotations.css b/packages/tachyons-rotations/src/tachyons-rotations.css
new file mode 100644
index 000000000..39fadac10
--- /dev/null
+++ b/packages/tachyons-rotations/src/tachyons-rotations.css
@@ -0,0 +1,49 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ ROTATIONS
+
+*/
+
+.rotate-45 { transform: rotate(45deg); }
+.rotate-90 { transform: rotate(90deg); }
+.rotate-135 { transform: rotate(135deg); }
+.rotate-180 { transform: rotate(180deg); }
+.rotate-225 { transform: rotate(225deg); }
+.rotate-270 { transform: rotate(270deg); }
+.rotate-315 { transform: rotate(315deg); }
+
+@media (--breakpoint-not-small){
+ .rotate-45-ns { transform: rotate(45deg); }
+ .rotate-90-ns { transform: rotate(90deg); }
+ .rotate-135-ns { transform: rotate(135deg); }
+ .rotate-180-ns { transform: rotate(180deg); }
+ .rotate-225-ns { transform: rotate(225deg); }
+ .rotate-270-ns { transform: rotate(270deg); }
+ .rotate-315-ns { transform: rotate(315deg); }
+}
+
+@media (--breakpoint-medium){
+ .rotate-45-m { transform: rotate(45deg); }
+ .rotate-90-m { transform: rotate(90deg); }
+ .rotate-135-m { transform: rotate(135deg); }
+ .rotate-180-m { transform: rotate(180deg); }
+ .rotate-225-m { transform: rotate(225deg); }
+ .rotate-270-m { transform: rotate(270deg); }
+ .rotate-315-m { transform: rotate(315deg); }
+}
+
+@media (--breakpoint-large){
+ .rotate-45-l { transform: rotate(45deg); }
+ .rotate-90-l { transform: rotate(90deg); }
+ .rotate-135-l { transform: rotate(135deg); }
+ .rotate-180-l { transform: rotate(180deg); }
+ .rotate-225-l { transform: rotate(225deg); }
+ .rotate-270-l { transform: rotate(270deg); }
+ .rotate-315-l { transform: rotate(315deg); }
+}
diff --git a/packages/tachyons-skins-pseudo/.gitignore b/packages/tachyons-skins-pseudo/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-skins-pseudo/code-of-conduct.md b/packages/tachyons-skins-pseudo/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-skins-pseudo/css/tachyons-skins-pseudo.css b/packages/tachyons-skins-pseudo/css/tachyons-skins-pseudo.css
new file mode 100644
index 000000000..9a5b5848f
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/css/tachyons-skins-pseudo.css
@@ -0,0 +1,166 @@
+/*
+
+ Tachyons
+ COLOR VARIABLES
+
+ Grayscale
+ - Solids
+ - Transparencies
+ Colors
+
+*/
+/*
+
+ SKINS:PSEUDO
+
+ Customize the color of an element when
+ it is focused or hovered over.
+
+ */
+.hover-black:hover { color: #000; }
+.hover-black:focus { color: #000; }
+.hover-near-black:hover { color: #111; }
+.hover-near-black:focus { color: #111; }
+.hover-dark-gray:hover { color: #333; }
+.hover-dark-gray:focus { color: #333; }
+.hover-mid-gray:hover { color: #555; }
+.hover-mid-gray:focus { color: #555; }
+.hover-gray:hover { color: #777; }
+.hover-gray:focus { color: #777; }
+.hover-silver:hover { color: #999; }
+.hover-silver:focus { color: #999; }
+.hover-light-silver:hover { color: #aaa; }
+.hover-light-silver:focus { color: #aaa; }
+.hover-moon-gray:hover { color: #ccc; }
+.hover-moon-gray:focus { color: #ccc; }
+.hover-light-gray:hover { color: #eee; }
+.hover-light-gray:focus { color: #eee; }
+.hover-near-white:hover { color: #f4f4f4; }
+.hover-near-white:focus { color: #f4f4f4; }
+.hover-white:hover { color: #fff; }
+.hover-white:focus { color: #fff; }
+.hover-bg-black:hover { background-color: #000; }
+.hover-bg-black:focus { background-color: #000; }
+.hover-bg-near-black:hover { background-color: #111; }
+.hover-bg-near-black:focus { background-color: #111; }
+.hover-bg-dark-gray:hover { background-color: #333; }
+.hover-bg-dark-gray:focus { background-color: #333; }
+.hover-bg-dark-gray:focus { background-color: #555; }
+.hover-bg-mid-gray:hover { background-color: #555; }
+.hover-bg-gray:hover { background-color: #777; }
+.hover-bg-gray:focus { background-color: #777; }
+.hover-bg-silver:hover { background-color: #999; }
+.hover-bg-silver:focus { background-color: #999; }
+.hover-bg-light-silver:hover { background-color: #aaa; }
+.hover-bg-light-silver:focus { background-color: #aaa; }
+.hover-bg-moon-gray:hover { background-color: #ccc; }
+.hover-bg-moon-gray:focus { background-color: #ccc; }
+.hover-bg-light-gray:hover { background-color: #eee; }
+.hover-bg-light-gray:focus { background-color: #eee; }
+.hover-bg-near-white:hover { background-color: #f4f4f4; }
+.hover-bg-near-white:focus { background-color: #f4f4f4; }
+.hover-bg-white:hover { background-color: #fff; }
+.hover-bg-white:focus { background-color: #fff; }
+.hover-bg-transparent:hover { background-color: transparent; }
+.hover-bg-transparent:focus { background-color: transparent; }
+.hover-dark-red:hover { color: #e7040f; }
+.hover-dark-red:focus { color: #e7040f; }
+.hover-red:hover { color: #ff4136; }
+.hover-red:focus { color: #ff4136; }
+.hover-light-red:hover { color: #ff725c; }
+.hover-light-red:focus { color: #ff725c; }
+.hover-orange:hover { color: #ff6300; }
+.hover-orange:focus { color: #ff6300; }
+.hover-gold:hover { color: #ffb700; }
+.hover-gold:focus { color: #ffb700; }
+.hover-yellow:hover { color: #ffd700; }
+.hover-yellow:focus { color: #ffd700; }
+.hover-light-yellow:hover { color: #fbf1a9; }
+.hover-light-yellow:focus { color: #fbf1a9; }
+.hover-purple:hover { color: #5e2ca5; }
+.hover-purple:focus { color: #5e2ca5; }
+.hover-light-purple:hover { color: #a463f2; }
+.hover-light-purple:focus { color: #a463f2; }
+.hover-dark-pink:hover { color: #d5008f; }
+.hover-dark-pink:focus { color: #d5008f; }
+.hover-hot-pink:hover { color: #ff41b4; }
+.hover-hot-pink:focus { color: #ff41b4; }
+.hover-pink:hover { color: #ff80cc; }
+.hover-pink:focus { color: #ff80cc; }
+.hover-light-pink:hover { color: #ffa3d7; }
+.hover-light-pink:focus { color: #ffa3d7; }
+.hover-dark-green:hover { color: #137752; }
+.hover-dark-green:focus { color: #137752; }
+.hover-green:hover { color: #19a974; }
+.hover-green:focus { color: #19a974; }
+.hover-light-green:hover { color: #9eebcf; }
+.hover-light-green:focus { color: #9eebcf; }
+.hover-navy:hover { color: #001b44; }
+.hover-navy:focus { color: #001b44; }
+.hover-dark-blue:hover { color: #00449e; }
+.hover-dark-blue:focus { color: #00449e; }
+.hover-blue:hover { color: #357edd; }
+.hover-blue:focus { color: #357edd; }
+.hover-light-blue:hover { color: #96ccff; }
+.hover-light-blue:focus { color: #96ccff; }
+.hover-lightest-blue:hover { color: #cdecff; }
+.hover-lightest-blue:focus { color: #cdecff; }
+.hover-washed-blue:hover { color: #f6fffe; }
+.hover-washed-blue:focus { color: #f6fffe; }
+.hover-washed-green:hover { color: #e8fdf5; }
+.hover-washed-green:focus { color: #e8fdf5; }
+.hover-washed-yellow:hover { color: #fffceb; }
+.hover-washed-yellow:focus { color: #fffceb; }
+.hover-washed-red:hover { color: #ffdfdf; }
+.hover-washed-red:focus { color: #ffdfdf; }
+.hover-bg-dark-red:hover { background-color: #e7040f; }
+.hover-bg-dark-red:focus { background-color: #e7040f; }
+.hover-bg-red:hover { background-color: #ff4136; }
+.hover-bg-red:focus { background-color: #ff4136; }
+.hover-bg-light-red:hover { background-color: #ff725c; }
+.hover-bg-light-red:focus { background-color: #ff725c; }
+.hover-bg-orange:hover { background-color: #ff6300; }
+.hover-bg-orange:focus { background-color: #ff6300; }
+.hover-bg-gold:hover { background-color: #ffb700; }
+.hover-bg-gold:focus { background-color: #ffb700; }
+.hover-bg-yellow:hover { background-color: #ffd700; }
+.hover-bg-yellow:focus { background-color: #ffd700; }
+.hover-bg-light-yellow:hover { background-color: #fbf1a9; }
+.hover-bg-light-yellow:focus { background-color: #fbf1a9; }
+.hover-bg-purple:hover { background-color: #5e2ca5; }
+.hover-bg-purple:focus { background-color: #5e2ca5; }
+.hover-bg-light-purple:hover { background-color: #a463f2; }
+.hover-bg-light-purple:focus { background-color: #a463f2; }
+.hover-bg-dark-pink:hover { background-color: #d5008f; }
+.hover-bg-dark-pink:focus { background-color: #d5008f; }
+.hover-bg-hot-pink:hover { background-color: #ff41b4; }
+.hover-bg-hot-pink:focus { background-color: #ff41b4; }
+.hover-bg-pink:hover { background-color: #ff80cc; }
+.hover-bg-pink:focus { background-color: #ff80cc; }
+.hover-bg-light-pink:hover { background-color: #ffa3d7; }
+.hover-bg-light-pink:focus { background-color: #ffa3d7; }
+.hover-bg-dark-green:hover { background-color: #137752; }
+.hover-bg-dark-green:focus { background-color: #137752; }
+.hover-bg-green:hover { background-color: #19a974; }
+.hover-bg-green:focus { background-color: #19a974; }
+.hover-bg-light-green:hover { background-color: #9eebcf; }
+.hover-bg-light-green:focus { background-color: #9eebcf; }
+.hover-bg-navy:hover { background-color: #001b44; }
+.hover-bg-navy:focus { background-color: #001b44; }
+.hover-bg-dark-blue:hover { background-color: #00449e; }
+.hover-bg-dark-blue:focus { background-color: #00449e; }
+.hover-bg-blue:hover { background-color: #357edd; }
+.hover-bg-blue:focus { background-color: #357edd; }
+.hover-bg-light-blue:hover { background-color: #96ccff; }
+.hover-bg-light-blue:focus { background-color: #96ccff; }
+.hover-bg-lightest-blue:hover { background-color: #cdecff; }
+.hover-bg-lightest-blue:focus { background-color: #cdecff; }
+.hover-bg-washed-blue:hover { background-color: #f6fffe; }
+.hover-bg-washed-blue:focus { background-color: #f6fffe; }
+.hover-bg-washed-green:hover { background-color: #e8fdf5; }
+.hover-bg-washed-green:focus { background-color: #e8fdf5; }
+.hover-bg-washed-yellow:hover { background-color: #fffceb; }
+.hover-bg-washed-yellow:focus { background-color: #fffceb; }
+.hover-bg-washed-red:hover { background-color: #ffdfdf; }
+.hover-bg-washed-red:focus { background-color: #ffdfdf; }
+
diff --git a/packages/tachyons-skins-pseudo/css/tachyons-skins-pseudo.min.css b/packages/tachyons-skins-pseudo/css/tachyons-skins-pseudo.min.css
new file mode 100644
index 000000000..43380e120
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/css/tachyons-skins-pseudo.min.css
@@ -0,0 +1,2 @@
+.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-dark-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}
+
diff --git a/packages/tachyons-skins-pseudo/license b/packages/tachyons-skins-pseudo/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-skins-pseudo/package-lock.json b/packages/tachyons-skins-pseudo/package-lock.json
new file mode 100644
index 000000000..056d1895f
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/package-lock.json
@@ -0,0 +1,2088 @@
+{
+ "name": "tachyons-skins-pseudo",
+ "version": "1.0.4",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "any-promise": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz",
+ "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ },
+ "author-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-0.2.1.tgz",
+ "integrity": "sha1-i976rGBlqTF5m+wH7u9RuUDgjzw=",
+ "dev": true
+ },
+ "authors-to-markdown": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/authors-to-markdown/-/authors-to-markdown-0.1.0.tgz",
+ "integrity": "sha1-ozgAZCiacl9AzRUhRMIfqjf9Fis=",
+ "dev": true,
+ "requires": {
+ "is-blank": "1.1.0",
+ "normalize-url": "1.9.1",
+ "parse-author": "0.2.2"
+ }
+ },
+ "autoprefixer": {
+ "version": "6.7.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000700",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000700",
+ "electron-to-chromium": "1.3.15"
+ }
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz",
+ "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
+ }
+ },
+ "caniuse-api": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
+ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000700",
+ "lodash.memoize": "4.1.2",
+ "lodash.uniq": "4.5.0"
+ }
+ },
+ "caniuse-db": {
+ "version": "1.0.30000700",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000700.tgz",
+ "integrity": "sha1-l8/Eg4Ze6oV33Ho2dJKbmr9VMJU=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "clap": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz",
+ "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3"
+ }
+ },
+ "class-repeat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/class-repeat/-/class-repeat-1.0.1.tgz",
+ "integrity": "sha1-knNYMP7Dp7IdkPmMn4CEeZ0kPSg=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4",
+ "get-css-classes": "1.1.0",
+ "has-class-selector": "1.0.0",
+ "is-present": "1.0.0"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+ "dev": true
+ },
+ "coa": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+ "dev": true,
+ "requires": {
+ "q": "1.5.0"
+ }
+ },
+ "color": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
+ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
+ "dev": true,
+ "requires": {
+ "clone": "1.0.2",
+ "color-convert": "1.9.0",
+ "color-string": "0.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.2"
+ }
+ },
+ "color-name": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz",
+ "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.2"
+ }
+ },
+ "colormin": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
+ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
+ "dev": true,
+ "requires": {
+ "color": "0.11.4",
+ "css-color-names": "0.0.4",
+ "has": "1.0.1"
+ },
+ "dependencies": {
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ }
+ }
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "comment-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/comment-regex/-/comment-regex-1.0.0.tgz",
+ "integrity": "sha1-fdcCaMg2SKnEzBm/Ry1S5k9jkY0=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "copy-files": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/copy-files/-/copy-files-0.1.0.tgz",
+ "integrity": "sha1-+jg4XcBH74gZPBxhtqJTqKQn8RY=",
+ "dev": true,
+ "requires": {
+ "async": "0.9.2",
+ "lodash": "2.4.2",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ }
+ }
+ },
+ "css-color-converter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-color-converter/-/css-color-converter-1.1.0.tgz",
+ "integrity": "sha1-wufZPC6WyK2Msax6Hy5J2AUq3jY=",
+ "dev": true,
+ "requires": {
+ "color-convert": "0.5.3",
+ "color-name": "1.1.2"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
+ "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
+ "dev": true
+ }
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.1.tgz",
+ "integrity": "sha1-XQVI+iVkVu3kqaDCrHqxnT6xrYE=",
+ "dev": true
+ },
+ "css-mqpacker": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/css-mqpacker/-/css-mqpacker-5.0.1.tgz",
+ "integrity": "sha1-by1iJSYj/Xwzpo4biNwTcMiFkh4=",
+ "dev": true,
+ "requires": {
+ "minimist": "1.2.0",
+ "postcss": "5.2.17"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1",
+ "regexpu-core": "1.0.0"
+ }
+ },
+ "css-shorthand-expand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-shorthand-expand/-/css-shorthand-expand-1.1.0.tgz",
+ "integrity": "sha1-EC9yhsvTI3VDC1hJ1OL+o6oh6mQ=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "0.0.1",
+ "css-url-regex": "0.0.1",
+ "hex-color-regex": "1.1.0",
+ "hsl-regex": "1.0.0",
+ "hsla-regex": "1.0.0",
+ "map-obj": "1.0.1",
+ "repeat-element": "1.1.2",
+ "rgb-regex": "1.0.1",
+ "rgba-regex": "1.0.0",
+ "xtend": "4.0.1"
+ }
+ },
+ "css-shorthand-properties": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.0.0.tgz",
+ "integrity": "sha1-VnvmcRA2ebmqBaSBVeUUdLJ1h38=",
+ "dev": true
+ },
+ "css-unit-converter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
+ "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
+ "dev": true
+ },
+ "css-url-regex": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-0.0.1.tgz",
+ "integrity": "sha1-4Fr4xsKQ1FHvFjK0VepcgbSxOVw=",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
+ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "decamelize": "1.2.0",
+ "defined": "1.0.0",
+ "has": "1.0.1",
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-calc": "5.3.1",
+ "postcss-colormin": "2.2.2",
+ "postcss-convert-values": "2.6.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-discard-duplicates": "2.1.0",
+ "postcss-discard-empty": "2.1.0",
+ "postcss-discard-overridden": "0.1.1",
+ "postcss-discard-unused": "2.2.3",
+ "postcss-filter-plugins": "2.0.2",
+ "postcss-merge-idents": "2.1.7",
+ "postcss-merge-longhand": "2.0.2",
+ "postcss-merge-rules": "2.1.2",
+ "postcss-minify-font-values": "1.0.5",
+ "postcss-minify-gradients": "1.0.5",
+ "postcss-minify-params": "1.2.2",
+ "postcss-minify-selectors": "2.1.1",
+ "postcss-normalize-charset": "1.1.1",
+ "postcss-normalize-url": "3.0.8",
+ "postcss-ordered-values": "2.2.3",
+ "postcss-reduce-idents": "2.4.0",
+ "postcss-reduce-initial": "1.0.1",
+ "postcss-reduce-transforms": "1.0.4",
+ "postcss-svgo": "2.1.6",
+ "postcss-unique-selectors": "2.0.2",
+ "postcss-value-parser": "3.3.0",
+ "postcss-zindex": "2.2.0"
+ }
+ },
+ "csso": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
+ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+ "dev": true,
+ "requires": {
+ "clap": "1.2.0",
+ "source-map": "0.5.6"
+ }
+ },
+ "cssstats": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cssstats/-/cssstats-3.1.0.tgz",
+ "integrity": "sha512-zLG+H8tyLITS5uYUu8MVtS0wUU7XhV1298CgF62wWLm/xfJIbbE7WlrIfXtgLWk929/cfrCidSkCpYJrlqsJ/g==",
+ "dev": true,
+ "requires": {
+ "bytes": "2.5.0",
+ "css-selector-tokenizer": "0.7.0",
+ "css-shorthand-expand": "1.1.0",
+ "gzip-size": "3.0.0",
+ "has-class-selector": "1.0.0",
+ "has-element-selector": "1.0.0",
+ "has-id-selector": "1.0.0",
+ "has-pseudo-class": "1.0.1",
+ "has-pseudo-element": "1.0.0",
+ "is-blank": "1.1.0",
+ "is-css-shorthand": "1.0.1",
+ "is-present": "1.0.0",
+ "is-vendor-prefixed": "0.0.1",
+ "lodash": "4.17.4",
+ "postcss": "5.2.17",
+ "postcss-safe-parser": "2.0.1",
+ "specificity": "0.3.1"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "1.0.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "dev": true
+ },
+ "detect-newline": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz",
+ "integrity": "sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.15",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz",
+ "integrity": "sha1-CDl5NIkcvPrrvRi4KpW1pIETg2k=",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "exec-sh": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
+ "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
+ "dev": true,
+ "requires": {
+ "merge": "1.2.0"
+ }
+ },
+ "extend": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz",
+ "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=",
+ "dev": true
+ },
+ "extend-options": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/extend-options/-/extend-options-0.0.1.tgz",
+ "integrity": "sha1-6TyDMSQ4wTVl5k7Cts6GqYKd0Xs=",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+ "dev": true
+ },
+ "file-exists": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-exists/-/file-exists-2.0.0.tgz",
+ "integrity": "sha1-okFQZlFQ5i1VvFRJKB2I0rCBDco=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
+ "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
+ "dev": true
+ },
+ "gather-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz",
+ "integrity": "sha1-szmUr0V6gRVwDUEPMXczy+egkEs=",
+ "dev": true
+ },
+ "get-css-classes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-css-classes/-/get-css-classes-1.1.0.tgz",
+ "integrity": "sha1-W0Tqihks7OdWfARXRjOpKqRJF7M=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4",
+ "lodash": "4.17.4"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "gzip-size": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
+ "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
+ },
+ "has": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "dev": true,
+ "requires": {
+ "function-bind": "1.1.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-class-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-class-selector/-/has-class-selector-1.0.0.tgz",
+ "integrity": "sha1-p79Rvs3C133/JQkgPtafNEUODC0=",
+ "dev": true
+ },
+ "has-element-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-element-selector/-/has-element-selector-1.0.0.tgz",
+ "integrity": "sha1-JohCJeEjQ36N+WBMATWB0p0ZC5c=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.5.4"
+ },
+ "dependencies": {
+ "css-selector-tokenizer": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
+ "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
+ "dev": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1"
+ }
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "has-id-selector": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-id-selector/-/has-id-selector-1.0.0.tgz",
+ "integrity": "sha1-1BtC6SKFhub+xWZyjOszqucay0U=",
+ "dev": true
+ },
+ "has-pseudo-class": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-pseudo-class/-/has-pseudo-class-1.0.1.tgz",
+ "integrity": "sha1-Bj7cjp9ZRpdq9P9OuzLDMNVW4Ac=",
+ "dev": true,
+ "requires": {
+ "pseudo-classes": "0.0.1"
+ }
+ },
+ "has-pseudo-element": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-pseudo-element/-/has-pseudo-element-1.0.0.tgz",
+ "integrity": "sha1-NMoZEgHAFDcJ9CtLc/HcY7dg8D8=",
+ "dev": true,
+ "requires": {
+ "pseudo-elements": "1.0.0"
+ }
+ },
+ "hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
+ "dev": true
+ },
+ "hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+ "dev": true
+ },
+ "hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
+ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+ "dev": true
+ },
+ "immutable-css": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/immutable-css/-/immutable-css-1.1.2.tgz",
+ "integrity": "sha1-RBUWYyKpPVAPrPJoocf5Bw/0YYo=",
+ "dev": true,
+ "requires": {
+ "extend-options": "0.0.1",
+ "file-exists": "0.1.1",
+ "get-css-classes": "1.1.0",
+ "glob": "5.0.15",
+ "has-class-selector": "1.0.0",
+ "is-css": "1.0.0",
+ "meow": "3.7.0",
+ "postcss": "5.2.17",
+ "specificity": "0.1.6"
+ },
+ "dependencies": {
+ "file-exists": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/file-exists/-/file-exists-0.1.1.tgz",
+ "integrity": "sha1-mT0//7W0nRH+/Mj0XCNVAnRAgDw=",
+ "dev": true
+ },
+ "specificity": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.1.6.tgz",
+ "integrity": "sha1-qlAQSPluaUhd3JXvn3pbd/ASMqo=",
+ "dev": true
+ }
+ }
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-blank": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-blank/-/is-blank-1.1.0.tgz",
+ "integrity": "sha1-knTdvUY2PLdnB1w4XUq4jGpk3Bc=",
+ "dev": true,
+ "requires": {
+ "is-empty": "0.0.1",
+ "is-whitespace": "0.3.0"
+ }
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-css": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-css/-/is-css-1.0.0.tgz",
+ "integrity": "sha1-nE7hEQaR4Kffnl5qp4Frrj1SbTg=",
+ "dev": true
+ },
+ "is-css-shorthand": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-css-shorthand/-/is-css-shorthand-1.0.1.tgz",
+ "integrity": "sha1-MPldAyEGBf7f3RKOU9rEpEN6kzw=",
+ "dev": true,
+ "requires": {
+ "css-shorthand-properties": "1.0.0"
+ }
+ },
+ "is-empty": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-0.0.1.tgz",
+ "integrity": "sha1-Cf3D1kndpZaRVsCFOpt2vXgcWjM=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-present": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-present/-/is-present-1.0.0.tgz",
+ "integrity": "sha1-Kcm46ObnhqWUwpL8cjmqJL5wuAw=",
+ "dev": true,
+ "requires": {
+ "is-blank": "1.0.0"
+ },
+ "dependencies": {
+ "is-blank": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-blank/-/is-blank-1.0.0.tgz",
+ "integrity": "sha1-YOOb60H5LDsnrLtQKcsPKfmD7mc=",
+ "dev": true,
+ "requires": {
+ "is-empty": "0.0.1",
+ "is-whitespace": "0.3.0"
+ }
+ }
+ }
+ },
+ "is-svg": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
+ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "1.1.1"
+ }
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-vendor-prefixed": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/is-vendor-prefixed/-/is-vendor-prefixed-0.0.1.tgz",
+ "integrity": "sha1-Bc8NhTxidNf7K/htU+EHgguca0Q=",
+ "dev": true,
+ "requires": {
+ "vendor-prefixes": "0.0.1"
+ }
+ },
+ "is-whitespace": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz",
+ "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=",
+ "dev": true
+ },
+ "js-base64": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
+ "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "2.7.3"
+ }
+ },
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "macaddress": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz",
+ "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "math-expression-evaluator": {
+ "version": "1.2.17",
+ "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
+ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
+ "dev": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.4.0",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "merge": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
+ "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "2.5.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.3.0",
+ "validate-npm-package-license": "3.0.1"
+ }
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "prepend-http": "1.0.4",
+ "query-string": "4.3.4",
+ "sort-keys": "1.1.2"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "parse-author": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-0.2.2.tgz",
+ "integrity": "sha1-MC0bjkxmUZ0cRd2VED0zKMRJjv0=",
+ "dev": true,
+ "requires": {
+ "author-regex": "0.2.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "perfectionist": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/perfectionist/-/perfectionist-2.4.0.tgz",
+ "integrity": "sha1-wUetNxThJkZ/F2QSnuct+GHUfqA=",
+ "dev": true,
+ "requires": {
+ "comment-regex": "1.0.0",
+ "defined": "1.0.0",
+ "minimist": "1.2.0",
+ "postcss": "5.2.17",
+ "postcss-scss": "0.3.1",
+ "postcss-value-parser": "3.3.0",
+ "read-file-stdin": "0.2.1",
+ "string.prototype.repeat": "0.2.0",
+ "vendors": "1.0.1",
+ "write-file-stdout": "0.0.2"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "postcss": {
+ "version": "5.2.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
+ "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.1.9",
+ "source-map": "0.5.6",
+ "supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-message-helpers": "2.0.0",
+ "reduce-css-calc": "1.3.0"
+ }
+ },
+ "postcss-class-repeat": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-class-repeat/-/postcss-class-repeat-0.1.0.tgz",
+ "integrity": "sha1-+2zO0SqdmPhZ9HTYGItmbm2oe04=",
+ "dev": true,
+ "requires": {
+ "class-repeat": "1.0.1",
+ "has-class-selector": "1.0.0",
+ "is-present": "1.0.0",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-colormin": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
+ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
+ "dev": true,
+ "requires": {
+ "colormin": "1.1.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-conditionals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-conditionals/-/postcss-conditionals-2.1.0.tgz",
+ "integrity": "sha1-TR9iqlQEWM56t3n3FlaQHI+Okpo=",
+ "dev": true,
+ "requires": {
+ "css-color-converter": "1.1.0",
+ "css-unit-converter": "1.1.1",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
+ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-css-variables": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/postcss-css-variables/-/postcss-css-variables-0.7.0.tgz",
+ "integrity": "sha1-SqWO6zyFmm8JCQE6sXvspWZSh/0=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "extend": "2.0.1",
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-custom-media": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz",
+ "integrity": "sha1-E40loYS/LrVN4S1VpsAcMKnYvYE=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
+ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
+ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
+ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
+ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-discard-unused": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
+ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-filter-plugins": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
+ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "uniqid": "4.1.1"
+ }
+ },
+ "postcss-import": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-9.1.0.tgz",
+ "integrity": "sha1-lf6YdqHnmvSfvcNYnwH+WqfMHoA=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "promise-each": "2.2.0",
+ "read-cache": "1.0.0",
+ "resolve": "1.3.3"
+ }
+ },
+ "postcss-merge-idents": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-api": "1.6.1",
+ "postcss": "5.2.17",
+ "postcss-selector-parser": "2.2.3",
+ "vendors": "1.0.1"
+ }
+ },
+ "postcss-message-helpers": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+ "dev": true
+ },
+ "postcss-minify-font-values": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-selector-parser": "2.2.3"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "2.1.0",
+ "normalize-url": "1.9.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
+ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "postcss-safe-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-2.0.1.tgz",
+ "integrity": "sha1-Oz0cS0OiTDlC4vC+eWE4KzSLOxM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-scss": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-0.3.1.tgz",
+ "integrity": "sha1-ZcYQ2OKn7g5isYNbcbiHBzSBbks=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.17"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+ "dev": true,
+ "requires": {
+ "flatten": "1.0.2",
+ "indexes-of": "1.0.1",
+ "uniq": "1.0.1"
+ }
+ },
+ "postcss-svgo": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
+ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
+ "dev": true,
+ "requires": {
+ "is-svg": "2.1.0",
+ "postcss": "5.2.17",
+ "postcss-value-parser": "3.3.0",
+ "svgo": "0.7.2"
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
+ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
+ "dev": true
+ },
+ "postcss-zindex": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
+ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.17",
+ "uniqs": "2.0.0"
+ }
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "promise-each": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz",
+ "integrity": "sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=",
+ "dev": true,
+ "requires": {
+ "any-promise": "0.1.0"
+ }
+ },
+ "pseudo-classes": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pseudo-classes/-/pseudo-classes-0.0.1.tgz",
+ "integrity": "sha1-3smD2Upo0D3f3vPwfESvn2wiOls=",
+ "dev": true
+ },
+ "pseudo-elements": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pseudo-elements/-/pseudo-elements-1.0.0.tgz",
+ "integrity": "sha1-S+YMvNhJlpKh1yz90+WDnautFhg=",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
+ "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
+ "dev": true
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "strict-uri-encode": "1.1.0"
+ }
+ },
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-file-stdin": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz",
+ "integrity": "sha1-JezP86FTtoCa+ssj7hU4fbng7mE=",
+ "dev": true,
+ "requires": {
+ "gather-stream": "1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
+ }
+ },
+ "reduce-css-calc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
+ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2",
+ "math-expression-evaluator": "1.2.17",
+ "reduce-function-call": "1.0.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "reduce-function-call": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
+ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "regenerate": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
+ "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "1.3.2",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "resolve": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
+ "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
+ "dev": true,
+ "requires": {
+ "path-parse": "1.0.5"
+ }
+ },
+ "rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+ "dev": true
+ },
+ "rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+ "dev": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "single-trailing-newline": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz",
+ "integrity": "sha1-gfCtKtZFGBlFyAlSpcFBSZLulmQ=",
+ "dev": true,
+ "requires": {
+ "detect-newline": "1.0.3"
+ }
+ },
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "1.1.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "1.2.2"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+ "dev": true
+ },
+ "specificity": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.1.tgz",
+ "integrity": "sha1-8bBoQkzjF64HR42V3jwhz4Xo1Wc=",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
+ "string.prototype.repeat": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz",
+ "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "svgo": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
+ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+ "dev": true,
+ "requires": {
+ "coa": "1.0.4",
+ "colors": "1.1.2",
+ "csso": "2.3.2",
+ "js-yaml": "3.7.0",
+ "mkdirp": "0.5.1",
+ "sax": "1.2.4",
+ "whet.extend": "0.9.9"
+ }
+ },
+ "tachyons-build-css": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/tachyons-build-css/-/tachyons-build-css-1.3.0.tgz",
+ "integrity": "sha1-6puM9/juxtSZLNQEh4hK21hqlc4=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "css-mqpacker": "5.0.1",
+ "cssnano": "3.10.0",
+ "perfectionist": "2.4.0",
+ "postcss": "5.2.17",
+ "postcss-class-repeat": "0.1.0",
+ "postcss-conditionals": "2.1.0",
+ "postcss-css-variables": "0.7.0",
+ "postcss-custom-media": "5.0.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-import": "9.1.0"
+ }
+ },
+ "tachyons-cli": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/tachyons-cli/-/tachyons-cli-1.0.11.tgz",
+ "integrity": "sha1-tkNEPkS63Ca7c5K6Veb3QB6Hsvs=",
+ "dev": true,
+ "requires": {
+ "authors-to-markdown": "0.1.0",
+ "chalk": "1.1.3",
+ "copy-files": "0.1.0",
+ "css-mqpacker": "5.0.1",
+ "cssstats": "3.1.0",
+ "file-exists": "2.0.0",
+ "immutable-css": "1.1.2",
+ "is-blank": "1.1.0",
+ "is-present": "1.0.0",
+ "lodash": "4.17.4",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "single-trailing-newline": "1.0.0",
+ "tachyons-build-css": "1.3.0"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqid": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
+ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
+ "dev": true,
+ "requires": {
+ "macaddress": "0.2.8"
+ }
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "1.0.2",
+ "spdx-expression-parse": "1.0.4"
+ }
+ },
+ "vendor-prefixes": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/vendor-prefixes/-/vendor-prefixes-0.0.1.tgz",
+ "integrity": "sha1-mLQ2f4y3CZIw78IOBA9UrtAY0G0=",
+ "dev": true
+ },
+ "vendors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
+ "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
+ "dev": true
+ },
+ "watch": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz",
+ "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=",
+ "dev": true,
+ "requires": {
+ "exec-sh": "0.2.0",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "whet.extend": {
+ "version": "0.9.9",
+ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write-file-stdout": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-stdout/-/write-file-stdout-0.0.2.tgz",
+ "integrity": "sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ }
+ }
+}
diff --git a/packages/tachyons-skins-pseudo/package.json b/packages/tachyons-skins-pseudo/package.json
new file mode 100644
index 000000000..14da71bb9
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "tachyons-skins-pseudo",
+ "description": "Classes for setting color and background color for focus and hover states.",
+ "version": "1.0.4",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-skins-pseudo.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "base"
+ ],
+ "repository": "tachyons-css/tachyons-skins-pseudo",
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.11",
+ "watch": "^1.0.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-skins-pseudo.css > css/tachyons-skins-pseudo.css",
+ "build:minify": "tachyons src/tachyons-skins-pseudo.css --minify > css/tachyons-skins-pseudo.min.css",
+ "build:docs": "tachyons src/tachyons-skins-pseudo.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-skins-pseudo/readme.md b/packages/tachyons-skins-pseudo/readme.md
new file mode 100644
index 000000000..506975762
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/readme.md
@@ -0,0 +1,260 @@
+# tachyons-skins-pseudo 1.0.4
+
+Classes for setting color and background color for focus and hover states.
+
+#### Stats
+
+1108 | 146 | 146
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-skins-pseudo
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-skins-pseudo
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-skins-pseudo.git
+```
+
+## Usage
+
+#### Using with [Postcss](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-skins-pseudo";
+```
+
+Then process the css using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the css
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built css is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source css files can be found in the `src` directory.
+Running `$ npm start` will process the source css and place the built css in the `css` directory.
+
+## The css
+
+```css
+/*
+
+ Tachyons
+ COLOR VARIABLES
+
+ Grayscale
+ - Solids
+ - Transparencies
+ Colors
+
+*/
+/*
+
+ SKINS:PSEUDO
+
+ Customize the color of an element when
+ it is focused or hovered over.
+
+ */
+.hover-black:hover { color: #000; }
+.hover-black:focus { color: #000; }
+.hover-near-black:hover { color: #111; }
+.hover-near-black:focus { color: #111; }
+.hover-dark-gray:hover { color: #333; }
+.hover-dark-gray:focus { color: #333; }
+.hover-mid-gray:hover { color: #555; }
+.hover-mid-gray:focus { color: #555; }
+.hover-gray:hover { color: #777; }
+.hover-gray:focus { color: #777; }
+.hover-silver:hover { color: #999; }
+.hover-silver:focus { color: #999; }
+.hover-light-silver:hover { color: #aaa; }
+.hover-light-silver:focus { color: #aaa; }
+.hover-moon-gray:hover { color: #ccc; }
+.hover-moon-gray:focus { color: #ccc; }
+.hover-light-gray:hover { color: #eee; }
+.hover-light-gray:focus { color: #eee; }
+.hover-near-white:hover { color: #f4f4f4; }
+.hover-near-white:focus { color: #f4f4f4; }
+.hover-white:hover { color: #fff; }
+.hover-white:focus { color: #fff; }
+.hover-bg-black:hover { background-color: #000; }
+.hover-bg-black:focus { background-color: #000; }
+.hover-bg-near-black:hover { background-color: #111; }
+.hover-bg-near-black:focus { background-color: #111; }
+.hover-bg-dark-gray:hover { background-color: #333; }
+.hover-bg-dark-gray:focus { background-color: #333; }
+.hover-bg-dark-gray:focus { background-color: #555; }
+.hover-bg-mid-gray:hover { background-color: #555; }
+.hover-bg-gray:hover { background-color: #777; }
+.hover-bg-gray:focus { background-color: #777; }
+.hover-bg-silver:hover { background-color: #999; }
+.hover-bg-silver:focus { background-color: #999; }
+.hover-bg-light-silver:hover { background-color: #aaa; }
+.hover-bg-light-silver:focus { background-color: #aaa; }
+.hover-bg-moon-gray:hover { background-color: #ccc; }
+.hover-bg-moon-gray:focus { background-color: #ccc; }
+.hover-bg-light-gray:hover { background-color: #eee; }
+.hover-bg-light-gray:focus { background-color: #eee; }
+.hover-bg-near-white:hover { background-color: #f4f4f4; }
+.hover-bg-near-white:focus { background-color: #f4f4f4; }
+.hover-bg-white:hover { background-color: #fff; }
+.hover-bg-white:focus { background-color: #fff; }
+.hover-bg-transparent:hover { background-color: transparent; }
+.hover-bg-transparent:focus { background-color: transparent; }
+.hover-dark-red:hover { color: #e7040f; }
+.hover-dark-red:focus { color: #e7040f; }
+.hover-red:hover { color: #ff4136; }
+.hover-red:focus { color: #ff4136; }
+.hover-light-red:hover { color: #ff725c; }
+.hover-light-red:focus { color: #ff725c; }
+.hover-orange:hover { color: #ff6300; }
+.hover-orange:focus { color: #ff6300; }
+.hover-gold:hover { color: #ffb700; }
+.hover-gold:focus { color: #ffb700; }
+.hover-yellow:hover { color: #ffd700; }
+.hover-yellow:focus { color: #ffd700; }
+.hover-light-yellow:hover { color: #fbf1a9; }
+.hover-light-yellow:focus { color: #fbf1a9; }
+.hover-purple:hover { color: #5e2ca5; }
+.hover-purple:focus { color: #5e2ca5; }
+.hover-light-purple:hover { color: #a463f2; }
+.hover-light-purple:focus { color: #a463f2; }
+.hover-dark-pink:hover { color: #d5008f; }
+.hover-dark-pink:focus { color: #d5008f; }
+.hover-hot-pink:hover { color: #ff41b4; }
+.hover-hot-pink:focus { color: #ff41b4; }
+.hover-pink:hover { color: #ff80cc; }
+.hover-pink:focus { color: #ff80cc; }
+.hover-light-pink:hover { color: #ffa3d7; }
+.hover-light-pink:focus { color: #ffa3d7; }
+.hover-dark-green:hover { color: #137752; }
+.hover-dark-green:focus { color: #137752; }
+.hover-green:hover { color: #19a974; }
+.hover-green:focus { color: #19a974; }
+.hover-light-green:hover { color: #9eebcf; }
+.hover-light-green:focus { color: #9eebcf; }
+.hover-navy:hover { color: #001b44; }
+.hover-navy:focus { color: #001b44; }
+.hover-dark-blue:hover { color: #00449e; }
+.hover-dark-blue:focus { color: #00449e; }
+.hover-blue:hover { color: #357edd; }
+.hover-blue:focus { color: #357edd; }
+.hover-light-blue:hover { color: #96ccff; }
+.hover-light-blue:focus { color: #96ccff; }
+.hover-lightest-blue:hover { color: #cdecff; }
+.hover-lightest-blue:focus { color: #cdecff; }
+.hover-washed-blue:hover { color: #f6fffe; }
+.hover-washed-blue:focus { color: #f6fffe; }
+.hover-washed-green:hover { color: #e8fdf5; }
+.hover-washed-green:focus { color: #e8fdf5; }
+.hover-washed-yellow:hover { color: #fffceb; }
+.hover-washed-yellow:focus { color: #fffceb; }
+.hover-washed-red:hover { color: #ffdfdf; }
+.hover-washed-red:focus { color: #ffdfdf; }
+.hover-bg-dark-red:hover { background-color: #e7040f; }
+.hover-bg-dark-red:focus { background-color: #e7040f; }
+.hover-bg-red:hover { background-color: #ff4136; }
+.hover-bg-red:focus { background-color: #ff4136; }
+.hover-bg-light-red:hover { background-color: #ff725c; }
+.hover-bg-light-red:focus { background-color: #ff725c; }
+.hover-bg-orange:hover { background-color: #ff6300; }
+.hover-bg-orange:focus { background-color: #ff6300; }
+.hover-bg-gold:hover { background-color: #ffb700; }
+.hover-bg-gold:focus { background-color: #ffb700; }
+.hover-bg-yellow:hover { background-color: #ffd700; }
+.hover-bg-yellow:focus { background-color: #ffd700; }
+.hover-bg-light-yellow:hover { background-color: #fbf1a9; }
+.hover-bg-light-yellow:focus { background-color: #fbf1a9; }
+.hover-bg-purple:hover { background-color: #5e2ca5; }
+.hover-bg-purple:focus { background-color: #5e2ca5; }
+.hover-bg-light-purple:hover { background-color: #a463f2; }
+.hover-bg-light-purple:focus { background-color: #a463f2; }
+.hover-bg-dark-pink:hover { background-color: #d5008f; }
+.hover-bg-dark-pink:focus { background-color: #d5008f; }
+.hover-bg-hot-pink:hover { background-color: #ff41b4; }
+.hover-bg-hot-pink:focus { background-color: #ff41b4; }
+.hover-bg-pink:hover { background-color: #ff80cc; }
+.hover-bg-pink:focus { background-color: #ff80cc; }
+.hover-bg-light-pink:hover { background-color: #ffa3d7; }
+.hover-bg-light-pink:focus { background-color: #ffa3d7; }
+.hover-bg-dark-green:hover { background-color: #137752; }
+.hover-bg-dark-green:focus { background-color: #137752; }
+.hover-bg-green:hover { background-color: #19a974; }
+.hover-bg-green:focus { background-color: #19a974; }
+.hover-bg-light-green:hover { background-color: #9eebcf; }
+.hover-bg-light-green:focus { background-color: #9eebcf; }
+.hover-bg-navy:hover { background-color: #001b44; }
+.hover-bg-navy:focus { background-color: #001b44; }
+.hover-bg-dark-blue:hover { background-color: #00449e; }
+.hover-bg-dark-blue:focus { background-color: #00449e; }
+.hover-bg-blue:hover { background-color: #357edd; }
+.hover-bg-blue:focus { background-color: #357edd; }
+.hover-bg-light-blue:hover { background-color: #96ccff; }
+.hover-bg-light-blue:focus { background-color: #96ccff; }
+.hover-bg-lightest-blue:hover { background-color: #cdecff; }
+.hover-bg-lightest-blue:focus { background-color: #cdecff; }
+.hover-bg-washed-blue:hover { background-color: #f6fffe; }
+.hover-bg-washed-blue:focus { background-color: #f6fffe; }
+.hover-bg-washed-green:hover { background-color: #e8fdf5; }
+.hover-bg-washed-green:focus { background-color: #e8fdf5; }
+.hover-bg-washed-yellow:hover { background-color: #fffceb; }
+.hover-bg-washed-yellow:focus { background-color: #fffceb; }
+.hover-bg-washed-red:hover { background-color: #ffdfdf; }
+.hover-bg-washed-red:focus { background-color: #ffdfdf; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-skins-pseudo/src/tachyons-skins-pseudo.css b/packages/tachyons-skins-pseudo/src/tachyons-skins-pseudo.css
new file mode 100644
index 000000000..69d468792
--- /dev/null
+++ b/packages/tachyons-skins-pseudo/src/tachyons-skins-pseudo.css
@@ -0,0 +1,236 @@
+/*
+
+ SKINS:PSEUDO
+
+ Customize the color of an element when
+ it is focused or hovered over.
+
+ */
+
+.hover-black:hover,
+.hover-black:focus { color: var(--black); }
+.hover-near-black:hover,
+.hover-near-black:focus { color: var(--near-black); }
+.hover-dark-gray:hover,
+.hover-dark-gray:focus { color: var(--dark-gray); }
+.hover-mid-gray:hover,
+.hover-mid-gray:focus { color: var(--mid-gray); }
+.hover-gray:hover,
+.hover-gray:focus { color: var(--gray); }
+.hover-silver:hover,
+.hover-silver:focus { color: var(--silver); }
+.hover-light-silver:hover,
+.hover-light-silver:focus { color: var(--light-silver); }
+.hover-moon-gray:hover,
+.hover-moon-gray:focus { color: var(--moon-gray); }
+.hover-light-gray:hover,
+.hover-light-gray:focus { color: var(--light-gray); }
+.hover-near-white:hover,
+.hover-near-white:focus { color: var(--near-white); }
+.hover-white:hover,
+.hover-white:focus { color: var(--white); }
+
+.hover-black-90:hover,
+.hover-black-90:focus { color: var(--black-90); }
+.hover-black-80:hover,
+.hover-black-80:focus { color: var(--black-80); }
+.hover-black-70:hover,
+.hover-black-70:focus { color: var(--black-70); }
+.hover-black-60:hover,
+.hover-black-60:focus { color: var(--black-60); }
+.hover-black-50:hover,
+.hover-black-50:focus { color: var(--black-50); }
+.hover-black-40:hover,
+.hover-black-40:focus { color: var(--black-40); }
+.hover-black-30:hover,
+.hover-black-30:focus { color: var(--black-30); }
+.hover-black-20:hover,
+.hover-black-20:focus { color: var(--black-20); }
+.hover-black-10:hover,
+.hover-black-10:focus { color: var(--black-10); }
+.hover-white-90:hover,
+.hover-white-90:focus { color: var(--white-90); }
+.hover-white-80:hover,
+.hover-white-80:focus { color: var(--white-80); }
+.hover-white-70:hover,
+.hover-white-70:focus { color: var(--white-70); }
+.hover-white-60:hover,
+.hover-white-60:focus { color: var(--white-60); }
+.hover-white-50:hover,
+.hover-white-50:focus { color: var(--white-50); }
+.hover-white-40:hover,
+.hover-white-40:focus { color: var(--white-40); }
+.hover-white-30:hover,
+.hover-white-30:focus { color: var(--white-30); }
+.hover-white-20:hover,
+.hover-white-20:focus { color: var(--white-20); }
+.hover-white-10:hover,
+.hover-white-10:focus { color: var(--white-10); }
+.hover-inherit:hover,
+.hover-inherit:focus { color: inherit; }
+
+.hover-bg-black:hover,
+.hover-bg-black:focus { background-color: var(--black); }
+.hover-bg-near-black:hover,
+.hover-bg-near-black:focus { background-color: var(--near-black); }
+.hover-bg-dark-gray:hover,
+.hover-bg-dark-gray:focus { background-color: var(--dark-gray); }
+.hover-bg-dark-gray:focus,
+.hover-bg-mid-gray:hover { background-color: var(--mid-gray); }
+.hover-bg-gray:hover,
+.hover-bg-gray:focus { background-color: var(--gray); }
+.hover-bg-silver:hover,
+.hover-bg-silver:focus { background-color: var(--silver); }
+.hover-bg-light-silver:hover,
+.hover-bg-light-silver:focus { background-color: var(--light-silver); }
+.hover-bg-moon-gray:hover,
+.hover-bg-moon-gray:focus { background-color: var(--moon-gray); }
+.hover-bg-light-gray:hover,
+.hover-bg-light-gray:focus { background-color: var(--light-gray); }
+.hover-bg-near-white:hover,
+.hover-bg-near-white:focus { background-color: var(--near-white); }
+.hover-bg-white:hover,
+.hover-bg-white:focus { background-color: var(--white); }
+.hover-bg-transparent:hover,
+.hover-bg-transparent:focus { background-color: var(--transparent); }
+
+.hover-bg-black-90:hover,
+.hover-bg-black-90:focus { background-color: var(--black-90); }
+.hover-bg-black-80:hover,
+.hover-bg-black-80:focus { background-color: var(--black-80); }
+.hover-bg-black-70:hover,
+.hover-bg-black-70:focus { background-color: var(--black-70); }
+.hover-bg-black-60:hover,
+.hover-bg-black-60:focus { background-color: var(--black-60); }
+.hover-bg-black-50:hover,
+.hover-bg-black-50:focus { background-color: var(--black-50); }
+.hover-bg-black-40:hover,
+.hover-bg-black-40:focus { background-color: var(--black-40); }
+.hover-bg-black-30:hover,
+.hover-bg-black-30:focus { background-color: var(--black-30); }
+.hover-bg-black-20:hover,
+.hover-bg-black-20:focus { background-color: var(--black-20); }
+.hover-bg-black-10:hover,
+.hover-bg-black-10:focus { background-color: var(--black-10); }
+.hover-bg-white-90:hover,
+.hover-bg-white-90:focus { background-color: var(--white-90); }
+.hover-bg-white-80:hover,
+.hover-bg-white-80:focus { background-color: var(--white-80); }
+.hover-bg-white-70:hover,
+.hover-bg-white-70:focus { background-color: var(--white-70); }
+.hover-bg-white-60:hover,
+.hover-bg-white-60:focus { background-color: var(--white-60); }
+.hover-bg-white-50:hover,
+.hover-bg-white-50:focus { background-color: var(--white-50); }
+.hover-bg-white-40:hover,
+.hover-bg-white-40:focus { background-color: var(--white-40); }
+.hover-bg-white-30:hover,
+.hover-bg-white-30:focus { background-color: var(--white-30); }
+.hover-bg-white-20:hover,
+.hover-bg-white-20:focus { background-color: var(--white-20); }
+.hover-bg-white-10:hover,
+.hover-bg-white-10:focus { background-color: var(--white-10); }
+
+.hover-dark-red:hover,
+.hover-dark-red:focus { color: var(--dark-red); }
+.hover-red:hover,
+.hover-red:focus { color: var(--red); }
+.hover-light-red:hover,
+.hover-light-red:focus { color: var(--light-red); }
+.hover-orange:hover,
+.hover-orange:focus { color: var(--orange); }
+.hover-gold:hover,
+.hover-gold:focus { color: var(--gold); }
+.hover-yellow:hover,
+.hover-yellow:focus { color: var(--yellow); }
+.hover-light-yellow:hover,
+.hover-light-yellow:focus { color: var(--light-yellow); }
+.hover-purple:hover,
+.hover-purple:focus { color: var(--purple); }
+.hover-light-purple:hover,
+.hover-light-purple:focus { color: var(--light-purple); }
+.hover-dark-pink:hover,
+.hover-dark-pink:focus { color: var(--dark-pink); }
+.hover-hot-pink:hover,
+.hover-hot-pink:focus { color: var(--hot-pink); }
+.hover-pink:hover,
+.hover-pink:focus { color: var(--pink); }
+.hover-light-pink:hover,
+.hover-light-pink:focus { color: var(--light-pink); }
+.hover-dark-green:hover,
+.hover-dark-green:focus { color: var(--dark-green); }
+.hover-green:hover,
+.hover-green:focus { color: var(--green); }
+.hover-light-green:hover,
+.hover-light-green:focus { color: var(--light-green); }
+.hover-navy:hover,
+.hover-navy:focus { color: var(--navy); }
+.hover-dark-blue:hover,
+.hover-dark-blue:focus { color: var(--dark-blue); }
+.hover-blue:hover,
+.hover-blue:focus { color: var(--blue); }
+.hover-light-blue:hover,
+.hover-light-blue:focus { color: var(--light-blue); }
+.hover-lightest-blue:hover,
+.hover-lightest-blue:focus { color: var(--lightest-blue); }
+.hover-washed-blue:hover,
+.hover-washed-blue:focus { color: var(--washed-blue); }
+.hover-washed-green:hover,
+.hover-washed-green:focus { color: var(--washed-green); }
+.hover-washed-yellow:hover,
+.hover-washed-yellow:focus { color: var(--washed-yellow); }
+.hover-washed-red:hover,
+.hover-washed-red:focus { color: var(--washed-red); }
+
+.hover-bg-dark-red:hover,
+.hover-bg-dark-red:focus { background-color: var(--dark-red); }
+.hover-bg-red:hover,
+.hover-bg-red:focus { background-color: var(--red); }
+.hover-bg-light-red:hover,
+.hover-bg-light-red:focus { background-color: var(--light-red); }
+.hover-bg-orange:hover,
+.hover-bg-orange:focus { background-color: var(--orange); }
+.hover-bg-gold:hover,
+.hover-bg-gold:focus { background-color: var(--gold); }
+.hover-bg-yellow:hover,
+.hover-bg-yellow:focus { background-color: var(--yellow); }
+.hover-bg-light-yellow:hover,
+.hover-bg-light-yellow:focus { background-color: var(--light-yellow); }
+.hover-bg-purple:hover,
+.hover-bg-purple:focus { background-color: var(--purple); }
+.hover-bg-light-purple:hover,
+.hover-bg-light-purple:focus { background-color: var(--light-purple); }
+.hover-bg-dark-pink:hover,
+.hover-bg-dark-pink:focus { background-color: var(--dark-pink); }
+.hover-bg-hot-pink:hover,
+.hover-bg-hot-pink:focus { background-color: var(--hot-pink); }
+.hover-bg-pink:hover,
+.hover-bg-pink:focus { background-color: var(--pink); }
+.hover-bg-light-pink:hover,
+.hover-bg-light-pink:focus { background-color: var(--light-pink); }
+.hover-bg-dark-green:hover,
+.hover-bg-dark-green:focus { background-color: var(--dark-green); }
+.hover-bg-green:hover,
+.hover-bg-green:focus { background-color: var(--green); }
+.hover-bg-light-green:hover,
+.hover-bg-light-green:focus { background-color: var(--light-green); }
+.hover-bg-navy:hover,
+.hover-bg-navy:focus { background-color: var(--navy); }
+.hover-bg-dark-blue:hover,
+.hover-bg-dark-blue:focus { background-color: var(--dark-blue); }
+.hover-bg-blue:hover,
+.hover-bg-blue:focus { background-color: var(--blue); }
+.hover-bg-light-blue:hover,
+.hover-bg-light-blue:focus { background-color: var(--light-blue); }
+.hover-bg-lightest-blue:hover,
+.hover-bg-lightest-blue:focus { background-color: var(--lightest-blue); }
+.hover-bg-washed-blue:hover,
+.hover-bg-washed-blue:focus { background-color: var(--washed-blue); }
+.hover-bg-washed-green:hover,
+.hover-bg-washed-green:focus { background-color: var(--washed-green); }
+.hover-bg-washed-yellow:hover,
+.hover-bg-washed-yellow:focus { background-color: var(--washed-yellow); }
+.hover-bg-washed-red:hover,
+.hover-bg-washed-red:focus { background-color: var(--washed-red); }
+.hover-bg-inherit:hover,
+.hover-bg-inherit:focus { background-color: inherit; }
diff --git a/packages/tachyons-skins/.gitignore b/packages/tachyons-skins/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-skins/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-skins/LICENSE.txt b/packages/tachyons-skins/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-skins/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-skins/code-of-conduct.md b/packages/tachyons-skins/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-skins/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-skins/css/tachyons-skins.css b/packages/tachyons-skins/css/tachyons-skins.css
new file mode 100644
index 000000000..03a728303
--- /dev/null
+++ b/packages/tachyons-skins/css/tachyons-skins.css
@@ -0,0 +1,171 @@
+/*
+
+ COLOR VARIABLES
+
+ Variables to set colors for
+ color, background-color, and border-color
+
+*/
+/* variables */
+/*
+
+ SKINS
+
+*/
+/* Text colors */
+.black-90 { color: rgba( 0, 0, 0, .9 ); }
+.black-80 { color: rgba( 0, 0, 0, .8 ); }
+.black-70 { color: rgba( 0, 0, 0, .7 ); }
+.black-60 { color: rgba( 0, 0, 0, .6 ); }
+.black-50 { color: rgba( 0, 0, 0, .5 ); }
+.black-40 { color: rgba( 0, 0, 0, .4 ); }
+.black-30 { color: rgba( 0, 0, 0, .3 ); }
+.black-20 { color: rgba( 0, 0, 0, .2 ); }
+.black-10 { color: rgba( 0, 0, 0, .1 ); }
+.black-05 { color: rgba( 0, 0, 0, .05 ); }
+.white-90 { color: rgba( 255, 255, 255, .9 ); }
+.white-80 { color: rgba( 255, 255, 255, .8 ); }
+.white-70 { color: rgba( 255, 255, 255, .7 ); }
+.white-60 { color: rgba( 255, 255, 255, .6 ); }
+.white-50 { color: rgba( 255, 255, 255, .5 ); }
+.white-40 { color: rgba( 255, 255, 255, .4 ); }
+.white-30 { color: rgba( 255, 255, 255, .3 ); }
+.white-20 { color: rgba( 255, 255, 255, .2 ); }
+.white-10 { color: rgba( 255, 255, 255, .1 ); }
+.black { color: #000; }
+.near-black { color: #111; }
+.dark-gray { color: #333; }
+.mid-gray { color: #555; }
+.gray { color: #777; }
+.silver { color: #999; }
+.light-silver { color: #aaa; }
+.moon-gray { color: #ccc; }
+.light-gray { color: #eee; }
+.near-white { color: #f4f4f4; }
+.white { color: #fff; }
+.dark-red { color: #f00008; }
+.red { color: #ff3223; }
+.orange { color: #f3a801; }
+.gold { color: #f2c800; }
+.yellow { color: #ffde37; }
+.purple { color: #7d5da9; }
+.light-purple { color: #8d4f92; }
+.hot-pink { color: #d62288; }
+.dark-pink { color: #c64774; }
+.pink { color: #f49cc8; }
+.dark-green { color: #006c71; }
+.green { color: #41d69f; }
+.navy { color: #001b44; }
+.dark-blue { color: #00449e; }
+.blue { color: #357edd; }
+.light-blue { color: #96ccff; }
+.lightest-blue { color: #cdecff; }
+.washed-blue { color: #f6fffe; }
+.washed-green { color: #e8fdf5; }
+.washed-yellow { color: #fff8d5; }
+.light-pink { color: #efa4b8; }
+.light-yellow { color: #f3dd70; }
+.light-red { color: #ffd3c0; }
+.bg-black-90 { background-color: rgba( 0, 0, 0, .9 ); }
+.bg-black-80 { background-color: rgba( 0, 0, 0, .8 ); }
+.bg-black-70 { background-color: rgba( 0, 0, 0, .7 ); }
+.bg-black-60 { background-color: rgba( 0, 0, 0, .6 ); }
+.bg-black-50 { background-color: rgba( 0, 0, 0, .5 ); }
+.bg-black-40 { background-color: rgba( 0, 0, 0, .4 ); }
+.bg-black-30 { background-color: rgba( 0, 0, 0, .3 ); }
+.bg-black-20 { background-color: rgba( 0, 0, 0, .2 ); }
+.bg-black-10 { background-color: rgba( 0, 0, 0, .1 ); }
+.bg-black-05 { background-color: rgba( 0, 0, 0, .05 ); }
+.bg-white-90 { background-color: rgba( 255, 255, 255, .9 ); }
+.bg-white-80 { background-color: rgba( 255, 255, 255, .8 ); }
+.bg-white-70 { background-color: rgba( 255, 255, 255, .7 ); }
+.bg-white-60 { background-color: rgba( 255, 255, 255, .6 ); }
+.bg-white-50 { background-color: rgba( 255, 255, 255, .5 ); }
+.bg-white-40 { background-color: rgba( 255, 255, 255, .4 ); }
+.bg-white-30 { background-color: rgba( 255, 255, 255, .3 ); }
+.bg-white-20 { background-color: rgba( 255, 255, 255, .2 ); }
+.bg-white-10 { background-color: rgba( 255, 255, 255, .1 ); }
+/* Background colors */
+.bg-black { background-color: #000; }
+.bg-near-black { background-color: #111; }
+.bg-dark-gray { background-color: #333; }
+.bg-mid-gray { background-color: #555; }
+.bg-gray { background-color: #777; }
+.bg-silver { background-color: #999; }
+.bg-light-silver { background-color: #aaa; }
+.bg-moon-gray { background-color: #ccc; }
+.bg-light-gray { background-color: #eee; }
+.bg-near-white { background-color: #f4f4f4; }
+.bg-white { background-color: #fff; }
+.bg-transparent { background-color: transparent; }
+.bg-dark-red { background-color: #f00008; }
+.bg-red { background-color: #ff3223; }
+.bg-orange { background-color: #f3a801; }
+.bg-gold { background-color: #f2c800; }
+.bg-yellow { background-color: #ffde37; }
+.bg-purple { background-color: #7d5da9; }
+.bg-light-purple { background-color: #8d4f92; }
+.bg-hot-pink { background-color: #d62288; }
+.bg-dark-pink { background-color: #c64774; }
+.bg-pink { background-color: #f49cc8; }
+.bg-dark-green { background-color: #006c71; }
+.bg-green { background-color: #41d69f; }
+.bg-navy { background-color: #001b44; }
+.bg-dark-blue { background-color: #00449e; }
+.bg-blue { background-color: #357edd; }
+.bg-light-blue { background-color: #96ccff; }
+.bg-lightest-blue { background-color: #cdecff; }
+.bg-washed-blue { background-color: #f6fffe; }
+.bg-washed-green { background-color: #e8fdf5; }
+.bg-washed-yellow { background-color: #fff8d5; }
+.bg-light-pink { background-color: #efa4b8; }
+.bg-light-yellow { background-color: #f3dd70; }
+.bg-light-red { background-color: #ffd3c0; }
+/* Skins for specific pseudoclasses */
+.hover-black:hover { color: #000; }
+.hover-near-black:hover { color: #111; }
+.hover-dark-gray:hover { color: #333; }
+.hover-mid-gray:hover { color: #555; }
+.hover-gray:hover { color: #777; }
+.hover-silver:hover { color: #999; }
+.hover-light-silver:hover { color: #aaa; }
+.hover-moon-gray:hover { color: #ccc; }
+.hover-light-gray:hover { color: #eee; }
+.hover-near-white:hover { color: #f4f4f4; }
+.hover-white:hover { color: #fff; }
+.hover-bg-black:hover { background-color: #000; }
+.hover-bg-near-black:hover { background-color: #111; }
+.hover-bg-dark-gray:hover { background-color: #333; }
+.hover-bg-mid-gray:hover { background-color: #555; }
+.hover-bg-gray:hover { background-color: #777; }
+.hover-bg-silver:hover { background-color: #999; }
+.hover-bg-light-silver:hover { background-color: #aaa; }
+.hover-bg-moon-gray:hover { background-color: #ccc; }
+.hover-bg-light-gray:hover { background-color: #eee; }
+.hover-bg-near-white:hover { background-color: #f4f4f4; }
+.hover-bg-white:hover { background-color: #fff; }
+.hover-bg-transparent:hover { background-color: transparent; }
+.hover-bg-dark-red:hover { background-color: #f00008; }
+.hover-bg-red:hover { background-color: #ff3223; }
+.hover-bg-orange:hover { background-color: #f3a801; }
+.hover-bg-gold:hover { background-color: #f2c800; }
+.hover-bg-yellow:hover { background-color: #ffde37; }
+.hover-bg-purple:hover { background-color: #7d5da9; }
+.hover-bg-light-purple:hover { background-color: #8d4f92; }
+.hover-bg-hot-pink:hover { background-color: #d62288; }
+.hover-bg-dark-pink:hover { background-color: #c64774; }
+.hover-bg-pink:hover { background-color: #f49cc8; }
+.hover-bg-dark-green:hover { background-color: #006c71; }
+.hover-bg-green:hover { background-color: #41d69f; }
+.hover-bg-navy:hover { background-color: #001b44; }
+.hover-bg-dark-blue:hover { background-color: #00449e; }
+.hover-bg-blue:hover { background-color: #357edd; }
+.hover-bg-light-blue:hover { background-color: #96ccff; }
+.hover-bg-lightest-blue:hover { background-color: #cdecff; }
+.hover-bg-washed-blue:hover { background-color: #f6fffe; }
+.hover-bg-washed-green:hover { background-color: #e8fdf5; }
+.hover-bg-washed-yellow:hover { background-color: #fff8d5; }
+.hover-bg-light-pink:hover { background-color: #efa4b8; }
+.hover-bg-light-yellow:hover { background-color: #f3dd70; }
+.hover-bg-light-red:hover { background-color: #ffd3c0; }
+
diff --git a/packages/tachyons-skins/css/tachyons-skins.min.css b/packages/tachyons-skins/css/tachyons-skins.min.css
new file mode 100644
index 000000000..a192f1a11
--- /dev/null
+++ b/packages/tachyons-skins/css/tachyons-skins.min.css
@@ -0,0 +1,2 @@
+.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.mid-gray{color:#555}.gray{color:#777}.silver{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#f00008}.red{color:#ff3223}.orange{color:#f3a801}.gold{color:#f2c800}.yellow{color:#ffde37}.purple{color:#7d5da9}.light-purple{color:#8d4f92}.hot-pink{color:#d62288}.dark-pink{color:#c64774}.pink{color:#f49cc8}.dark-green{color:#006c71}.green{color:#41d69f}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fff8d5}.light-pink{color:#efa4b8}.light-yellow{color:#f3dd70}.light-red{color:#ffd3c0}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#f00008}.bg-red{background-color:#ff3223}.bg-orange{background-color:#f3a801}.bg-gold{background-color:#f2c800}.bg-yellow{background-color:#ffde37}.bg-purple{background-color:#7d5da9}.bg-light-purple{background-color:#8d4f92}.bg-hot-pink{background-color:#d62288}.bg-dark-pink{background-color:#c64774}.bg-pink{background-color:#f49cc8}.bg-dark-green{background-color:#006c71}.bg-green{background-color:#41d69f}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fff8d5}.bg-light-pink{background-color:#efa4b8}.bg-light-yellow{background-color:#f3dd70}.bg-light-red{background-color:#ffd3c0}.hover-black:hover{color:#000}.hover-near-black:hover{color:#111}.hover-dark-gray:hover{color:#333}.hover-mid-gray:hover{color:#555}.hover-gray:hover{color:#777}.hover-silver:hover{color:#999}.hover-light-silver:hover{color:#aaa}.hover-moon-gray:hover{color:#ccc}.hover-light-gray:hover{color:#eee}.hover-near-white:hover{color:#f4f4f4}.hover-white:hover{color:#fff}.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:hover{background-color:transparent}.hover-bg-dark-red:hover{background-color:#f00008}.hover-bg-red:hover{background-color:#ff3223}.hover-bg-orange:hover{background-color:#f3a801}.hover-bg-gold:hover{background-color:#f2c800}.hover-bg-yellow:hover{background-color:#ffde37}.hover-bg-purple:hover{background-color:#7d5da9}.hover-bg-light-purple:hover{background-color:#8d4f92}.hover-bg-hot-pink:hover{background-color:#d62288}.hover-bg-dark-pink:hover{background-color:#c64774}.hover-bg-pink:hover{background-color:#f49cc8}.hover-bg-dark-green:hover{background-color:#006c71}.hover-bg-green:hover{background-color:#41d69f}.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:hover{background-color:#fff8d5}.hover-bg-light-pink:hover{background-color:#efa4b8}.hover-bg-light-yellow:hover{background-color:#f3dd70}.hover-bg-light-red:hover{background-color:#ffd3c0}
+
diff --git a/packages/tachyons-skins/package.json b/packages/tachyons-skins/package.json
new file mode 100644
index 000000000..e6ae6d6b2
--- /dev/null
+++ b/packages/tachyons-skins/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-skins",
+ "version": "3.2.4",
+ "style": "src/tachyons-skins.css",
+ "homepage": "http://github.com/tachyons-css/tachyons-skins",
+ "description": "Performance based css module.",
+ "keywords": [
+ "colors",
+ "design",
+ "css",
+ "tachyons",
+ "postcss"
+ ],
+ "repository": "tachyons-css/tachyons-skins",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-skins.css > css/tachyons-skins.css",
+ "build:minify": "tachyons src/tachyons-skins.css --minify > css/tachyons-skins.min.css",
+ "build:docs": "tachyons src/tachyons-skins.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "tachyons": {
+ "category": "theming",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-skins/readme.md b/packages/tachyons-skins/readme.md
new file mode 100644
index 000000000..7c3d43f79
--- /dev/null
+++ b/packages/tachyons-skins/readme.md
@@ -0,0 +1,265 @@
+# tachyons-skins 3.2.4
+
+Performance based css module.
+
+#### Stats
+
+1320 | 153 | 153
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-skins
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-skins
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-skins.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-skins";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ COLOR VARIABLES
+
+ Variables to set colors for
+ color, background-color, and border-color
+
+*/
+/* variables */
+/*
+
+ SKINS
+
+*/
+/* Text colors */
+.black-90 { color: rgba( 0, 0, 0, .9 ); }
+.black-80 { color: rgba( 0, 0, 0, .8 ); }
+.black-70 { color: rgba( 0, 0, 0, .7 ); }
+.black-60 { color: rgba( 0, 0, 0, .6 ); }
+.black-50 { color: rgba( 0, 0, 0, .5 ); }
+.black-40 { color: rgba( 0, 0, 0, .4 ); }
+.black-30 { color: rgba( 0, 0, 0, .3 ); }
+.black-20 { color: rgba( 0, 0, 0, .2 ); }
+.black-10 { color: rgba( 0, 0, 0, .1 ); }
+.black-05 { color: rgba( 0, 0, 0, .05 ); }
+.white-90 { color: rgba( 255, 255, 255, .9 ); }
+.white-80 { color: rgba( 255, 255, 255, .8 ); }
+.white-70 { color: rgba( 255, 255, 255, .7 ); }
+.white-60 { color: rgba( 255, 255, 255, .6 ); }
+.white-50 { color: rgba( 255, 255, 255, .5 ); }
+.white-40 { color: rgba( 255, 255, 255, .4 ); }
+.white-30 { color: rgba( 255, 255, 255, .3 ); }
+.white-20 { color: rgba( 255, 255, 255, .2 ); }
+.white-10 { color: rgba( 255, 255, 255, .1 ); }
+.black { color: #000; }
+.near-black { color: #111; }
+.dark-gray { color: #333; }
+.mid-gray { color: #555; }
+.gray { color: #777; }
+.silver { color: #999; }
+.light-silver { color: #aaa; }
+.moon-gray { color: #ccc; }
+.light-gray { color: #eee; }
+.near-white { color: #f4f4f4; }
+.white { color: #fff; }
+.dark-red { color: #f00008; }
+.red { color: #ff3223; }
+.orange { color: #f3a801; }
+.gold { color: #f2c800; }
+.yellow { color: #ffde37; }
+.purple { color: #7d5da9; }
+.light-purple { color: #8d4f92; }
+.hot-pink { color: #d62288; }
+.dark-pink { color: #c64774; }
+.pink { color: #f49cc8; }
+.dark-green { color: #006c71; }
+.green { color: #41d69f; }
+.navy { color: #001b44; }
+.dark-blue { color: #00449e; }
+.blue { color: #357edd; }
+.light-blue { color: #96ccff; }
+.lightest-blue { color: #cdecff; }
+.washed-blue { color: #f6fffe; }
+.washed-green { color: #e8fdf5; }
+.washed-yellow { color: #fff8d5; }
+.light-pink { color: #efa4b8; }
+.light-yellow { color: #f3dd70; }
+.light-red { color: #ffd3c0; }
+.bg-black-90 { background-color: rgba( 0, 0, 0, .9 ); }
+.bg-black-80 { background-color: rgba( 0, 0, 0, .8 ); }
+.bg-black-70 { background-color: rgba( 0, 0, 0, .7 ); }
+.bg-black-60 { background-color: rgba( 0, 0, 0, .6 ); }
+.bg-black-50 { background-color: rgba( 0, 0, 0, .5 ); }
+.bg-black-40 { background-color: rgba( 0, 0, 0, .4 ); }
+.bg-black-30 { background-color: rgba( 0, 0, 0, .3 ); }
+.bg-black-20 { background-color: rgba( 0, 0, 0, .2 ); }
+.bg-black-10 { background-color: rgba( 0, 0, 0, .1 ); }
+.bg-black-05 { background-color: rgba( 0, 0, 0, .05 ); }
+.bg-white-90 { background-color: rgba( 255, 255, 255, .9 ); }
+.bg-white-80 { background-color: rgba( 255, 255, 255, .8 ); }
+.bg-white-70 { background-color: rgba( 255, 255, 255, .7 ); }
+.bg-white-60 { background-color: rgba( 255, 255, 255, .6 ); }
+.bg-white-50 { background-color: rgba( 255, 255, 255, .5 ); }
+.bg-white-40 { background-color: rgba( 255, 255, 255, .4 ); }
+.bg-white-30 { background-color: rgba( 255, 255, 255, .3 ); }
+.bg-white-20 { background-color: rgba( 255, 255, 255, .2 ); }
+.bg-white-10 { background-color: rgba( 255, 255, 255, .1 ); }
+/* Background colors */
+.bg-black { background-color: #000; }
+.bg-near-black { background-color: #111; }
+.bg-dark-gray { background-color: #333; }
+.bg-mid-gray { background-color: #555; }
+.bg-gray { background-color: #777; }
+.bg-silver { background-color: #999; }
+.bg-light-silver { background-color: #aaa; }
+.bg-moon-gray { background-color: #ccc; }
+.bg-light-gray { background-color: #eee; }
+.bg-near-white { background-color: #f4f4f4; }
+.bg-white { background-color: #fff; }
+.bg-transparent { background-color: transparent; }
+.bg-dark-red { background-color: #f00008; }
+.bg-red { background-color: #ff3223; }
+.bg-orange { background-color: #f3a801; }
+.bg-gold { background-color: #f2c800; }
+.bg-yellow { background-color: #ffde37; }
+.bg-purple { background-color: #7d5da9; }
+.bg-light-purple { background-color: #8d4f92; }
+.bg-hot-pink { background-color: #d62288; }
+.bg-dark-pink { background-color: #c64774; }
+.bg-pink { background-color: #f49cc8; }
+.bg-dark-green { background-color: #006c71; }
+.bg-green { background-color: #41d69f; }
+.bg-navy { background-color: #001b44; }
+.bg-dark-blue { background-color: #00449e; }
+.bg-blue { background-color: #357edd; }
+.bg-light-blue { background-color: #96ccff; }
+.bg-lightest-blue { background-color: #cdecff; }
+.bg-washed-blue { background-color: #f6fffe; }
+.bg-washed-green { background-color: #e8fdf5; }
+.bg-washed-yellow { background-color: #fff8d5; }
+.bg-light-pink { background-color: #efa4b8; }
+.bg-light-yellow { background-color: #f3dd70; }
+.bg-light-red { background-color: #ffd3c0; }
+/* Skins for specific pseudoclasses */
+.hover-black:hover { color: #000; }
+.hover-near-black:hover { color: #111; }
+.hover-dark-gray:hover { color: #333; }
+.hover-mid-gray:hover { color: #555; }
+.hover-gray:hover { color: #777; }
+.hover-silver:hover { color: #999; }
+.hover-light-silver:hover { color: #aaa; }
+.hover-moon-gray:hover { color: #ccc; }
+.hover-light-gray:hover { color: #eee; }
+.hover-near-white:hover { color: #f4f4f4; }
+.hover-white:hover { color: #fff; }
+.hover-bg-black:hover { background-color: #000; }
+.hover-bg-near-black:hover { background-color: #111; }
+.hover-bg-dark-gray:hover { background-color: #333; }
+.hover-bg-mid-gray:hover { background-color: #555; }
+.hover-bg-gray:hover { background-color: #777; }
+.hover-bg-silver:hover { background-color: #999; }
+.hover-bg-light-silver:hover { background-color: #aaa; }
+.hover-bg-moon-gray:hover { background-color: #ccc; }
+.hover-bg-light-gray:hover { background-color: #eee; }
+.hover-bg-near-white:hover { background-color: #f4f4f4; }
+.hover-bg-white:hover { background-color: #fff; }
+.hover-bg-transparent:hover { background-color: transparent; }
+.hover-bg-dark-red:hover { background-color: #f00008; }
+.hover-bg-red:hover { background-color: #ff3223; }
+.hover-bg-orange:hover { background-color: #f3a801; }
+.hover-bg-gold:hover { background-color: #f2c800; }
+.hover-bg-yellow:hover { background-color: #ffde37; }
+.hover-bg-purple:hover { background-color: #7d5da9; }
+.hover-bg-light-purple:hover { background-color: #8d4f92; }
+.hover-bg-hot-pink:hover { background-color: #d62288; }
+.hover-bg-dark-pink:hover { background-color: #c64774; }
+.hover-bg-pink:hover { background-color: #f49cc8; }
+.hover-bg-dark-green:hover { background-color: #006c71; }
+.hover-bg-green:hover { background-color: #41d69f; }
+.hover-bg-navy:hover { background-color: #001b44; }
+.hover-bg-dark-blue:hover { background-color: #00449e; }
+.hover-bg-blue:hover { background-color: #357edd; }
+.hover-bg-light-blue:hover { background-color: #96ccff; }
+.hover-bg-lightest-blue:hover { background-color: #cdecff; }
+.hover-bg-washed-blue:hover { background-color: #f6fffe; }
+.hover-bg-washed-green:hover { background-color: #e8fdf5; }
+.hover-bg-washed-yellow:hover { background-color: #fff8d5; }
+.hover-bg-light-pink:hover { background-color: #efa4b8; }
+.hover-bg-light-yellow:hover { background-color: #f3dd70; }
+.hover-bg-light-red:hover { background-color: #ffd3c0; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-skins/src/tachyons-skins.css b/packages/tachyons-skins/src/tachyons-skins.css
new file mode 100644
index 000000000..b471444d1
--- /dev/null
+++ b/packages/tachyons-skins/src/tachyons-skins.css
@@ -0,0 +1,136 @@
+/*
+
+ SKINS
+ Docs: http://tachyons.io/docs/themes/skins/
+
+ Classes for setting foreground and background colors on elements.
+ If you haven't declared a border color, but set border on an element, it will
+ be set to the current text color.
+
+*/
+
+/* Text colors */
+
+.black-90 { color: var(--black-90); }
+.black-80 { color: var(--black-80); }
+.black-70 { color: var(--black-70); }
+.black-60 { color: var(--black-60); }
+.black-50 { color: var(--black-50); }
+.black-40 { color: var(--black-40); }
+.black-30 { color: var(--black-30); }
+.black-20 { color: var(--black-20); }
+.black-10 { color: var(--black-10); }
+.black-05 { color: var(--black-05); }
+
+.white-90 { color: var(--white-90); }
+.white-80 { color: var(--white-80); }
+.white-70 { color: var(--white-70); }
+.white-60 { color: var(--white-60); }
+.white-50 { color: var(--white-50); }
+.white-40 { color: var(--white-40); }
+.white-30 { color: var(--white-30); }
+.white-20 { color: var(--white-20); }
+.white-10 { color: var(--white-10); }
+
+.black { color: var(--black); }
+.near-black { color: var(--near-black); }
+.dark-gray { color: var(--dark-gray); }
+.mid-gray { color: var(--mid-gray); }
+.gray { color: var(--gray); }
+.silver { color: var(--silver); }
+.light-silver { color: var(--light-silver); }
+.moon-gray { color: var(--moon-gray); }
+.light-gray { color: var(--light-gray); }
+.near-white { color: var(--near-white); }
+.white { color: var(--white); }
+
+.dark-red { color: var(--dark-red); }
+.red { color: var(--red); }
+.light-red { color: var(--light-red); }
+.orange { color: var(--orange); }
+.gold { color: var(--gold); }
+.yellow { color: var(--yellow); }
+.light-yellow { color: var(--light-yellow); }
+.purple { color: var(--purple); }
+.light-purple { color: var(--light-purple); }
+.dark-pink { color: var(--dark-pink); }
+.hot-pink { color: var(--hot-pink); }
+.pink { color: var(--pink); }
+.light-pink { color: var(--light-pink); }
+.dark-green { color: var(--dark-green); }
+.green { color: var(--green); }
+.light-green { color: var(--light-green); }
+.navy { color: var(--navy); }
+.dark-blue { color: var(--dark-blue); }
+.blue { color: var(--blue); }
+.light-blue { color: var(--light-blue); }
+.lightest-blue { color: var(--lightest-blue); }
+.washed-blue { color: var(--washed-blue); }
+.washed-green { color: var(--washed-green); }
+.washed-yellow { color: var(--washed-yellow); }
+.washed-red { color: var(--washed-red); }
+.color-inherit { color: inherit; }
+
+.bg-black-90 { background-color: var(--black-90); }
+.bg-black-80 { background-color: var(--black-80); }
+.bg-black-70 { background-color: var(--black-70); }
+.bg-black-60 { background-color: var(--black-60); }
+.bg-black-50 { background-color: var(--black-50); }
+.bg-black-40 { background-color: var(--black-40); }
+.bg-black-30 { background-color: var(--black-30); }
+.bg-black-20 { background-color: var(--black-20); }
+.bg-black-10 { background-color: var(--black-10); }
+.bg-black-05 { background-color: var(--black-05); }
+.bg-white-90 { background-color: var(--white-90); }
+.bg-white-80 { background-color: var(--white-80); }
+.bg-white-70 { background-color: var(--white-70); }
+.bg-white-60 { background-color: var(--white-60); }
+.bg-white-50 { background-color: var(--white-50); }
+.bg-white-40 { background-color: var(--white-40); }
+.bg-white-30 { background-color: var(--white-30); }
+.bg-white-20 { background-color: var(--white-20); }
+.bg-white-10 { background-color: var(--white-10); }
+
+
+
+/* Background colors */
+
+.bg-black { background-color: var(--black); }
+.bg-near-black { background-color: var(--near-black); }
+.bg-dark-gray { background-color: var(--dark-gray); }
+.bg-mid-gray { background-color: var(--mid-gray); }
+.bg-gray { background-color: var(--gray); }
+.bg-silver { background-color: var(--silver); }
+.bg-light-silver { background-color: var(--light-silver); }
+.bg-moon-gray { background-color: var(--moon-gray); }
+.bg-light-gray { background-color: var(--light-gray); }
+.bg-near-white { background-color: var(--near-white); }
+.bg-white { background-color: var(--white); }
+.bg-transparent { background-color: var(--transparent); }
+
+.bg-dark-red { background-color: var(--dark-red); }
+.bg-red { background-color: var(--red); }
+.bg-light-red { background-color: var(--light-red); }
+.bg-orange { background-color: var(--orange); }
+.bg-gold { background-color: var(--gold); }
+.bg-yellow { background-color: var(--yellow); }
+.bg-light-yellow { background-color: var(--light-yellow); }
+.bg-purple { background-color: var(--purple); }
+.bg-light-purple { background-color: var(--light-purple); }
+.bg-dark-pink { background-color: var(--dark-pink); }
+.bg-hot-pink { background-color: var(--hot-pink); }
+.bg-pink { background-color: var(--pink); }
+.bg-light-pink { background-color: var(--light-pink); }
+.bg-dark-green { background-color: var(--dark-green); }
+.bg-green { background-color: var(--green); }
+.bg-light-green { background-color: var(--light-green); }
+.bg-navy { background-color: var(--navy); }
+.bg-dark-blue { background-color: var(--dark-blue); }
+.bg-blue { background-color: var(--blue); }
+.bg-light-blue { background-color: var(--light-blue); }
+.bg-lightest-blue { background-color: var(--lightest-blue); }
+.bg-washed-blue { background-color: var(--washed-blue); }
+.bg-washed-green { background-color: var(--washed-green); }
+.bg-washed-yellow { background-color: var(--washed-yellow); }
+.bg-washed-red { background-color: var(--washed-red); }
+.bg-inherit { background-color: inherit; }
diff --git a/packages/tachyons-spacing/.gitignore b/packages/tachyons-spacing/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-spacing/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-spacing/LICENSE.txt b/packages/tachyons-spacing/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-spacing/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-spacing/code-of-conduct.md b/packages/tachyons-spacing/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-spacing/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-spacing/css/tachyons-spacing.css b/packages/tachyons-spacing/css/tachyons-spacing.css
new file mode 100644
index 000000000..e9af5dc95
--- /dev/null
+++ b/packages/tachyons-spacing/css/tachyons-spacing.css
@@ -0,0 +1,487 @@
+/* Variables */
+/* Spacing Scale - based on a ratio of 1:2 */
+/* Media Queries */
+/*
+ SPACING
+
+ An eight step powers of two scale ranging from 0 to 16rem.
+ Namespaces are composable and thus highly grockable - check the legend below
+
+ Legend:
+
+ p = padding
+ m = margin
+
+ a = all
+ h = horizontal
+ v = vertical
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 0 = none
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+*/
+.pa0 { padding: 0; }
+.pa1 { padding: .25rem; }
+.pa2 { padding: .5rem; }
+.pa3 { padding: 1rem; }
+.pa4 { padding: 2rem; }
+.pa5 { padding: 4rem; }
+.pa6 { padding: 8rem; }
+.pa7 { padding: 16rem; }
+.pl0 { padding-left: 0; }
+.pl1 { padding-left: .25rem; }
+.pl2 { padding-left: .5rem; }
+.pl3 { padding-left: 1rem; }
+.pl4 { padding-left: 2rem; }
+.pl5 { padding-left: 4rem; }
+.pl6 { padding-left: 8rem; }
+.pl7 { padding-left: 16rem; }
+.pr0 { padding-right: 0; }
+.pr1 { padding-right: .25rem; }
+.pr2 { padding-right: .5rem; }
+.pr3 { padding-right: 1rem; }
+.pr4 { padding-right: 2rem; }
+.pr5 { padding-right: 4rem; }
+.pr6 { padding-right: 8rem; }
+.pr7 { padding-right: 16rem; }
+.pb0 { padding-bottom: 0; }
+.pb1 { padding-bottom: .25rem; }
+.pb2 { padding-bottom: .5rem; }
+.pb3 { padding-bottom: 1rem; }
+.pb4 { padding-bottom: 2rem; }
+.pb5 { padding-bottom: 4rem; }
+.pb6 { padding-bottom: 8rem; }
+.pb7 { padding-bottom: 16rem; }
+.pt0 { padding-top: 0; }
+.pt1 { padding-top: .25rem; }
+.pt2 { padding-top: .5rem; }
+.pt3 { padding-top: 1rem; }
+.pt4 { padding-top: 2rem; }
+.pt5 { padding-top: 4rem; }
+.pt6 { padding-top: 8rem; }
+.pt7 { padding-top: 16rem; }
+.pv0 { padding-top: 0; padding-bottom: 0; }
+.pv1 { padding-top: .25rem; padding-bottom: .25rem; }
+.pv2 { padding-top: .5rem; padding-bottom: .5rem; }
+.pv3 { padding-top: 1rem; padding-bottom: 1rem; }
+.pv4 { padding-top: 2rem; padding-bottom: 2rem; }
+.pv5 { padding-top: 4rem; padding-bottom: 4rem; }
+.pv6 { padding-top: 8rem; padding-bottom: 8rem; }
+.pv7 { padding-top: 16rem; padding-bottom: 16rem; }
+.ph0 { padding-left: 0; padding-right: 0; }
+.ph1 { padding-left: .25rem; padding-right: .25rem; }
+.ph2 { padding-left: .5rem; padding-right: .5rem; }
+.ph3 { padding-left: 1rem; padding-right: 1rem; }
+.ph4 { padding-left: 2rem; padding-right: 2rem; }
+.ph5 { padding-left: 4rem; padding-right: 4rem; }
+.ph6 { padding-left: 8rem; padding-right: 8rem; }
+.ph7 { padding-left: 16rem; padding-right: 16rem; }
+.ma0 { margin: 0; }
+.ma1 { margin: .25rem; }
+.ma2 { margin: .5rem; }
+.ma3 { margin: 1rem; }
+.ma4 { margin: 2rem; }
+.ma5 { margin: 4rem; }
+.ma6 { margin: 8rem; }
+.ma7 { margin: 16rem; }
+.ml0 { margin-left: 0; }
+.ml1 { margin-left: .25rem; }
+.ml2 { margin-left: .5rem; }
+.ml3 { margin-left: 1rem; }
+.ml4 { margin-left: 2rem; }
+.ml5 { margin-left: 4rem; }
+.ml6 { margin-left: 8rem; }
+.ml7 { margin-left: 16rem; }
+.mr0 { margin-right: 0; }
+.mr1 { margin-right: .25rem; }
+.mr2 { margin-right: .5rem; }
+.mr3 { margin-right: 1rem; }
+.mr4 { margin-right: 2rem; }
+.mr5 { margin-right: 4rem; }
+.mr6 { margin-right: 8rem; }
+.mr7 { margin-right: 16rem; }
+.mb0 { margin-bottom: 0; }
+.mb1 { margin-bottom: .25rem; }
+.mb2 { margin-bottom: .5rem; }
+.mb3 { margin-bottom: 1rem; }
+.mb4 { margin-bottom: 2rem; }
+.mb5 { margin-bottom: 4rem; }
+.mb6 { margin-bottom: 8rem; }
+.mb7 { margin-bottom: 16rem; }
+.mt0 { margin-top: 0; }
+.mt1 { margin-top: .25rem; }
+.mt2 { margin-top: .5rem; }
+.mt3 { margin-top: 1rem; }
+.mt4 { margin-top: 2rem; }
+.mt5 { margin-top: 4rem; }
+.mt6 { margin-top: 8rem; }
+.mt7 { margin-top: 16rem; }
+.mv0 { margin-top: 0; margin-bottom: 0; }
+.mv1 { margin-top: .25rem; margin-bottom: .25rem; }
+.mv2 { margin-top: .5rem; margin-bottom: .5rem; }
+.mv3 { margin-top: 1rem; margin-bottom: 1rem; }
+.mv4 { margin-top: 2rem; margin-bottom: 2rem; }
+.mv5 { margin-top: 4rem; margin-bottom: 4rem; }
+.mv6 { margin-top: 8rem; margin-bottom: 8rem; }
+.mv7 { margin-top: 16rem; margin-bottom: 16rem; }
+.mh0 { margin-left: 0; margin-right: 0; }
+.mh1 { margin-left: .25rem; margin-right: .25rem; }
+.mh2 { margin-left: .5rem; margin-right: .5rem; }
+.mh3 { margin-left: 1rem; margin-right: 1rem; }
+.mh4 { margin-left: 2rem; margin-right: 2rem; }
+.mh5 { margin-left: 4rem; margin-right: 4rem; }
+.mh6 { margin-left: 8rem; margin-right: 8rem; }
+.mh7 { margin-left: 16rem; margin-right: 16rem; }
+@media screen and (min-width: 30em) {
+ .pa0-ns { padding: 0; }
+ .pa1-ns { padding: .25rem; }
+ .pa2-ns { padding: .5rem; }
+ .pa3-ns { padding: 1rem; }
+ .pa4-ns { padding: 2rem; }
+ .pa5-ns { padding: 4rem; }
+ .pa6-ns { padding: 8rem; }
+ .pa7-ns { padding: 16rem; }
+ .pl0-ns { padding-left: 0; }
+ .pl1-ns { padding-left: .25rem; }
+ .pl2-ns { padding-left: .5rem; }
+ .pl3-ns { padding-left: 1rem; }
+ .pl4-ns { padding-left: 2rem; }
+ .pl5-ns { padding-left: 4rem; }
+ .pl6-ns { padding-left: 8rem; }
+ .pl7-ns { padding-left: 16rem; }
+ .pr0-ns { padding-right: 0; }
+ .pr1-ns { padding-right: .25rem; }
+ .pr2-ns { padding-right: .5rem; }
+ .pr3-ns { padding-right: 1rem; }
+ .pr4-ns { padding-right: 2rem; }
+ .pr5-ns { padding-right: 4rem; }
+ .pr6-ns { padding-right: 8rem; }
+ .pr7-ns { padding-right: 16rem; }
+ .pb0-ns { padding-bottom: 0; }
+ .pb1-ns { padding-bottom: .25rem; }
+ .pb2-ns { padding-bottom: .5rem; }
+ .pb3-ns { padding-bottom: 1rem; }
+ .pb4-ns { padding-bottom: 2rem; }
+ .pb5-ns { padding-bottom: 4rem; }
+ .pb6-ns { padding-bottom: 8rem; }
+ .pb7-ns { padding-bottom: 16rem; }
+ .pt0-ns { padding-top: 0; }
+ .pt1-ns { padding-top: .25rem; }
+ .pt2-ns { padding-top: .5rem; }
+ .pt3-ns { padding-top: 1rem; }
+ .pt4-ns { padding-top: 2rem; }
+ .pt5-ns { padding-top: 4rem; }
+ .pt6-ns { padding-top: 8rem; }
+ .pt7-ns { padding-top: 16rem; }
+ .pv0-ns { padding-top: 0; padding-bottom: 0; }
+ .pv1-ns { padding-top: .25rem; padding-bottom: .25rem; }
+ .pv2-ns { padding-top: .5rem; padding-bottom: .5rem; }
+ .pv3-ns { padding-top: 1rem; padding-bottom: 1rem; }
+ .pv4-ns { padding-top: 2rem; padding-bottom: 2rem; }
+ .pv5-ns { padding-top: 4rem; padding-bottom: 4rem; }
+ .pv6-ns { padding-top: 8rem; padding-bottom: 8rem; }
+ .pv7-ns { padding-top: 16rem; padding-bottom: 16rem; }
+ .ph0-ns { padding-left: 0; padding-right: 0; }
+ .ph1-ns { padding-left: .25rem; padding-right: .25rem; }
+ .ph2-ns { padding-left: .5rem; padding-right: .5rem; }
+ .ph3-ns { padding-left: 1rem; padding-right: 1rem; }
+ .ph4-ns { padding-left: 2rem; padding-right: 2rem; }
+ .ph5-ns { padding-left: 4rem; padding-right: 4rem; }
+ .ph6-ns { padding-left: 8rem; padding-right: 8rem; }
+ .ph7-ns { padding-left: 16rem; padding-right: 16rem; }
+ .ma0-ns { margin: 0; }
+ .ma1-ns { margin: .25rem; }
+ .ma2-ns { margin: .5rem; }
+ .ma3-ns { margin: 1rem; }
+ .ma4-ns { margin: 2rem; }
+ .ma5-ns { margin: 4rem; }
+ .ma6-ns { margin: 8rem; }
+ .ma7-ns { margin: 16rem; }
+ .ml0-ns { margin-left: 0; }
+ .ml1-ns { margin-left: .25rem; }
+ .ml2-ns { margin-left: .5rem; }
+ .ml3-ns { margin-left: 1rem; }
+ .ml4-ns { margin-left: 2rem; }
+ .ml5-ns { margin-left: 4rem; }
+ .ml6-ns { margin-left: 8rem; }
+ .ml7-ns { margin-left: 16rem; }
+ .mr0-ns { margin-right: 0; }
+ .mr1-ns { margin-right: .25rem; }
+ .mr2-ns { margin-right: .5rem; }
+ .mr3-ns { margin-right: 1rem; }
+ .mr4-ns { margin-right: 2rem; }
+ .mr5-ns { margin-right: 4rem; }
+ .mr6-ns { margin-right: 8rem; }
+ .mr7-ns { margin-right: 16rem; }
+ .mb0-ns { margin-bottom: 0; }
+ .mb1-ns { margin-bottom: .25rem; }
+ .mb2-ns { margin-bottom: .5rem; }
+ .mb3-ns { margin-bottom: 1rem; }
+ .mb4-ns { margin-bottom: 2rem; }
+ .mb5-ns { margin-bottom: 4rem; }
+ .mb6-ns { margin-bottom: 8rem; }
+ .mb7-ns { margin-bottom: 16rem; }
+ .mt0-ns { margin-top: 0; }
+ .mt1-ns { margin-top: .25rem; }
+ .mt2-ns { margin-top: .5rem; }
+ .mt3-ns { margin-top: 1rem; }
+ .mt4-ns { margin-top: 2rem; }
+ .mt5-ns { margin-top: 4rem; }
+ .mt6-ns { margin-top: 8rem; }
+ .mt7-ns { margin-top: 16rem; }
+ .mv0-ns { margin-top: 0; margin-bottom: 0; }
+ .mv1-ns { margin-top: .25rem; margin-bottom: .25rem; }
+ .mv2-ns { margin-top: .5rem; margin-bottom: .5rem; }
+ .mv3-ns { margin-top: 1rem; margin-bottom: 1rem; }
+ .mv4-ns { margin-top: 2rem; margin-bottom: 2rem; }
+ .mv5-ns { margin-top: 4rem; margin-bottom: 4rem; }
+ .mv6-ns { margin-top: 8rem; margin-bottom: 8rem; }
+ .mv7-ns { margin-top: 16rem; margin-bottom: 16rem; }
+ .mh0-ns { margin-left: 0; margin-right: 0; }
+ .mh1-ns { margin-left: .25rem; margin-right: .25rem; }
+ .mh2-ns { margin-left: .5rem; margin-right: .5rem; }
+ .mh3-ns { margin-left: 1rem; margin-right: 1rem; }
+ .mh4-ns { margin-left: 2rem; margin-right: 2rem; }
+ .mh5-ns { margin-left: 4rem; margin-right: 4rem; }
+ .mh6-ns { margin-left: 8rem; margin-right: 8rem; }
+ .mh7-ns { margin-left: 16rem; margin-right: 16rem; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .pa0-m { padding: 0; }
+ .pa1-m { padding: .25rem; }
+ .pa2-m { padding: .5rem; }
+ .pa3-m { padding: 1rem; }
+ .pa4-m { padding: 2rem; }
+ .pa5-m { padding: 4rem; }
+ .pa6-m { padding: 8rem; }
+ .pa7-m { padding: 16rem; }
+ .pl0-m { padding-left: 0; }
+ .pl1-m { padding-left: .25rem; }
+ .pl2-m { padding-left: .5rem; }
+ .pl3-m { padding-left: 1rem; }
+ .pl4-m { padding-left: 2rem; }
+ .pl5-m { padding-left: 4rem; }
+ .pl6-m { padding-left: 8rem; }
+ .pl7-m { padding-left: 16rem; }
+ .pr0-m { padding-right: 0; }
+ .pr1-m { padding-right: .25rem; }
+ .pr2-m { padding-right: .5rem; }
+ .pr3-m { padding-right: 1rem; }
+ .pr4-m { padding-right: 2rem; }
+ .pr5-m { padding-right: 4rem; }
+ .pr6-m { padding-right: 8rem; }
+ .pr7-m { padding-right: 16rem; }
+ .pb0-m { padding-bottom: 0; }
+ .pb1-m { padding-bottom: .25rem; }
+ .pb2-m { padding-bottom: .5rem; }
+ .pb3-m { padding-bottom: 1rem; }
+ .pb4-m { padding-bottom: 2rem; }
+ .pb5-m { padding-bottom: 4rem; }
+ .pb6-m { padding-bottom: 8rem; }
+ .pb7-m { padding-bottom: 16rem; }
+ .pt0-m { padding-top: 0; }
+ .pt1-m { padding-top: .25rem; }
+ .pt2-m { padding-top: .5rem; }
+ .pt3-m { padding-top: 1rem; }
+ .pt4-m { padding-top: 2rem; }
+ .pt5-m { padding-top: 4rem; }
+ .pt6-m { padding-top: 8rem; }
+ .pt7-m { padding-top: 16rem; }
+ .pv0-m { padding-top: 0; padding-bottom: 0; }
+ .pv1-m { padding-top: .25rem; padding-bottom: .25rem; }
+ .pv2-m { padding-top: .5rem; padding-bottom: .5rem; }
+ .pv3-m { padding-top: 1rem; padding-bottom: 1rem; }
+ .pv4-m { padding-top: 2rem; padding-bottom: 2rem; }
+ .pv5-m { padding-top: 4rem; padding-bottom: 4rem; }
+ .pv6-m { padding-top: 8rem; padding-bottom: 8rem; }
+ .pv7-m { padding-top: 16rem; padding-bottom: 16rem; }
+ .ph0-m { padding-left: 0; padding-right: 0; }
+ .ph1-m { padding-left: .25rem; padding-right: .25rem; }
+ .ph2-m { padding-left: .5rem; padding-right: .5rem; }
+ .ph3-m { padding-left: 1rem; padding-right: 1rem; }
+ .ph4-m { padding-left: 2rem; padding-right: 2rem; }
+ .ph5-m { padding-left: 4rem; padding-right: 4rem; }
+ .ph6-m { padding-left: 8rem; padding-right: 8rem; }
+ .ph7-m { padding-left: 16rem; padding-right: 16rem; }
+ .ma0-m { margin: 0; }
+ .ma1-m { margin: .25rem; }
+ .ma2-m { margin: .5rem; }
+ .ma3-m { margin: 1rem; }
+ .ma4-m { margin: 2rem; }
+ .ma5-m { margin: 4rem; }
+ .ma6-m { margin: 8rem; }
+ .ma7-m { margin: 16rem; }
+ .ml0-m { margin-left: 0; }
+ .ml1-m { margin-left: .25rem; }
+ .ml2-m { margin-left: .5rem; }
+ .ml3-m { margin-left: 1rem; }
+ .ml4-m { margin-left: 2rem; }
+ .ml5-m { margin-left: 4rem; }
+ .ml6-m { margin-left: 8rem; }
+ .ml7-m { margin-left: 16rem; }
+ .mr0-m { margin-right: 0; }
+ .mr1-m { margin-right: .25rem; }
+ .mr2-m { margin-right: .5rem; }
+ .mr3-m { margin-right: 1rem; }
+ .mr4-m { margin-right: 2rem; }
+ .mr5-m { margin-right: 4rem; }
+ .mr6-m { margin-right: 8rem; }
+ .mr7-m { margin-right: 16rem; }
+ .mb0-m { margin-bottom: 0; }
+ .mb1-m { margin-bottom: .25rem; }
+ .mb2-m { margin-bottom: .5rem; }
+ .mb3-m { margin-bottom: 1rem; }
+ .mb4-m { margin-bottom: 2rem; }
+ .mb5-m { margin-bottom: 4rem; }
+ .mb6-m { margin-bottom: 8rem; }
+ .mb7-m { margin-bottom: 16rem; }
+ .mt0-m { margin-top: 0; }
+ .mt1-m { margin-top: .25rem; }
+ .mt2-m { margin-top: .5rem; }
+ .mt3-m { margin-top: 1rem; }
+ .mt4-m { margin-top: 2rem; }
+ .mt5-m { margin-top: 4rem; }
+ .mt6-m { margin-top: 8rem; }
+ .mt7-m { margin-top: 16rem; }
+ .mv0-m { margin-top: 0; margin-bottom: 0; }
+ .mv1-m { margin-top: .25rem; margin-bottom: .25rem; }
+ .mv2-m { margin-top: .5rem; margin-bottom: .5rem; }
+ .mv3-m { margin-top: 1rem; margin-bottom: 1rem; }
+ .mv4-m { margin-top: 2rem; margin-bottom: 2rem; }
+ .mv5-m { margin-top: 4rem; margin-bottom: 4rem; }
+ .mv6-m { margin-top: 8rem; margin-bottom: 8rem; }
+ .mv7-m { margin-top: 16rem; margin-bottom: 16rem; }
+ .mh0-m { margin-left: 0; margin-right: 0; }
+ .mh1-m { margin-left: .25rem; margin-right: .25rem; }
+ .mh2-m { margin-left: .5rem; margin-right: .5rem; }
+ .mh3-m { margin-left: 1rem; margin-right: 1rem; }
+ .mh4-m { margin-left: 2rem; margin-right: 2rem; }
+ .mh5-m { margin-left: 4rem; margin-right: 4rem; }
+ .mh6-m { margin-left: 8rem; margin-right: 8rem; }
+ .mh7-m { margin-left: 16rem; margin-right: 16rem; }
+}
+@media screen and (min-width: 60em) {
+ .pa0-l { padding: 0; }
+ .pa1-l { padding: .25rem; }
+ .pa2-l { padding: .5rem; }
+ .pa3-l { padding: 1rem; }
+ .pa4-l { padding: 2rem; }
+ .pa5-l { padding: 4rem; }
+ .pa6-l { padding: 8rem; }
+ .pa7-l { padding: 16rem; }
+ .pl0-l { padding-left: 0; }
+ .pl1-l { padding-left: .25rem; }
+ .pl2-l { padding-left: .5rem; }
+ .pl3-l { padding-left: 1rem; }
+ .pl4-l { padding-left: 2rem; }
+ .pl5-l { padding-left: 4rem; }
+ .pl6-l { padding-left: 8rem; }
+ .pl7-l { padding-left: 16rem; }
+ .pr0-l { padding-right: 0; }
+ .pr1-l { padding-right: .25rem; }
+ .pr2-l { padding-right: .5rem; }
+ .pr3-l { padding-right: 1rem; }
+ .pr4-l { padding-right: 2rem; }
+ .pr5-l { padding-right: 4rem; }
+ .pr6-l { padding-right: 8rem; }
+ .pr7-l { padding-right: 16rem; }
+ .pb0-l { padding-bottom: 0; }
+ .pb1-l { padding-bottom: .25rem; }
+ .pb2-l { padding-bottom: .5rem; }
+ .pb3-l { padding-bottom: 1rem; }
+ .pb4-l { padding-bottom: 2rem; }
+ .pb5-l { padding-bottom: 4rem; }
+ .pb6-l { padding-bottom: 8rem; }
+ .pb7-l { padding-bottom: 16rem; }
+ .pt0-l { padding-top: 0; }
+ .pt1-l { padding-top: .25rem; }
+ .pt2-l { padding-top: .5rem; }
+ .pt3-l { padding-top: 1rem; }
+ .pt4-l { padding-top: 2rem; }
+ .pt5-l { padding-top: 4rem; }
+ .pt6-l { padding-top: 8rem; }
+ .pt7-l { padding-top: 16rem; }
+ .pv0-l { padding-top: 0; padding-bottom: 0; }
+ .pv1-l { padding-top: .25rem; padding-bottom: .25rem; }
+ .pv2-l { padding-top: .5rem; padding-bottom: .5rem; }
+ .pv3-l { padding-top: 1rem; padding-bottom: 1rem; }
+ .pv4-l { padding-top: 2rem; padding-bottom: 2rem; }
+ .pv5-l { padding-top: 4rem; padding-bottom: 4rem; }
+ .pv6-l { padding-top: 8rem; padding-bottom: 8rem; }
+ .pv7-l { padding-top: 16rem; padding-bottom: 16rem; }
+ .ph0-l { padding-left: 0; padding-right: 0; }
+ .ph1-l { padding-left: .25rem; padding-right: .25rem; }
+ .ph2-l { padding-left: .5rem; padding-right: .5rem; }
+ .ph3-l { padding-left: 1rem; padding-right: 1rem; }
+ .ph4-l { padding-left: 2rem; padding-right: 2rem; }
+ .ph5-l { padding-left: 4rem; padding-right: 4rem; }
+ .ph6-l { padding-left: 8rem; padding-right: 8rem; }
+ .ph7-l { padding-left: 16rem; padding-right: 16rem; }
+ .ma0-l { margin: 0; }
+ .ma1-l { margin: .25rem; }
+ .ma2-l { margin: .5rem; }
+ .ma3-l { margin: 1rem; }
+ .ma4-l { margin: 2rem; }
+ .ma5-l { margin: 4rem; }
+ .ma6-l { margin: 8rem; }
+ .ma7-l { margin: 16rem; }
+ .ml0-l { margin-left: 0; }
+ .ml1-l { margin-left: .25rem; }
+ .ml2-l { margin-left: .5rem; }
+ .ml3-l { margin-left: 1rem; }
+ .ml4-l { margin-left: 2rem; }
+ .ml5-l { margin-left: 4rem; }
+ .ml6-l { margin-left: 8rem; }
+ .ml7-l { margin-left: 16rem; }
+ .mr0-l { margin-right: 0; }
+ .mr1-l { margin-right: .25rem; }
+ .mr2-l { margin-right: .5rem; }
+ .mr3-l { margin-right: 1rem; }
+ .mr4-l { margin-right: 2rem; }
+ .mr5-l { margin-right: 4rem; }
+ .mr6-l { margin-right: 8rem; }
+ .mr7-l { margin-right: 16rem; }
+ .mb0-l { margin-bottom: 0; }
+ .mb1-l { margin-bottom: .25rem; }
+ .mb2-l { margin-bottom: .5rem; }
+ .mb3-l { margin-bottom: 1rem; }
+ .mb4-l { margin-bottom: 2rem; }
+ .mb5-l { margin-bottom: 4rem; }
+ .mb6-l { margin-bottom: 8rem; }
+ .mb7-l { margin-bottom: 16rem; }
+ .mt0-l { margin-top: 0; }
+ .mt1-l { margin-top: .25rem; }
+ .mt2-l { margin-top: .5rem; }
+ .mt3-l { margin-top: 1rem; }
+ .mt4-l { margin-top: 2rem; }
+ .mt5-l { margin-top: 4rem; }
+ .mt6-l { margin-top: 8rem; }
+ .mt7-l { margin-top: 16rem; }
+ .mv0-l { margin-top: 0; margin-bottom: 0; }
+ .mv1-l { margin-top: .25rem; margin-bottom: .25rem; }
+ .mv2-l { margin-top: .5rem; margin-bottom: .5rem; }
+ .mv3-l { margin-top: 1rem; margin-bottom: 1rem; }
+ .mv4-l { margin-top: 2rem; margin-bottom: 2rem; }
+ .mv5-l { margin-top: 4rem; margin-bottom: 4rem; }
+ .mv6-l { margin-top: 8rem; margin-bottom: 8rem; }
+ .mv7-l { margin-top: 16rem; margin-bottom: 16rem; }
+ .mh0-l { margin-left: 0; margin-right: 0; }
+ .mh1-l { margin-left: .25rem; margin-right: .25rem; }
+ .mh2-l { margin-left: .5rem; margin-right: .5rem; }
+ .mh3-l { margin-left: 1rem; margin-right: 1rem; }
+ .mh4-l { margin-left: 2rem; margin-right: 2rem; }
+ .mh5-l { margin-left: 4rem; margin-right: 4rem; }
+ .mh6-l { margin-left: 8rem; margin-right: 8rem; }
+ .mh7-l { margin-left: 16rem; margin-right: 16rem; }
+}
+
diff --git a/packages/tachyons-spacing/css/tachyons-spacing.min.css b/packages/tachyons-spacing/css/tachyons-spacing.min.css
new file mode 100644
index 000000000..93f05812d
--- /dev/null
+++ b/packages/tachyons-spacing/css/tachyons-spacing.min.css
@@ -0,0 +1,2 @@
+.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-top:0;padding-bottom:0}.pv1{padding-top:.25rem;padding-bottom:.25rem}.pv2{padding-top:.5rem;padding-bottom:.5rem}.pv3{padding-top:1rem;padding-bottom:1rem}.pv4{padding-top:2rem;padding-bottom:2rem}.pv5{padding-top:4rem;padding-bottom:4rem}.pv6{padding-top:8rem;padding-bottom:8rem}.pv7{padding-top:16rem;padding-bottom:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-top:0;margin-bottom:0}.mv1{margin-top:.25rem;margin-bottom:.25rem}.mv2{margin-top:.5rem;margin-bottom:.5rem}.mv3{margin-top:1rem;margin-bottom:1rem}.mv4{margin-top:2rem;margin-bottom:2rem}.mv5{margin-top:4rem;margin-bottom:4rem}.mv6{margin-top:8rem;margin-bottom:8rem}.mv7{margin-top:16rem;margin-bottom:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-top:0;padding-bottom:0}.pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.pv3-ns{padding-top:1rem;padding-bottom:1rem}.pv4-ns{padding-top:2rem;padding-bottom:2rem}.pv5-ns{padding-top:4rem;padding-bottom:4rem}.pv6-ns{padding-top:8rem;padding-bottom:8rem}.pv7-ns{padding-top:16rem;padding-bottom:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-top:0;margin-bottom:0}.mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.mv3-ns{margin-top:1rem;margin-bottom:1rem}.mv4-ns{margin-top:2rem;margin-bottom:2rem}.mv5-ns{margin-top:4rem;margin-bottom:4rem}.mv6-ns{margin-top:8rem;margin-bottom:8rem}.mv7-ns{margin-top:16rem;margin-bottom:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em) and (max-width:60em){.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-top:0;padding-bottom:0}.pv1-m{padding-top:.25rem;padding-bottom:.25rem}.pv2-m{padding-top:.5rem;padding-bottom:.5rem}.pv3-m{padding-top:1rem;padding-bottom:1rem}.pv4-m{padding-top:2rem;padding-bottom:2rem}.pv5-m{padding-top:4rem;padding-bottom:4rem}.pv6-m{padding-top:8rem;padding-bottom:8rem}.pv7-m{padding-top:16rem;padding-bottom:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-top:0;margin-bottom:0}.mv1-m{margin-top:.25rem;margin-bottom:.25rem}.mv2-m{margin-top:.5rem;margin-bottom:.5rem}.mv3-m{margin-top:1rem;margin-bottom:1rem}.mv4-m{margin-top:2rem;margin-bottom:2rem}.mv5-m{margin-top:4rem;margin-bottom:4rem}.mv6-m{margin-top:8rem;margin-bottom:8rem}.mv7-m{margin-top:16rem;margin-bottom:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-top:0;padding-bottom:0}.pv1-l{padding-top:.25rem;padding-bottom:.25rem}.pv2-l{padding-top:.5rem;padding-bottom:.5rem}.pv3-l{padding-top:1rem;padding-bottom:1rem}.pv4-l{padding-top:2rem;padding-bottom:2rem}.pv5-l{padding-top:4rem;padding-bottom:4rem}.pv6-l{padding-top:8rem;padding-bottom:8rem}.pv7-l{padding-top:16rem;padding-bottom:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-top:0;margin-bottom:0}.mv1-l{margin-top:.25rem;margin-bottom:.25rem}.mv2-l{margin-top:.5rem;margin-bottom:.5rem}.mv3-l{margin-top:1rem;margin-bottom:1rem}.mv4-l{margin-top:2rem;margin-bottom:2rem}.mv5-l{margin-top:4rem;margin-bottom:4rem}.mv6-l{margin-top:8rem;margin-bottom:8rem}.mv7-l{margin-top:16rem;margin-bottom:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}}
+
diff --git a/packages/tachyons-spacing/package.json b/packages/tachyons-spacing/package.json
new file mode 100644
index 000000000..8e5dc752c
--- /dev/null
+++ b/packages/tachyons-spacing/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-spacing",
+ "version": "6.0.0",
+ "style": "src/tachyons-spacing.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-spacing",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-spacing.css > css/tachyons-spacing.css",
+ "build:minify": "tachyons src/tachyons-spacing.css --minify > css/tachyons-spacing.min.css",
+ "build:docs": "tachyons src/tachyons-spacing.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-spacing/readme.md b/packages/tachyons-spacing/readme.md
new file mode 100644
index 000000000..dca340749
--- /dev/null
+++ b/packages/tachyons-spacing/readme.md
@@ -0,0 +1,581 @@
+# tachyons-spacing 6.0.0
+
+Performance based css module.
+
+#### Stats
+
+2273 | 448 | 576
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-spacing
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-spacing
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-spacing.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-spacing";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/* Variables */
+/* Spacing Scale - based on a ratio of 1:2 */
+/* Media Queries */
+/*
+ SPACING
+
+ An eight step powers of two scale ranging from 0 to 16rem.
+ Namespaces are composable and thus highly grockable - check the legend below
+
+ Legend:
+
+ p = padding
+ m = margin
+
+ a = all
+ h = horizontal
+ v = vertical
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 0 = none
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+*/
+.pa0 { padding: 0; }
+.pa1 { padding: .25rem; }
+.pa2 { padding: .5rem; }
+.pa3 { padding: 1rem; }
+.pa4 { padding: 2rem; }
+.pa5 { padding: 4rem; }
+.pa6 { padding: 8rem; }
+.pa7 { padding: 16rem; }
+.pl0 { padding-left: 0; }
+.pl1 { padding-left: .25rem; }
+.pl2 { padding-left: .5rem; }
+.pl3 { padding-left: 1rem; }
+.pl4 { padding-left: 2rem; }
+.pl5 { padding-left: 4rem; }
+.pl6 { padding-left: 8rem; }
+.pl7 { padding-left: 16rem; }
+.pr0 { padding-right: 0; }
+.pr1 { padding-right: .25rem; }
+.pr2 { padding-right: .5rem; }
+.pr3 { padding-right: 1rem; }
+.pr4 { padding-right: 2rem; }
+.pr5 { padding-right: 4rem; }
+.pr6 { padding-right: 8rem; }
+.pr7 { padding-right: 16rem; }
+.pb0 { padding-bottom: 0; }
+.pb1 { padding-bottom: .25rem; }
+.pb2 { padding-bottom: .5rem; }
+.pb3 { padding-bottom: 1rem; }
+.pb4 { padding-bottom: 2rem; }
+.pb5 { padding-bottom: 4rem; }
+.pb6 { padding-bottom: 8rem; }
+.pb7 { padding-bottom: 16rem; }
+.pt0 { padding-top: 0; }
+.pt1 { padding-top: .25rem; }
+.pt2 { padding-top: .5rem; }
+.pt3 { padding-top: 1rem; }
+.pt4 { padding-top: 2rem; }
+.pt5 { padding-top: 4rem; }
+.pt6 { padding-top: 8rem; }
+.pt7 { padding-top: 16rem; }
+.pv0 { padding-top: 0; padding-bottom: 0; }
+.pv1 { padding-top: .25rem; padding-bottom: .25rem; }
+.pv2 { padding-top: .5rem; padding-bottom: .5rem; }
+.pv3 { padding-top: 1rem; padding-bottom: 1rem; }
+.pv4 { padding-top: 2rem; padding-bottom: 2rem; }
+.pv5 { padding-top: 4rem; padding-bottom: 4rem; }
+.pv6 { padding-top: 8rem; padding-bottom: 8rem; }
+.pv7 { padding-top: 16rem; padding-bottom: 16rem; }
+.ph0 { padding-left: 0; padding-right: 0; }
+.ph1 { padding-left: .25rem; padding-right: .25rem; }
+.ph2 { padding-left: .5rem; padding-right: .5rem; }
+.ph3 { padding-left: 1rem; padding-right: 1rem; }
+.ph4 { padding-left: 2rem; padding-right: 2rem; }
+.ph5 { padding-left: 4rem; padding-right: 4rem; }
+.ph6 { padding-left: 8rem; padding-right: 8rem; }
+.ph7 { padding-left: 16rem; padding-right: 16rem; }
+.ma0 { margin: 0; }
+.ma1 { margin: .25rem; }
+.ma2 { margin: .5rem; }
+.ma3 { margin: 1rem; }
+.ma4 { margin: 2rem; }
+.ma5 { margin: 4rem; }
+.ma6 { margin: 8rem; }
+.ma7 { margin: 16rem; }
+.ml0 { margin-left: 0; }
+.ml1 { margin-left: .25rem; }
+.ml2 { margin-left: .5rem; }
+.ml3 { margin-left: 1rem; }
+.ml4 { margin-left: 2rem; }
+.ml5 { margin-left: 4rem; }
+.ml6 { margin-left: 8rem; }
+.ml7 { margin-left: 16rem; }
+.mr0 { margin-right: 0; }
+.mr1 { margin-right: .25rem; }
+.mr2 { margin-right: .5rem; }
+.mr3 { margin-right: 1rem; }
+.mr4 { margin-right: 2rem; }
+.mr5 { margin-right: 4rem; }
+.mr6 { margin-right: 8rem; }
+.mr7 { margin-right: 16rem; }
+.mb0 { margin-bottom: 0; }
+.mb1 { margin-bottom: .25rem; }
+.mb2 { margin-bottom: .5rem; }
+.mb3 { margin-bottom: 1rem; }
+.mb4 { margin-bottom: 2rem; }
+.mb5 { margin-bottom: 4rem; }
+.mb6 { margin-bottom: 8rem; }
+.mb7 { margin-bottom: 16rem; }
+.mt0 { margin-top: 0; }
+.mt1 { margin-top: .25rem; }
+.mt2 { margin-top: .5rem; }
+.mt3 { margin-top: 1rem; }
+.mt4 { margin-top: 2rem; }
+.mt5 { margin-top: 4rem; }
+.mt6 { margin-top: 8rem; }
+.mt7 { margin-top: 16rem; }
+.mv0 { margin-top: 0; margin-bottom: 0; }
+.mv1 { margin-top: .25rem; margin-bottom: .25rem; }
+.mv2 { margin-top: .5rem; margin-bottom: .5rem; }
+.mv3 { margin-top: 1rem; margin-bottom: 1rem; }
+.mv4 { margin-top: 2rem; margin-bottom: 2rem; }
+.mv5 { margin-top: 4rem; margin-bottom: 4rem; }
+.mv6 { margin-top: 8rem; margin-bottom: 8rem; }
+.mv7 { margin-top: 16rem; margin-bottom: 16rem; }
+.mh0 { margin-left: 0; margin-right: 0; }
+.mh1 { margin-left: .25rem; margin-right: .25rem; }
+.mh2 { margin-left: .5rem; margin-right: .5rem; }
+.mh3 { margin-left: 1rem; margin-right: 1rem; }
+.mh4 { margin-left: 2rem; margin-right: 2rem; }
+.mh5 { margin-left: 4rem; margin-right: 4rem; }
+.mh6 { margin-left: 8rem; margin-right: 8rem; }
+.mh7 { margin-left: 16rem; margin-right: 16rem; }
+@media screen and (min-width: 30em) {
+ .pa0-ns { padding: 0; }
+ .pa1-ns { padding: .25rem; }
+ .pa2-ns { padding: .5rem; }
+ .pa3-ns { padding: 1rem; }
+ .pa4-ns { padding: 2rem; }
+ .pa5-ns { padding: 4rem; }
+ .pa6-ns { padding: 8rem; }
+ .pa7-ns { padding: 16rem; }
+ .pl0-ns { padding-left: 0; }
+ .pl1-ns { padding-left: .25rem; }
+ .pl2-ns { padding-left: .5rem; }
+ .pl3-ns { padding-left: 1rem; }
+ .pl4-ns { padding-left: 2rem; }
+ .pl5-ns { padding-left: 4rem; }
+ .pl6-ns { padding-left: 8rem; }
+ .pl7-ns { padding-left: 16rem; }
+ .pr0-ns { padding-right: 0; }
+ .pr1-ns { padding-right: .25rem; }
+ .pr2-ns { padding-right: .5rem; }
+ .pr3-ns { padding-right: 1rem; }
+ .pr4-ns { padding-right: 2rem; }
+ .pr5-ns { padding-right: 4rem; }
+ .pr6-ns { padding-right: 8rem; }
+ .pr7-ns { padding-right: 16rem; }
+ .pb0-ns { padding-bottom: 0; }
+ .pb1-ns { padding-bottom: .25rem; }
+ .pb2-ns { padding-bottom: .5rem; }
+ .pb3-ns { padding-bottom: 1rem; }
+ .pb4-ns { padding-bottom: 2rem; }
+ .pb5-ns { padding-bottom: 4rem; }
+ .pb6-ns { padding-bottom: 8rem; }
+ .pb7-ns { padding-bottom: 16rem; }
+ .pt0-ns { padding-top: 0; }
+ .pt1-ns { padding-top: .25rem; }
+ .pt2-ns { padding-top: .5rem; }
+ .pt3-ns { padding-top: 1rem; }
+ .pt4-ns { padding-top: 2rem; }
+ .pt5-ns { padding-top: 4rem; }
+ .pt6-ns { padding-top: 8rem; }
+ .pt7-ns { padding-top: 16rem; }
+ .pv0-ns { padding-top: 0; padding-bottom: 0; }
+ .pv1-ns { padding-top: .25rem; padding-bottom: .25rem; }
+ .pv2-ns { padding-top: .5rem; padding-bottom: .5rem; }
+ .pv3-ns { padding-top: 1rem; padding-bottom: 1rem; }
+ .pv4-ns { padding-top: 2rem; padding-bottom: 2rem; }
+ .pv5-ns { padding-top: 4rem; padding-bottom: 4rem; }
+ .pv6-ns { padding-top: 8rem; padding-bottom: 8rem; }
+ .pv7-ns { padding-top: 16rem; padding-bottom: 16rem; }
+ .ph0-ns { padding-left: 0; padding-right: 0; }
+ .ph1-ns { padding-left: .25rem; padding-right: .25rem; }
+ .ph2-ns { padding-left: .5rem; padding-right: .5rem; }
+ .ph3-ns { padding-left: 1rem; padding-right: 1rem; }
+ .ph4-ns { padding-left: 2rem; padding-right: 2rem; }
+ .ph5-ns { padding-left: 4rem; padding-right: 4rem; }
+ .ph6-ns { padding-left: 8rem; padding-right: 8rem; }
+ .ph7-ns { padding-left: 16rem; padding-right: 16rem; }
+ .ma0-ns { margin: 0; }
+ .ma1-ns { margin: .25rem; }
+ .ma2-ns { margin: .5rem; }
+ .ma3-ns { margin: 1rem; }
+ .ma4-ns { margin: 2rem; }
+ .ma5-ns { margin: 4rem; }
+ .ma6-ns { margin: 8rem; }
+ .ma7-ns { margin: 16rem; }
+ .ml0-ns { margin-left: 0; }
+ .ml1-ns { margin-left: .25rem; }
+ .ml2-ns { margin-left: .5rem; }
+ .ml3-ns { margin-left: 1rem; }
+ .ml4-ns { margin-left: 2rem; }
+ .ml5-ns { margin-left: 4rem; }
+ .ml6-ns { margin-left: 8rem; }
+ .ml7-ns { margin-left: 16rem; }
+ .mr0-ns { margin-right: 0; }
+ .mr1-ns { margin-right: .25rem; }
+ .mr2-ns { margin-right: .5rem; }
+ .mr3-ns { margin-right: 1rem; }
+ .mr4-ns { margin-right: 2rem; }
+ .mr5-ns { margin-right: 4rem; }
+ .mr6-ns { margin-right: 8rem; }
+ .mr7-ns { margin-right: 16rem; }
+ .mb0-ns { margin-bottom: 0; }
+ .mb1-ns { margin-bottom: .25rem; }
+ .mb2-ns { margin-bottom: .5rem; }
+ .mb3-ns { margin-bottom: 1rem; }
+ .mb4-ns { margin-bottom: 2rem; }
+ .mb5-ns { margin-bottom: 4rem; }
+ .mb6-ns { margin-bottom: 8rem; }
+ .mb7-ns { margin-bottom: 16rem; }
+ .mt0-ns { margin-top: 0; }
+ .mt1-ns { margin-top: .25rem; }
+ .mt2-ns { margin-top: .5rem; }
+ .mt3-ns { margin-top: 1rem; }
+ .mt4-ns { margin-top: 2rem; }
+ .mt5-ns { margin-top: 4rem; }
+ .mt6-ns { margin-top: 8rem; }
+ .mt7-ns { margin-top: 16rem; }
+ .mv0-ns { margin-top: 0; margin-bottom: 0; }
+ .mv1-ns { margin-top: .25rem; margin-bottom: .25rem; }
+ .mv2-ns { margin-top: .5rem; margin-bottom: .5rem; }
+ .mv3-ns { margin-top: 1rem; margin-bottom: 1rem; }
+ .mv4-ns { margin-top: 2rem; margin-bottom: 2rem; }
+ .mv5-ns { margin-top: 4rem; margin-bottom: 4rem; }
+ .mv6-ns { margin-top: 8rem; margin-bottom: 8rem; }
+ .mv7-ns { margin-top: 16rem; margin-bottom: 16rem; }
+ .mh0-ns { margin-left: 0; margin-right: 0; }
+ .mh1-ns { margin-left: .25rem; margin-right: .25rem; }
+ .mh2-ns { margin-left: .5rem; margin-right: .5rem; }
+ .mh3-ns { margin-left: 1rem; margin-right: 1rem; }
+ .mh4-ns { margin-left: 2rem; margin-right: 2rem; }
+ .mh5-ns { margin-left: 4rem; margin-right: 4rem; }
+ .mh6-ns { margin-left: 8rem; margin-right: 8rem; }
+ .mh7-ns { margin-left: 16rem; margin-right: 16rem; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .pa0-m { padding: 0; }
+ .pa1-m { padding: .25rem; }
+ .pa2-m { padding: .5rem; }
+ .pa3-m { padding: 1rem; }
+ .pa4-m { padding: 2rem; }
+ .pa5-m { padding: 4rem; }
+ .pa6-m { padding: 8rem; }
+ .pa7-m { padding: 16rem; }
+ .pl0-m { padding-left: 0; }
+ .pl1-m { padding-left: .25rem; }
+ .pl2-m { padding-left: .5rem; }
+ .pl3-m { padding-left: 1rem; }
+ .pl4-m { padding-left: 2rem; }
+ .pl5-m { padding-left: 4rem; }
+ .pl6-m { padding-left: 8rem; }
+ .pl7-m { padding-left: 16rem; }
+ .pr0-m { padding-right: 0; }
+ .pr1-m { padding-right: .25rem; }
+ .pr2-m { padding-right: .5rem; }
+ .pr3-m { padding-right: 1rem; }
+ .pr4-m { padding-right: 2rem; }
+ .pr5-m { padding-right: 4rem; }
+ .pr6-m { padding-right: 8rem; }
+ .pr7-m { padding-right: 16rem; }
+ .pb0-m { padding-bottom: 0; }
+ .pb1-m { padding-bottom: .25rem; }
+ .pb2-m { padding-bottom: .5rem; }
+ .pb3-m { padding-bottom: 1rem; }
+ .pb4-m { padding-bottom: 2rem; }
+ .pb5-m { padding-bottom: 4rem; }
+ .pb6-m { padding-bottom: 8rem; }
+ .pb7-m { padding-bottom: 16rem; }
+ .pt0-m { padding-top: 0; }
+ .pt1-m { padding-top: .25rem; }
+ .pt2-m { padding-top: .5rem; }
+ .pt3-m { padding-top: 1rem; }
+ .pt4-m { padding-top: 2rem; }
+ .pt5-m { padding-top: 4rem; }
+ .pt6-m { padding-top: 8rem; }
+ .pt7-m { padding-top: 16rem; }
+ .pv0-m { padding-top: 0; padding-bottom: 0; }
+ .pv1-m { padding-top: .25rem; padding-bottom: .25rem; }
+ .pv2-m { padding-top: .5rem; padding-bottom: .5rem; }
+ .pv3-m { padding-top: 1rem; padding-bottom: 1rem; }
+ .pv4-m { padding-top: 2rem; padding-bottom: 2rem; }
+ .pv5-m { padding-top: 4rem; padding-bottom: 4rem; }
+ .pv6-m { padding-top: 8rem; padding-bottom: 8rem; }
+ .pv7-m { padding-top: 16rem; padding-bottom: 16rem; }
+ .ph0-m { padding-left: 0; padding-right: 0; }
+ .ph1-m { padding-left: .25rem; padding-right: .25rem; }
+ .ph2-m { padding-left: .5rem; padding-right: .5rem; }
+ .ph3-m { padding-left: 1rem; padding-right: 1rem; }
+ .ph4-m { padding-left: 2rem; padding-right: 2rem; }
+ .ph5-m { padding-left: 4rem; padding-right: 4rem; }
+ .ph6-m { padding-left: 8rem; padding-right: 8rem; }
+ .ph7-m { padding-left: 16rem; padding-right: 16rem; }
+ .ma0-m { margin: 0; }
+ .ma1-m { margin: .25rem; }
+ .ma2-m { margin: .5rem; }
+ .ma3-m { margin: 1rem; }
+ .ma4-m { margin: 2rem; }
+ .ma5-m { margin: 4rem; }
+ .ma6-m { margin: 8rem; }
+ .ma7-m { margin: 16rem; }
+ .ml0-m { margin-left: 0; }
+ .ml1-m { margin-left: .25rem; }
+ .ml2-m { margin-left: .5rem; }
+ .ml3-m { margin-left: 1rem; }
+ .ml4-m { margin-left: 2rem; }
+ .ml5-m { margin-left: 4rem; }
+ .ml6-m { margin-left: 8rem; }
+ .ml7-m { margin-left: 16rem; }
+ .mr0-m { margin-right: 0; }
+ .mr1-m { margin-right: .25rem; }
+ .mr2-m { margin-right: .5rem; }
+ .mr3-m { margin-right: 1rem; }
+ .mr4-m { margin-right: 2rem; }
+ .mr5-m { margin-right: 4rem; }
+ .mr6-m { margin-right: 8rem; }
+ .mr7-m { margin-right: 16rem; }
+ .mb0-m { margin-bottom: 0; }
+ .mb1-m { margin-bottom: .25rem; }
+ .mb2-m { margin-bottom: .5rem; }
+ .mb3-m { margin-bottom: 1rem; }
+ .mb4-m { margin-bottom: 2rem; }
+ .mb5-m { margin-bottom: 4rem; }
+ .mb6-m { margin-bottom: 8rem; }
+ .mb7-m { margin-bottom: 16rem; }
+ .mt0-m { margin-top: 0; }
+ .mt1-m { margin-top: .25rem; }
+ .mt2-m { margin-top: .5rem; }
+ .mt3-m { margin-top: 1rem; }
+ .mt4-m { margin-top: 2rem; }
+ .mt5-m { margin-top: 4rem; }
+ .mt6-m { margin-top: 8rem; }
+ .mt7-m { margin-top: 16rem; }
+ .mv0-m { margin-top: 0; margin-bottom: 0; }
+ .mv1-m { margin-top: .25rem; margin-bottom: .25rem; }
+ .mv2-m { margin-top: .5rem; margin-bottom: .5rem; }
+ .mv3-m { margin-top: 1rem; margin-bottom: 1rem; }
+ .mv4-m { margin-top: 2rem; margin-bottom: 2rem; }
+ .mv5-m { margin-top: 4rem; margin-bottom: 4rem; }
+ .mv6-m { margin-top: 8rem; margin-bottom: 8rem; }
+ .mv7-m { margin-top: 16rem; margin-bottom: 16rem; }
+ .mh0-m { margin-left: 0; margin-right: 0; }
+ .mh1-m { margin-left: .25rem; margin-right: .25rem; }
+ .mh2-m { margin-left: .5rem; margin-right: .5rem; }
+ .mh3-m { margin-left: 1rem; margin-right: 1rem; }
+ .mh4-m { margin-left: 2rem; margin-right: 2rem; }
+ .mh5-m { margin-left: 4rem; margin-right: 4rem; }
+ .mh6-m { margin-left: 8rem; margin-right: 8rem; }
+ .mh7-m { margin-left: 16rem; margin-right: 16rem; }
+}
+@media screen and (min-width: 60em) {
+ .pa0-l { padding: 0; }
+ .pa1-l { padding: .25rem; }
+ .pa2-l { padding: .5rem; }
+ .pa3-l { padding: 1rem; }
+ .pa4-l { padding: 2rem; }
+ .pa5-l { padding: 4rem; }
+ .pa6-l { padding: 8rem; }
+ .pa7-l { padding: 16rem; }
+ .pl0-l { padding-left: 0; }
+ .pl1-l { padding-left: .25rem; }
+ .pl2-l { padding-left: .5rem; }
+ .pl3-l { padding-left: 1rem; }
+ .pl4-l { padding-left: 2rem; }
+ .pl5-l { padding-left: 4rem; }
+ .pl6-l { padding-left: 8rem; }
+ .pl7-l { padding-left: 16rem; }
+ .pr0-l { padding-right: 0; }
+ .pr1-l { padding-right: .25rem; }
+ .pr2-l { padding-right: .5rem; }
+ .pr3-l { padding-right: 1rem; }
+ .pr4-l { padding-right: 2rem; }
+ .pr5-l { padding-right: 4rem; }
+ .pr6-l { padding-right: 8rem; }
+ .pr7-l { padding-right: 16rem; }
+ .pb0-l { padding-bottom: 0; }
+ .pb1-l { padding-bottom: .25rem; }
+ .pb2-l { padding-bottom: .5rem; }
+ .pb3-l { padding-bottom: 1rem; }
+ .pb4-l { padding-bottom: 2rem; }
+ .pb5-l { padding-bottom: 4rem; }
+ .pb6-l { padding-bottom: 8rem; }
+ .pb7-l { padding-bottom: 16rem; }
+ .pt0-l { padding-top: 0; }
+ .pt1-l { padding-top: .25rem; }
+ .pt2-l { padding-top: .5rem; }
+ .pt3-l { padding-top: 1rem; }
+ .pt4-l { padding-top: 2rem; }
+ .pt5-l { padding-top: 4rem; }
+ .pt6-l { padding-top: 8rem; }
+ .pt7-l { padding-top: 16rem; }
+ .pv0-l { padding-top: 0; padding-bottom: 0; }
+ .pv1-l { padding-top: .25rem; padding-bottom: .25rem; }
+ .pv2-l { padding-top: .5rem; padding-bottom: .5rem; }
+ .pv3-l { padding-top: 1rem; padding-bottom: 1rem; }
+ .pv4-l { padding-top: 2rem; padding-bottom: 2rem; }
+ .pv5-l { padding-top: 4rem; padding-bottom: 4rem; }
+ .pv6-l { padding-top: 8rem; padding-bottom: 8rem; }
+ .pv7-l { padding-top: 16rem; padding-bottom: 16rem; }
+ .ph0-l { padding-left: 0; padding-right: 0; }
+ .ph1-l { padding-left: .25rem; padding-right: .25rem; }
+ .ph2-l { padding-left: .5rem; padding-right: .5rem; }
+ .ph3-l { padding-left: 1rem; padding-right: 1rem; }
+ .ph4-l { padding-left: 2rem; padding-right: 2rem; }
+ .ph5-l { padding-left: 4rem; padding-right: 4rem; }
+ .ph6-l { padding-left: 8rem; padding-right: 8rem; }
+ .ph7-l { padding-left: 16rem; padding-right: 16rem; }
+ .ma0-l { margin: 0; }
+ .ma1-l { margin: .25rem; }
+ .ma2-l { margin: .5rem; }
+ .ma3-l { margin: 1rem; }
+ .ma4-l { margin: 2rem; }
+ .ma5-l { margin: 4rem; }
+ .ma6-l { margin: 8rem; }
+ .ma7-l { margin: 16rem; }
+ .ml0-l { margin-left: 0; }
+ .ml1-l { margin-left: .25rem; }
+ .ml2-l { margin-left: .5rem; }
+ .ml3-l { margin-left: 1rem; }
+ .ml4-l { margin-left: 2rem; }
+ .ml5-l { margin-left: 4rem; }
+ .ml6-l { margin-left: 8rem; }
+ .ml7-l { margin-left: 16rem; }
+ .mr0-l { margin-right: 0; }
+ .mr1-l { margin-right: .25rem; }
+ .mr2-l { margin-right: .5rem; }
+ .mr3-l { margin-right: 1rem; }
+ .mr4-l { margin-right: 2rem; }
+ .mr5-l { margin-right: 4rem; }
+ .mr6-l { margin-right: 8rem; }
+ .mr7-l { margin-right: 16rem; }
+ .mb0-l { margin-bottom: 0; }
+ .mb1-l { margin-bottom: .25rem; }
+ .mb2-l { margin-bottom: .5rem; }
+ .mb3-l { margin-bottom: 1rem; }
+ .mb4-l { margin-bottom: 2rem; }
+ .mb5-l { margin-bottom: 4rem; }
+ .mb6-l { margin-bottom: 8rem; }
+ .mb7-l { margin-bottom: 16rem; }
+ .mt0-l { margin-top: 0; }
+ .mt1-l { margin-top: .25rem; }
+ .mt2-l { margin-top: .5rem; }
+ .mt3-l { margin-top: 1rem; }
+ .mt4-l { margin-top: 2rem; }
+ .mt5-l { margin-top: 4rem; }
+ .mt6-l { margin-top: 8rem; }
+ .mt7-l { margin-top: 16rem; }
+ .mv0-l { margin-top: 0; margin-bottom: 0; }
+ .mv1-l { margin-top: .25rem; margin-bottom: .25rem; }
+ .mv2-l { margin-top: .5rem; margin-bottom: .5rem; }
+ .mv3-l { margin-top: 1rem; margin-bottom: 1rem; }
+ .mv4-l { margin-top: 2rem; margin-bottom: 2rem; }
+ .mv5-l { margin-top: 4rem; margin-bottom: 4rem; }
+ .mv6-l { margin-top: 8rem; margin-bottom: 8rem; }
+ .mv7-l { margin-top: 16rem; margin-bottom: 16rem; }
+ .mh0-l { margin-left: 0; margin-right: 0; }
+ .mh1-l { margin-left: .25rem; margin-right: .25rem; }
+ .mh2-l { margin-left: .5rem; margin-right: .5rem; }
+ .mh3-l { margin-left: 1rem; margin-right: 1rem; }
+ .mh4-l { margin-left: 2rem; margin-right: 2rem; }
+ .mh5-l { margin-left: 4rem; margin-right: 4rem; }
+ .mh6-l { margin-left: 8rem; margin-right: 8rem; }
+ .mh7-l { margin-left: 16rem; margin-right: 16rem; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-spacing/src/tachyons-spacing.css b/packages/tachyons-spacing/src/tachyons-spacing.css
new file mode 100644
index 000000000..4f798c8ea
--- /dev/null
+++ b/packages/tachyons-spacing/src/tachyons-spacing.css
@@ -0,0 +1,958 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/* Variables */
+
+:root {
+ --spacing-none: 0;
+ --spacing-extra-small: .25rem;
+ --spacing-small: .5rem;
+ --spacing-medium: 1rem;
+ --spacing-large: 2rem;
+ --spacing-extra-large: 4rem;
+ --spacing-extra-extra-large: 8rem;
+ --spacing-extra-extra-extra-large: 16rem;
+}
+
+/*
+ SPACING
+ Docs: http://tachyons.io/docs/layout/spacing/
+
+ An eight step powers of two scale ranging from 0 to 16rem.
+
+ Base:
+ p = padding
+ m = margin
+
+ Modifiers:
+ a = all
+ h = horizontal
+ v = vertical
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 0 = none
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+
+.pa0 { padding: var(--spacing-none); }
+.pa1 { padding: var(--spacing-extra-small); }
+.pa2 { padding: var(--spacing-small); }
+.pa3 { padding: var(--spacing-medium); }
+.pa4 { padding: var(--spacing-large); }
+.pa5 { padding: var(--spacing-extra-large); }
+.pa6 { padding: var(--spacing-extra-extra-large); }
+.pa7 { padding: var(--spacing-extra-extra-extra-large); }
+
+.pl0 { padding-left: var(--spacing-none); }
+.pl1 { padding-left: var(--spacing-extra-small); }
+.pl2 { padding-left: var(--spacing-small); }
+.pl3 { padding-left: var(--spacing-medium); }
+.pl4 { padding-left: var(--spacing-large); }
+.pl5 { padding-left: var(--spacing-extra-large); }
+.pl6 { padding-left: var(--spacing-extra-extra-large); }
+.pl7 { padding-left: var(--spacing-extra-extra-extra-large); }
+
+.pr0 { padding-right: var(--spacing-none); }
+.pr1 { padding-right: var(--spacing-extra-small); }
+.pr2 { padding-right: var(--spacing-small); }
+.pr3 { padding-right: var(--spacing-medium); }
+.pr4 { padding-right: var(--spacing-large); }
+.pr5 { padding-right: var(--spacing-extra-large); }
+.pr6 { padding-right: var(--spacing-extra-extra-large); }
+.pr7 { padding-right: var(--spacing-extra-extra-extra-large); }
+
+.pb0 { padding-bottom: var(--spacing-none); }
+.pb1 { padding-bottom: var(--spacing-extra-small); }
+.pb2 { padding-bottom: var(--spacing-small); }
+.pb3 { padding-bottom: var(--spacing-medium); }
+.pb4 { padding-bottom: var(--spacing-large); }
+.pb5 { padding-bottom: var(--spacing-extra-large); }
+.pb6 { padding-bottom: var(--spacing-extra-extra-large); }
+.pb7 { padding-bottom: var(--spacing-extra-extra-extra-large); }
+
+.pt0 { padding-top: var(--spacing-none); }
+.pt1 { padding-top: var(--spacing-extra-small); }
+.pt2 { padding-top: var(--spacing-small); }
+.pt3 { padding-top: var(--spacing-medium); }
+.pt4 { padding-top: var(--spacing-large); }
+.pt5 { padding-top: var(--spacing-extra-large); }
+.pt6 { padding-top: var(--spacing-extra-extra-large); }
+.pt7 { padding-top: var(--spacing-extra-extra-extra-large); }
+
+.pv0 {
+ padding-top: var(--spacing-none);
+ padding-bottom: var(--spacing-none);
+}
+.pv1 {
+ padding-top: var(--spacing-extra-small);
+ padding-bottom: var(--spacing-extra-small);
+}
+.pv2 {
+ padding-top: var(--spacing-small);
+ padding-bottom: var(--spacing-small);
+}
+.pv3 {
+ padding-top: var(--spacing-medium);
+ padding-bottom: var(--spacing-medium);
+}
+.pv4 {
+ padding-top: var(--spacing-large);
+ padding-bottom: var(--spacing-large);
+}
+.pv5 {
+ padding-top: var(--spacing-extra-large);
+ padding-bottom: var(--spacing-extra-large);
+}
+.pv6 {
+ padding-top: var(--spacing-extra-extra-large);
+ padding-bottom: var(--spacing-extra-extra-large);
+}
+
+.pv7 {
+ padding-top: var(--spacing-extra-extra-extra-large);
+ padding-bottom: var(--spacing-extra-extra-extra-large);
+}
+
+.ph0 {
+ padding-left: var(--spacing-none);
+ padding-right: var(--spacing-none);
+}
+
+.ph1 {
+ padding-left: var(--spacing-extra-small);
+ padding-right: var(--spacing-extra-small);
+}
+
+.ph2 {
+ padding-left: var(--spacing-small);
+ padding-right: var(--spacing-small);
+}
+
+.ph3 {
+ padding-left: var(--spacing-medium);
+ padding-right: var(--spacing-medium);
+}
+
+.ph4 {
+ padding-left: var(--spacing-large);
+ padding-right: var(--spacing-large);
+}
+
+.ph5 {
+ padding-left: var(--spacing-extra-large);
+ padding-right: var(--spacing-extra-large);
+}
+
+.ph6 {
+ padding-left: var(--spacing-extra-extra-large);
+ padding-right: var(--spacing-extra-extra-large);
+}
+
+.ph7 {
+ padding-left: var(--spacing-extra-extra-extra-large);
+ padding-right: var(--spacing-extra-extra-extra-large);
+}
+
+.ma0 { margin: var(--spacing-none); }
+.ma1 { margin: var(--spacing-extra-small); }
+.ma2 { margin: var(--spacing-small); }
+.ma3 { margin: var(--spacing-medium); }
+.ma4 { margin: var(--spacing-large); }
+.ma5 { margin: var(--spacing-extra-large); }
+.ma6 { margin: var(--spacing-extra-extra-large); }
+.ma7 { margin: var(--spacing-extra-extra-extra-large); }
+
+.ml0 { margin-left: var(--spacing-none); }
+.ml1 { margin-left: var(--spacing-extra-small); }
+.ml2 { margin-left: var(--spacing-small); }
+.ml3 { margin-left: var(--spacing-medium); }
+.ml4 { margin-left: var(--spacing-large); }
+.ml5 { margin-left: var(--spacing-extra-large); }
+.ml6 { margin-left: var(--spacing-extra-extra-large); }
+.ml7 { margin-left: var(--spacing-extra-extra-extra-large); }
+
+.mr0 { margin-right: var(--spacing-none); }
+.mr1 { margin-right: var(--spacing-extra-small); }
+.mr2 { margin-right: var(--spacing-small); }
+.mr3 { margin-right: var(--spacing-medium); }
+.mr4 { margin-right: var(--spacing-large); }
+.mr5 { margin-right: var(--spacing-extra-large); }
+.mr6 { margin-right: var(--spacing-extra-extra-large); }
+.mr7 { margin-right: var(--spacing-extra-extra-extra-large); }
+
+.mb0 { margin-bottom: var(--spacing-none); }
+.mb1 { margin-bottom: var(--spacing-extra-small); }
+.mb2 { margin-bottom: var(--spacing-small); }
+.mb3 { margin-bottom: var(--spacing-medium); }
+.mb4 { margin-bottom: var(--spacing-large); }
+.mb5 { margin-bottom: var(--spacing-extra-large); }
+.mb6 { margin-bottom: var(--spacing-extra-extra-large); }
+.mb7 { margin-bottom: var(--spacing-extra-extra-extra-large); }
+
+.mt0 { margin-top: var(--spacing-none); }
+.mt1 { margin-top: var(--spacing-extra-small); }
+.mt2 { margin-top: var(--spacing-small); }
+.mt3 { margin-top: var(--spacing-medium); }
+.mt4 { margin-top: var(--spacing-large); }
+.mt5 { margin-top: var(--spacing-extra-large); }
+.mt6 { margin-top: var(--spacing-extra-extra-large); }
+.mt7 { margin-top: var(--spacing-extra-extra-extra-large); }
+
+.mv0 {
+ margin-top: var(--spacing-none);
+ margin-bottom: var(--spacing-none);
+}
+.mv1 {
+ margin-top: var(--spacing-extra-small);
+ margin-bottom: var(--spacing-extra-small);
+}
+.mv2 {
+ margin-top: var(--spacing-small);
+ margin-bottom: var(--spacing-small);
+}
+.mv3 {
+ margin-top: var(--spacing-medium);
+ margin-bottom: var(--spacing-medium);
+}
+.mv4 {
+ margin-top: var(--spacing-large);
+ margin-bottom: var(--spacing-large);
+}
+.mv5 {
+ margin-top: var(--spacing-extra-large);
+ margin-bottom: var(--spacing-extra-large);
+}
+.mv6 {
+ margin-top: var(--spacing-extra-extra-large);
+ margin-bottom: var(--spacing-extra-extra-large);
+}
+.mv7 {
+ margin-top: var(--spacing-extra-extra-extra-large);
+ margin-bottom: var(--spacing-extra-extra-extra-large);
+}
+
+.mh0 {
+ margin-left: var(--spacing-none);
+ margin-right: var(--spacing-none);
+}
+.mh1 {
+ margin-left: var(--spacing-extra-small);
+ margin-right: var(--spacing-extra-small);
+}
+.mh2 {
+ margin-left: var(--spacing-small);
+ margin-right: var(--spacing-small);
+}
+.mh3 {
+ margin-left: var(--spacing-medium);
+ margin-right: var(--spacing-medium);
+}
+.mh4 {
+ margin-left: var(--spacing-large);
+ margin-right: var(--spacing-large);
+}
+.mh5 {
+ margin-left: var(--spacing-extra-large);
+ margin-right: var(--spacing-extra-large);
+}
+.mh6 {
+ margin-left: var(--spacing-extra-extra-large);
+ margin-right: var(--spacing-extra-extra-large);
+}
+.mh7 {
+ margin-left: var(--spacing-extra-extra-extra-large);
+ margin-right: var(--spacing-extra-extra-extra-large);
+}
+
+@media (--breakpoint-not-small) {
+ .pa0-ns { padding: var(--spacing-none); }
+ .pa1-ns { padding: var(--spacing-extra-small); }
+ .pa2-ns { padding: var(--spacing-small); }
+ .pa3-ns { padding: var(--spacing-medium); }
+ .pa4-ns { padding: var(--spacing-large); }
+ .pa5-ns { padding: var(--spacing-extra-large); }
+ .pa6-ns { padding: var(--spacing-extra-extra-large); }
+ .pa7-ns { padding: var(--spacing-extra-extra-extra-large); }
+
+ .pl0-ns { padding-left: var(--spacing-none); }
+ .pl1-ns { padding-left: var(--spacing-extra-small); }
+ .pl2-ns { padding-left: var(--spacing-small); }
+ .pl3-ns { padding-left: var(--spacing-medium); }
+ .pl4-ns { padding-left: var(--spacing-large); }
+ .pl5-ns { padding-left: var(--spacing-extra-large); }
+ .pl6-ns { padding-left: var(--spacing-extra-extra-large); }
+ .pl7-ns { padding-left: var(--spacing-extra-extra-extra-large); }
+
+ .pr0-ns { padding-right: var(--spacing-none); }
+ .pr1-ns { padding-right: var(--spacing-extra-small); }
+ .pr2-ns { padding-right: var(--spacing-small); }
+ .pr3-ns { padding-right: var(--spacing-medium); }
+ .pr4-ns { padding-right: var(--spacing-large); }
+ .pr5-ns { padding-right: var(--spacing-extra-large); }
+ .pr6-ns { padding-right: var(--spacing-extra-extra-large); }
+ .pr7-ns { padding-right: var(--spacing-extra-extra-extra-large); }
+
+ .pb0-ns { padding-bottom: var(--spacing-none); }
+ .pb1-ns { padding-bottom: var(--spacing-extra-small); }
+ .pb2-ns { padding-bottom: var(--spacing-small); }
+ .pb3-ns { padding-bottom: var(--spacing-medium); }
+ .pb4-ns { padding-bottom: var(--spacing-large); }
+ .pb5-ns { padding-bottom: var(--spacing-extra-large); }
+ .pb6-ns { padding-bottom: var(--spacing-extra-extra-large); }
+ .pb7-ns { padding-bottom: var(--spacing-extra-extra-extra-large); }
+
+ .pt0-ns { padding-top: var(--spacing-none); }
+ .pt1-ns { padding-top: var(--spacing-extra-small); }
+ .pt2-ns { padding-top: var(--spacing-small); }
+ .pt3-ns { padding-top: var(--spacing-medium); }
+ .pt4-ns { padding-top: var(--spacing-large); }
+ .pt5-ns { padding-top: var(--spacing-extra-large); }
+ .pt6-ns { padding-top: var(--spacing-extra-extra-large); }
+ .pt7-ns { padding-top: var(--spacing-extra-extra-extra-large); }
+
+ .pv0-ns {
+ padding-top: var(--spacing-none);
+ padding-bottom: var(--spacing-none);
+ }
+ .pv1-ns {
+ padding-top: var(--spacing-extra-small);
+ padding-bottom: var(--spacing-extra-small);
+ }
+ .pv2-ns {
+ padding-top: var(--spacing-small);
+ padding-bottom: var(--spacing-small);
+ }
+ .pv3-ns {
+ padding-top: var(--spacing-medium);
+ padding-bottom: var(--spacing-medium);
+ }
+ .pv4-ns {
+ padding-top: var(--spacing-large);
+ padding-bottom: var(--spacing-large);
+ }
+ .pv5-ns {
+ padding-top: var(--spacing-extra-large);
+ padding-bottom: var(--spacing-extra-large);
+ }
+ .pv6-ns {
+ padding-top: var(--spacing-extra-extra-large);
+ padding-bottom: var(--spacing-extra-extra-large);
+ }
+ .pv7-ns {
+ padding-top: var(--spacing-extra-extra-extra-large);
+ padding-bottom: var(--spacing-extra-extra-extra-large);
+ }
+ .ph0-ns {
+ padding-left: var(--spacing-none);
+ padding-right: var(--spacing-none);
+ }
+ .ph1-ns {
+ padding-left: var(--spacing-extra-small);
+ padding-right: var(--spacing-extra-small);
+ }
+ .ph2-ns {
+ padding-left: var(--spacing-small);
+ padding-right: var(--spacing-small);
+ }
+ .ph3-ns {
+ padding-left: var(--spacing-medium);
+ padding-right: var(--spacing-medium);
+ }
+ .ph4-ns {
+ padding-left: var(--spacing-large);
+ padding-right: var(--spacing-large);
+ }
+ .ph5-ns {
+ padding-left: var(--spacing-extra-large);
+ padding-right: var(--spacing-extra-large);
+ }
+ .ph6-ns {
+ padding-left: var(--spacing-extra-extra-large);
+ padding-right: var(--spacing-extra-extra-large);
+ }
+ .ph7-ns {
+ padding-left: var(--spacing-extra-extra-extra-large);
+ padding-right: var(--spacing-extra-extra-extra-large);
+ }
+
+ .ma0-ns { margin: var(--spacing-none); }
+ .ma1-ns { margin: var(--spacing-extra-small); }
+ .ma2-ns { margin: var(--spacing-small); }
+ .ma3-ns { margin: var(--spacing-medium); }
+ .ma4-ns { margin: var(--spacing-large); }
+ .ma5-ns { margin: var(--spacing-extra-large); }
+ .ma6-ns { margin: var(--spacing-extra-extra-large); }
+ .ma7-ns { margin: var(--spacing-extra-extra-extra-large); }
+
+ .ml0-ns { margin-left: var(--spacing-none); }
+ .ml1-ns { margin-left: var(--spacing-extra-small); }
+ .ml2-ns { margin-left: var(--spacing-small); }
+ .ml3-ns { margin-left: var(--spacing-medium); }
+ .ml4-ns { margin-left: var(--spacing-large); }
+ .ml5-ns { margin-left: var(--spacing-extra-large); }
+ .ml6-ns { margin-left: var(--spacing-extra-extra-large); }
+ .ml7-ns { margin-left: var(--spacing-extra-extra-extra-large); }
+
+ .mr0-ns { margin-right: var(--spacing-none); }
+ .mr1-ns { margin-right: var(--spacing-extra-small); }
+ .mr2-ns { margin-right: var(--spacing-small); }
+ .mr3-ns { margin-right: var(--spacing-medium); }
+ .mr4-ns { margin-right: var(--spacing-large); }
+ .mr5-ns { margin-right: var(--spacing-extra-large); }
+ .mr6-ns { margin-right: var(--spacing-extra-extra-large); }
+ .mr7-ns { margin-right: var(--spacing-extra-extra-extra-large); }
+
+ .mb0-ns { margin-bottom: var(--spacing-none); }
+ .mb1-ns { margin-bottom: var(--spacing-extra-small); }
+ .mb2-ns { margin-bottom: var(--spacing-small); }
+ .mb3-ns { margin-bottom: var(--spacing-medium); }
+ .mb4-ns { margin-bottom: var(--spacing-large); }
+ .mb5-ns { margin-bottom: var(--spacing-extra-large); }
+ .mb6-ns { margin-bottom: var(--spacing-extra-extra-large); }
+ .mb7-ns { margin-bottom: var(--spacing-extra-extra-extra-large); }
+
+ .mt0-ns { margin-top: var(--spacing-none); }
+ .mt1-ns { margin-top: var(--spacing-extra-small); }
+ .mt2-ns { margin-top: var(--spacing-small); }
+ .mt3-ns { margin-top: var(--spacing-medium); }
+ .mt4-ns { margin-top: var(--spacing-large); }
+ .mt5-ns { margin-top: var(--spacing-extra-large); }
+ .mt6-ns { margin-top: var(--spacing-extra-extra-large); }
+ .mt7-ns { margin-top: var(--spacing-extra-extra-extra-large); }
+
+ .mv0-ns {
+ margin-top: var(--spacing-none);
+ margin-bottom: var(--spacing-none);
+ }
+ .mv1-ns {
+ margin-top: var(--spacing-extra-small);
+ margin-bottom: var(--spacing-extra-small);
+ }
+ .mv2-ns {
+ margin-top: var(--spacing-small);
+ margin-bottom: var(--spacing-small);
+ }
+ .mv3-ns {
+ margin-top: var(--spacing-medium);
+ margin-bottom: var(--spacing-medium);
+ }
+ .mv4-ns {
+ margin-top: var(--spacing-large);
+ margin-bottom: var(--spacing-large);
+ }
+ .mv5-ns {
+ margin-top: var(--spacing-extra-large);
+ margin-bottom: var(--spacing-extra-large);
+ }
+ .mv6-ns {
+ margin-top: var(--spacing-extra-extra-large);
+ margin-bottom: var(--spacing-extra-extra-large);
+ }
+ .mv7-ns {
+ margin-top: var(--spacing-extra-extra-extra-large);
+ margin-bottom: var(--spacing-extra-extra-extra-large);
+ }
+
+ .mh0-ns {
+ margin-left: var(--spacing-none);
+ margin-right: var(--spacing-none);
+ }
+ .mh1-ns {
+ margin-left: var(--spacing-extra-small);
+ margin-right: var(--spacing-extra-small);
+ }
+ .mh2-ns {
+ margin-left: var(--spacing-small);
+ margin-right: var(--spacing-small);
+ }
+ .mh3-ns {
+ margin-left: var(--spacing-medium);
+ margin-right: var(--spacing-medium);
+ }
+ .mh4-ns {
+ margin-left: var(--spacing-large);
+ margin-right: var(--spacing-large);
+ }
+ .mh5-ns {
+ margin-left: var(--spacing-extra-large);
+ margin-right: var(--spacing-extra-large);
+ }
+ .mh6-ns {
+ margin-left: var(--spacing-extra-extra-large);
+ margin-right: var(--spacing-extra-extra-large);
+ }
+ .mh7-ns {
+ margin-left: var(--spacing-extra-extra-extra-large);
+ margin-right: var(--spacing-extra-extra-extra-large);
+ }
+
+}
+
+@media (--breakpoint-medium) {
+ .pa0-m { padding: var(--spacing-none); }
+ .pa1-m { padding: var(--spacing-extra-small); }
+ .pa2-m { padding: var(--spacing-small); }
+ .pa3-m { padding: var(--spacing-medium); }
+ .pa4-m { padding: var(--spacing-large); }
+ .pa5-m { padding: var(--spacing-extra-large); }
+ .pa6-m { padding: var(--spacing-extra-extra-large); }
+ .pa7-m { padding: var(--spacing-extra-extra-extra-large); }
+
+ .pl0-m { padding-left: var(--spacing-none); }
+ .pl1-m { padding-left: var(--spacing-extra-small); }
+ .pl2-m { padding-left: var(--spacing-small); }
+ .pl3-m { padding-left: var(--spacing-medium); }
+ .pl4-m { padding-left: var(--spacing-large); }
+ .pl5-m { padding-left: var(--spacing-extra-large); }
+ .pl6-m { padding-left: var(--spacing-extra-extra-large); }
+ .pl7-m { padding-left: var(--spacing-extra-extra-extra-large); }
+
+ .pr0-m { padding-right: var(--spacing-none); }
+ .pr1-m { padding-right: var(--spacing-extra-small); }
+ .pr2-m { padding-right: var(--spacing-small); }
+ .pr3-m { padding-right: var(--spacing-medium); }
+ .pr4-m { padding-right: var(--spacing-large); }
+ .pr5-m { padding-right: var(--spacing-extra-large); }
+ .pr6-m { padding-right: var(--spacing-extra-extra-large); }
+ .pr7-m { padding-right: var(--spacing-extra-extra-extra-large); }
+
+ .pb0-m { padding-bottom: var(--spacing-none); }
+ .pb1-m { padding-bottom: var(--spacing-extra-small); }
+ .pb2-m { padding-bottom: var(--spacing-small); }
+ .pb3-m { padding-bottom: var(--spacing-medium); }
+ .pb4-m { padding-bottom: var(--spacing-large); }
+ .pb5-m { padding-bottom: var(--spacing-extra-large); }
+ .pb6-m { padding-bottom: var(--spacing-extra-extra-large); }
+ .pb7-m { padding-bottom: var(--spacing-extra-extra-extra-large); }
+
+ .pt0-m { padding-top: var(--spacing-none); }
+ .pt1-m { padding-top: var(--spacing-extra-small); }
+ .pt2-m { padding-top: var(--spacing-small); }
+ .pt3-m { padding-top: var(--spacing-medium); }
+ .pt4-m { padding-top: var(--spacing-large); }
+ .pt5-m { padding-top: var(--spacing-extra-large); }
+ .pt6-m { padding-top: var(--spacing-extra-extra-large); }
+ .pt7-m { padding-top: var(--spacing-extra-extra-extra-large); }
+
+ .pv0-m {
+ padding-top: var(--spacing-none);
+ padding-bottom: var(--spacing-none);
+ }
+ .pv1-m {
+ padding-top: var(--spacing-extra-small);
+ padding-bottom: var(--spacing-extra-small);
+ }
+ .pv2-m {
+ padding-top: var(--spacing-small);
+ padding-bottom: var(--spacing-small);
+ }
+ .pv3-m {
+ padding-top: var(--spacing-medium);
+ padding-bottom: var(--spacing-medium);
+ }
+ .pv4-m {
+ padding-top: var(--spacing-large);
+ padding-bottom: var(--spacing-large);
+ }
+ .pv5-m {
+ padding-top: var(--spacing-extra-large);
+ padding-bottom: var(--spacing-extra-large);
+ }
+ .pv6-m {
+ padding-top: var(--spacing-extra-extra-large);
+ padding-bottom: var(--spacing-extra-extra-large);
+ }
+ .pv7-m {
+ padding-top: var(--spacing-extra-extra-extra-large);
+ padding-bottom: var(--spacing-extra-extra-extra-large);
+ }
+
+ .ph0-m {
+ padding-left: var(--spacing-none);
+ padding-right: var(--spacing-none);
+ }
+ .ph1-m {
+ padding-left: var(--spacing-extra-small);
+ padding-right: var(--spacing-extra-small);
+ }
+ .ph2-m {
+ padding-left: var(--spacing-small);
+ padding-right: var(--spacing-small);
+ }
+ .ph3-m {
+ padding-left: var(--spacing-medium);
+ padding-right: var(--spacing-medium);
+ }
+ .ph4-m {
+ padding-left: var(--spacing-large);
+ padding-right: var(--spacing-large);
+ }
+ .ph5-m {
+ padding-left: var(--spacing-extra-large);
+ padding-right: var(--spacing-extra-large);
+ }
+ .ph6-m {
+ padding-left: var(--spacing-extra-extra-large);
+ padding-right: var(--spacing-extra-extra-large);
+ }
+ .ph7-m {
+ padding-left: var(--spacing-extra-extra-extra-large);
+ padding-right: var(--spacing-extra-extra-extra-large);
+ }
+
+ .ma0-m { margin: var(--spacing-none); }
+ .ma1-m { margin: var(--spacing-extra-small); }
+ .ma2-m { margin: var(--spacing-small); }
+ .ma3-m { margin: var(--spacing-medium); }
+ .ma4-m { margin: var(--spacing-large); }
+ .ma5-m { margin: var(--spacing-extra-large); }
+ .ma6-m { margin: var(--spacing-extra-extra-large); }
+ .ma7-m { margin: var(--spacing-extra-extra-extra-large); }
+
+ .ml0-m { margin-left: var(--spacing-none); }
+ .ml1-m { margin-left: var(--spacing-extra-small); }
+ .ml2-m { margin-left: var(--spacing-small); }
+ .ml3-m { margin-left: var(--spacing-medium); }
+ .ml4-m { margin-left: var(--spacing-large); }
+ .ml5-m { margin-left: var(--spacing-extra-large); }
+ .ml6-m { margin-left: var(--spacing-extra-extra-large); }
+ .ml7-m { margin-left: var(--spacing-extra-extra-extra-large); }
+
+ .mr0-m { margin-right: var(--spacing-none); }
+ .mr1-m { margin-right: var(--spacing-extra-small); }
+ .mr2-m { margin-right: var(--spacing-small); }
+ .mr3-m { margin-right: var(--spacing-medium); }
+ .mr4-m { margin-right: var(--spacing-large); }
+ .mr5-m { margin-right: var(--spacing-extra-large); }
+ .mr6-m { margin-right: var(--spacing-extra-extra-large); }
+ .mr7-m { margin-right: var(--spacing-extra-extra-extra-large); }
+
+ .mb0-m { margin-bottom: var(--spacing-none); }
+ .mb1-m { margin-bottom: var(--spacing-extra-small); }
+ .mb2-m { margin-bottom: var(--spacing-small); }
+ .mb3-m { margin-bottom: var(--spacing-medium); }
+ .mb4-m { margin-bottom: var(--spacing-large); }
+ .mb5-m { margin-bottom: var(--spacing-extra-large); }
+ .mb6-m { margin-bottom: var(--spacing-extra-extra-large); }
+ .mb7-m { margin-bottom: var(--spacing-extra-extra-extra-large); }
+
+ .mt0-m { margin-top: var(--spacing-none); }
+ .mt1-m { margin-top: var(--spacing-extra-small); }
+ .mt2-m { margin-top: var(--spacing-small); }
+ .mt3-m { margin-top: var(--spacing-medium); }
+ .mt4-m { margin-top: var(--spacing-large); }
+ .mt5-m { margin-top: var(--spacing-extra-large); }
+ .mt6-m { margin-top: var(--spacing-extra-extra-large); }
+ .mt7-m { margin-top: var(--spacing-extra-extra-extra-large); }
+
+ .mv0-m {
+ margin-top: var(--spacing-none);
+ margin-bottom: var(--spacing-none);
+ }
+ .mv1-m {
+ margin-top: var(--spacing-extra-small);
+ margin-bottom: var(--spacing-extra-small);
+ }
+ .mv2-m {
+ margin-top: var(--spacing-small);
+ margin-bottom: var(--spacing-small);
+ }
+ .mv3-m {
+ margin-top: var(--spacing-medium);
+ margin-bottom: var(--spacing-medium);
+ }
+ .mv4-m {
+ margin-top: var(--spacing-large);
+ margin-bottom: var(--spacing-large);
+ }
+ .mv5-m {
+ margin-top: var(--spacing-extra-large);
+ margin-bottom: var(--spacing-extra-large);
+ }
+ .mv6-m {
+ margin-top: var(--spacing-extra-extra-large);
+ margin-bottom: var(--spacing-extra-extra-large);
+ }
+ .mv7-m {
+ margin-top: var(--spacing-extra-extra-extra-large);
+ margin-bottom: var(--spacing-extra-extra-extra-large);
+ }
+
+ .mh0-m {
+ margin-left: var(--spacing-none);
+ margin-right: var(--spacing-none);
+ }
+ .mh1-m {
+ margin-left: var(--spacing-extra-small);
+ margin-right: var(--spacing-extra-small);
+ }
+ .mh2-m {
+ margin-left: var(--spacing-small);
+ margin-right: var(--spacing-small);
+ }
+ .mh3-m {
+ margin-left: var(--spacing-medium);
+ margin-right: var(--spacing-medium);
+ }
+ .mh4-m {
+ margin-left: var(--spacing-large);
+ margin-right: var(--spacing-large);
+ }
+ .mh5-m {
+ margin-left: var(--spacing-extra-large);
+ margin-right: var(--spacing-extra-large);
+ }
+ .mh6-m {
+ margin-left: var(--spacing-extra-extra-large);
+ margin-right: var(--spacing-extra-extra-large);
+ }
+ .mh7-m {
+ margin-left: var(--spacing-extra-extra-extra-large);
+ margin-right: var(--spacing-extra-extra-extra-large);
+ }
+
+}
+
+@media (--breakpoint-large) {
+ .pa0-l { padding: var(--spacing-none); }
+ .pa1-l { padding: var(--spacing-extra-small); }
+ .pa2-l { padding: var(--spacing-small); }
+ .pa3-l { padding: var(--spacing-medium); }
+ .pa4-l { padding: var(--spacing-large); }
+ .pa5-l { padding: var(--spacing-extra-large); }
+ .pa6-l { padding: var(--spacing-extra-extra-large); }
+ .pa7-l { padding: var(--spacing-extra-extra-extra-large); }
+
+ .pl0-l { padding-left: var(--spacing-none); }
+ .pl1-l { padding-left: var(--spacing-extra-small); }
+ .pl2-l { padding-left: var(--spacing-small); }
+ .pl3-l { padding-left: var(--spacing-medium); }
+ .pl4-l { padding-left: var(--spacing-large); }
+ .pl5-l { padding-left: var(--spacing-extra-large); }
+ .pl6-l { padding-left: var(--spacing-extra-extra-large); }
+ .pl7-l { padding-left: var(--spacing-extra-extra-extra-large); }
+
+ .pr0-l { padding-right: var(--spacing-none); }
+ .pr1-l { padding-right: var(--spacing-extra-small); }
+ .pr2-l { padding-right: var(--spacing-small); }
+ .pr3-l { padding-right: var(--spacing-medium); }
+ .pr4-l { padding-right: var(--spacing-large); }
+ .pr5-l { padding-right: var(--spacing-extra-large); }
+ .pr6-l { padding-right: var(--spacing-extra-extra-large); }
+ .pr7-l { padding-right: var(--spacing-extra-extra-extra-large); }
+
+ .pb0-l { padding-bottom: var(--spacing-none); }
+ .pb1-l { padding-bottom: var(--spacing-extra-small); }
+ .pb2-l { padding-bottom: var(--spacing-small); }
+ .pb3-l { padding-bottom: var(--spacing-medium); }
+ .pb4-l { padding-bottom: var(--spacing-large); }
+ .pb5-l { padding-bottom: var(--spacing-extra-large); }
+ .pb6-l { padding-bottom: var(--spacing-extra-extra-large); }
+ .pb7-l { padding-bottom: var(--spacing-extra-extra-extra-large); }
+
+ .pt0-l { padding-top: var(--spacing-none); }
+ .pt1-l { padding-top: var(--spacing-extra-small); }
+ .pt2-l { padding-top: var(--spacing-small); }
+ .pt3-l { padding-top: var(--spacing-medium); }
+ .pt4-l { padding-top: var(--spacing-large); }
+ .pt5-l { padding-top: var(--spacing-extra-large); }
+ .pt6-l { padding-top: var(--spacing-extra-extra-large); }
+ .pt7-l { padding-top: var(--spacing-extra-extra-extra-large); }
+
+ .pv0-l {
+ padding-top: var(--spacing-none);
+ padding-bottom: var(--spacing-none);
+ }
+ .pv1-l {
+ padding-top: var(--spacing-extra-small);
+ padding-bottom: var(--spacing-extra-small);
+ }
+ .pv2-l {
+ padding-top: var(--spacing-small);
+ padding-bottom: var(--spacing-small);
+ }
+ .pv3-l {
+ padding-top: var(--spacing-medium);
+ padding-bottom: var(--spacing-medium);
+ }
+ .pv4-l {
+ padding-top: var(--spacing-large);
+ padding-bottom: var(--spacing-large);
+ }
+ .pv5-l {
+ padding-top: var(--spacing-extra-large);
+ padding-bottom: var(--spacing-extra-large);
+ }
+ .pv6-l {
+ padding-top: var(--spacing-extra-extra-large);
+ padding-bottom: var(--spacing-extra-extra-large);
+ }
+ .pv7-l {
+ padding-top: var(--spacing-extra-extra-extra-large);
+ padding-bottom: var(--spacing-extra-extra-extra-large);
+ }
+
+ .ph0-l {
+ padding-left: var(--spacing-none);
+ padding-right: var(--spacing-none);
+ }
+ .ph1-l {
+ padding-left: var(--spacing-extra-small);
+ padding-right: var(--spacing-extra-small);
+ }
+ .ph2-l {
+ padding-left: var(--spacing-small);
+ padding-right: var(--spacing-small);
+ }
+ .ph3-l {
+ padding-left: var(--spacing-medium);
+ padding-right: var(--spacing-medium);
+ }
+ .ph4-l {
+ padding-left: var(--spacing-large);
+ padding-right: var(--spacing-large);
+ }
+ .ph5-l {
+ padding-left: var(--spacing-extra-large);
+ padding-right: var(--spacing-extra-large);
+ }
+ .ph6-l {
+ padding-left: var(--spacing-extra-extra-large);
+ padding-right: var(--spacing-extra-extra-large);
+ }
+ .ph7-l {
+ padding-left: var(--spacing-extra-extra-extra-large);
+ padding-right: var(--spacing-extra-extra-extra-large);
+ }
+
+ .ma0-l { margin: var(--spacing-none); }
+ .ma1-l { margin: var(--spacing-extra-small); }
+ .ma2-l { margin: var(--spacing-small); }
+ .ma3-l { margin: var(--spacing-medium); }
+ .ma4-l { margin: var(--spacing-large); }
+ .ma5-l { margin: var(--spacing-extra-large); }
+ .ma6-l { margin: var(--spacing-extra-extra-large); }
+ .ma7-l { margin: var(--spacing-extra-extra-extra-large); }
+
+ .ml0-l { margin-left: var(--spacing-none); }
+ .ml1-l { margin-left: var(--spacing-extra-small); }
+ .ml2-l { margin-left: var(--spacing-small); }
+ .ml3-l { margin-left: var(--spacing-medium); }
+ .ml4-l { margin-left: var(--spacing-large); }
+ .ml5-l { margin-left: var(--spacing-extra-large); }
+ .ml6-l { margin-left: var(--spacing-extra-extra-large); }
+ .ml7-l { margin-left: var(--spacing-extra-extra-extra-large); }
+
+ .mr0-l { margin-right: var(--spacing-none); }
+ .mr1-l { margin-right: var(--spacing-extra-small); }
+ .mr2-l { margin-right: var(--spacing-small); }
+ .mr3-l { margin-right: var(--spacing-medium); }
+ .mr4-l { margin-right: var(--spacing-large); }
+ .mr5-l { margin-right: var(--spacing-extra-large); }
+ .mr6-l { margin-right: var(--spacing-extra-extra-large); }
+ .mr7-l { margin-right: var(--spacing-extra-extra-extra-large); }
+
+ .mb0-l { margin-bottom: var(--spacing-none); }
+ .mb1-l { margin-bottom: var(--spacing-extra-small); }
+ .mb2-l { margin-bottom: var(--spacing-small); }
+ .mb3-l { margin-bottom: var(--spacing-medium); }
+ .mb4-l { margin-bottom: var(--spacing-large); }
+ .mb5-l { margin-bottom: var(--spacing-extra-large); }
+ .mb6-l { margin-bottom: var(--spacing-extra-extra-large); }
+ .mb7-l { margin-bottom: var(--spacing-extra-extra-extra-large); }
+
+ .mt0-l { margin-top: var(--spacing-none); }
+ .mt1-l { margin-top: var(--spacing-extra-small); }
+ .mt2-l { margin-top: var(--spacing-small); }
+ .mt3-l { margin-top: var(--spacing-medium); }
+ .mt4-l { margin-top: var(--spacing-large); }
+ .mt5-l { margin-top: var(--spacing-extra-large); }
+ .mt6-l { margin-top: var(--spacing-extra-extra-large); }
+ .mt7-l { margin-top: var(--spacing-extra-extra-extra-large); }
+
+ .mv0-l {
+ margin-top: var(--spacing-none);
+ margin-bottom: var(--spacing-none);
+ }
+ .mv1-l {
+ margin-top: var(--spacing-extra-small);
+ margin-bottom: var(--spacing-extra-small);
+ }
+ .mv2-l {
+ margin-top: var(--spacing-small);
+ margin-bottom: var(--spacing-small);
+ }
+ .mv3-l {
+ margin-top: var(--spacing-medium);
+ margin-bottom: var(--spacing-medium);
+ }
+ .mv4-l {
+ margin-top: var(--spacing-large);
+ margin-bottom: var(--spacing-large);
+ }
+ .mv5-l {
+ margin-top: var(--spacing-extra-large);
+ margin-bottom: var(--spacing-extra-large);
+ }
+ .mv6-l {
+ margin-top: var(--spacing-extra-extra-large);
+ margin-bottom: var(--spacing-extra-extra-large);
+ }
+ .mv7-l {
+ margin-top: var(--spacing-extra-extra-extra-large);
+ margin-bottom: var(--spacing-extra-extra-extra-large);
+ }
+
+ .mh0-l {
+ margin-left: var(--spacing-none);
+ margin-right: var(--spacing-none);
+ }
+ .mh1-l {
+ margin-left: var(--spacing-extra-small);
+ margin-right: var(--spacing-extra-small);
+ }
+ .mh2-l {
+ margin-left: var(--spacing-small);
+ margin-right: var(--spacing-small);
+ }
+ .mh3-l {
+ margin-left: var(--spacing-medium);
+ margin-right: var(--spacing-medium);
+ }
+ .mh4-l {
+ margin-left: var(--spacing-large);
+ margin-right: var(--spacing-large);
+ }
+ .mh5-l {
+ margin-left: var(--spacing-extra-large);
+ margin-right: var(--spacing-extra-large);
+ }
+ .mh6-l {
+ margin-left: var(--spacing-extra-extra-large);
+ margin-right: var(--spacing-extra-extra-large);
+ }
+ .mh7-l {
+ margin-left: var(--spacing-extra-extra-extra-large);
+ margin-right: var(--spacing-extra-extra-extra-large);
+ }
+}
+
diff --git a/packages/tachyons-styles/.gitignore b/packages/tachyons-styles/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-styles/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-styles/code-of-conduct.md b/packages/tachyons-styles/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-styles/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-styles/license b/packages/tachyons-styles/license
new file mode 100644
index 000000000..ef521899d
--- /dev/null
+++ b/packages/tachyons-styles/license
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs (mrmrs.io)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/tachyons-styles/package.json b/packages/tachyons-styles/package.json
new file mode 100644
index 000000000..e9d73812d
--- /dev/null
+++ b/packages/tachyons-styles/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "tachyons-styles",
+ "version": "0.3.4",
+ "style": "src/tachyons-styles.css",
+ "homepage": "http://github.com/tachyons-css/tachyons-styles",
+ "description": "Performance based css module.",
+ "keywords": [],
+ "repository": {
+ "type": "git",
+ "url": "http://github.com/tachyons-css/tachyons-styles.git"
+ },
+ "bugs": {
+ "url": "https://github.com/tachyons-css/tachyons-styles/issues",
+ "email": "hi@mrmrs.cc"
+ },
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.9",
+ "watch": "^1.0.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-styles.css > css/tachyons-styles.css",
+ "build:minify": "tachyons src/tachyons-styles.css --minify > css/tachyons-styles.min.css",
+ "build:docs": "tachyons src/tachyons-styles.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-styles/readme.md b/packages/tachyons-styles/readme.md
new file mode 100644
index 000000000..ab19b18e7
--- /dev/null
+++ b/packages/tachyons-styles/readme.md
@@ -0,0 +1,52 @@
+# TACHYONS-STYLES
+
+http://tachyons.io
+
+Work In Progress. Pull requests and open issues welcome.
+
+## Install
+```
+npm install --save-dev tachyons-styles
+```
+or download the css on github and include in your project.
+
+## The Code
+```
+
+/*
+
+ STYLES
+
+ Add custom styles here.
+
+*/
+```
+
+## Author
+
+[mrmrs](http://mrmrs.io)
+
+## License
+
+The MIT License (MIT)
+
+Copyright (c) 2015 @mrmrs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/packages/tachyons-styles/src/_styles.scss b/packages/tachyons-styles/src/_styles.scss
new file mode 100644
index 000000000..56beaae9f
--- /dev/null
+++ b/packages/tachyons-styles/src/_styles.scss
@@ -0,0 +1,8 @@
+/*
+
+ STYLES
+
+ Add custom styles here.
+
+*/
+
diff --git a/packages/tachyons-styles/src/tachyons-styles.css b/packages/tachyons-styles/src/tachyons-styles.css
new file mode 100644
index 000000000..56beaae9f
--- /dev/null
+++ b/packages/tachyons-styles/src/tachyons-styles.css
@@ -0,0 +1,8 @@
+/*
+
+ STYLES
+
+ Add custom styles here.
+
+*/
+
diff --git a/packages/tachyons-tables/.gitignore b/packages/tachyons-tables/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-tables/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-tables/code-of-conduct.md b/packages/tachyons-tables/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-tables/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-tables/css/tachyons-tables.css b/packages/tachyons-tables/css/tachyons-tables.css
new file mode 100644
index 000000000..a78098eed
--- /dev/null
+++ b/packages/tachyons-tables/css/tachyons-tables.css
@@ -0,0 +1,11 @@
+/*
+
+ TABLES
+
+*/
+.collapse { border-collapse: collapse; border-spacing: 0; }
+.striped--moon-gray:nth-child(odd) { background-color: #aaa; }
+.striped--moon-gray:nth-child(odd) { background-color: #ccc; }
+.striped--light-gray:nth-child(odd) { background-color: #eee; }
+.striped--near-white:nth-child(odd) { background-color: #f4f4f4; }
+
diff --git a/packages/tachyons-tables/css/tachyons-tables.min.css b/packages/tachyons-tables/css/tachyons-tables.min.css
new file mode 100644
index 000000000..459f7a1fd
--- /dev/null
+++ b/packages/tachyons-tables/css/tachyons-tables.min.css
@@ -0,0 +1,2 @@
+.collapse{border-collapse:collapse;border-spacing:0}.striped--moon-gray:nth-child(odd){background-color:#aaa;background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}
+
diff --git a/packages/tachyons-tables/package.json b/packages/tachyons-tables/package.json
new file mode 100644
index 000000000..bb696cd2a
--- /dev/null
+++ b/packages/tachyons-tables/package.json
@@ -0,0 +1,39 @@
+{
+ "name": "tachyons-tables",
+ "description": "Tables CSS module for Tachyons",
+ "version": "1.0.3",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-tables.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "tables"
+ ],
+ "repository": "tachyons-css/tachyons-tables",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-tables.css > css/tachyons-tables.css",
+ "build:minify": "tachyons src/tachyons-tables.css --minify > css/tachyons-tables.min.css",
+ "build:docs": "tachyons src/tachyons-tables.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "elements",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-tables/readme.md b/packages/tachyons-tables/readme.md
new file mode 100644
index 000000000..a11d44b92
--- /dev/null
+++ b/packages/tachyons-tables/readme.md
@@ -0,0 +1,105 @@
+# tachyons-tables 1.0.3
+
+Tables CSS module for Tachyons
+
+#### Stats
+
+165 | 5 | 6
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-tables
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-tables
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-tables.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-tables";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ TABLES
+
+*/
+.collapse { border-collapse: collapse; border-spacing: 0; }
+.striped--moon-gray:nth-child(odd) { background-color: #aaa; }
+.striped--moon-gray:nth-child(odd) { background-color: #ccc; }
+.striped--light-gray:nth-child(odd) { background-color: #eee; }
+.striped--near-white:nth-child(odd) { background-color: #f4f4f4; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-tables/src/tachyons-tables.css b/packages/tachyons-tables/src/tachyons-tables.css
new file mode 100644
index 000000000..d1f145a85
--- /dev/null
+++ b/packages/tachyons-tables/src/tachyons-tables.css
@@ -0,0 +1,35 @@
+/*
+
+ TABLES
+ Docs: http://tachyons.io/docs/elements/tables/
+
+*/
+
+.collapse {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+.striped--light-silver:nth-child(odd) {
+ background-color: var(--light-silver);
+}
+
+.striped--moon-gray:nth-child(odd) {
+ background-color: var(--moon-gray);
+}
+
+.striped--light-gray:nth-child(odd) {
+ background-color: var(--light-gray);
+}
+
+.striped--near-white:nth-child(odd) {
+ background-color: var(--near-white);
+}
+
+.stripe-light:nth-child(odd) {
+ background-color: var(--white-10);
+}
+
+.stripe-dark:nth-child(odd) {
+ background-color: var(--black-10);
+}
diff --git a/packages/tachyons-text-align/.gitignore b/packages/tachyons-text-align/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-text-align/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-text-align/LICENSE.txt b/packages/tachyons-text-align/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-text-align/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-text-align/code-of-conduct.md b/packages/tachyons-text-align/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-text-align/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-text-align/css/tachyons-text-align.css b/packages/tachyons-text-align/css/tachyons-text-align.css
new file mode 100644
index 000000000..45a681f29
--- /dev/null
+++ b/packages/tachyons-text-align/css/tachyons-text-align.css
@@ -0,0 +1,24 @@
+/*
+
+ TEXT ALIGN
+
+*/
+.tl { text-align: left; }
+.tr { text-align: right; }
+.tc { text-align: center; }
+@media screen and (min-width: 30em) {
+ .tl-ns { text-align: left; }
+ .tr-ns { text-align: right; }
+ .tc-ns { text-align: center; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .tl-m { text-align: left; }
+ .tr-m { text-align: right; }
+ .tc-m { text-align: center; }
+}
+@media screen and (min-width: 60em) {
+ .tl-l { text-align: left; }
+ .tr-l { text-align: right; }
+ .tc-l { text-align: center; }
+}
+
diff --git a/packages/tachyons-text-align/css/tachyons-text-align.min.css b/packages/tachyons-text-align/css/tachyons-text-align.min.css
new file mode 100644
index 000000000..14ab97b02
--- /dev/null
+++ b/packages/tachyons-text-align/css/tachyons-text-align.min.css
@@ -0,0 +1,2 @@
+.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}}@media screen and (min-width:30em) and (max-width:60em){.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}}@media screen and (min-width:60em){.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}}
+
diff --git a/packages/tachyons-text-align/package.json b/packages/tachyons-text-align/package.json
new file mode 100644
index 000000000..bac0ed910
--- /dev/null
+++ b/packages/tachyons-text-align/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-text-align",
+ "version": "3.0.0",
+ "style": "src/tachyons-text-align.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-text-align",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-text-align.css > css/tachyons-text-align.css",
+ "build:minify": "tachyons src/tachyons-text-align.css --minify > css/tachyons-text-align.min.css",
+ "build:docs": "tachyons src/tachyons-text-align.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-text-align/readme.md b/packages/tachyons-text-align/readme.md
new file mode 100644
index 000000000..8d6f42665
--- /dev/null
+++ b/packages/tachyons-text-align/readme.md
@@ -0,0 +1,118 @@
+# tachyons-text-align 3.0.0
+
+Performance based css module.
+
+#### Stats
+
+177 | 12 | 12
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-text-align
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-text-align
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-text-align.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-text-align";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ TEXT ALIGN
+
+*/
+.tl { text-align: left; }
+.tr { text-align: right; }
+.tc { text-align: center; }
+@media screen and (min-width: 30em) {
+ .tl-ns { text-align: left; }
+ .tr-ns { text-align: right; }
+ .tc-ns { text-align: center; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .tl-m { text-align: left; }
+ .tr-m { text-align: right; }
+ .tc-m { text-align: center; }
+}
+@media screen and (min-width: 60em) {
+ .tl-l { text-align: left; }
+ .tr-l { text-align: right; }
+ .tc-l { text-align: center; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-text-align/src/tachyons-text-align.css b/packages/tachyons-text-align/src/tachyons-text-align.css
new file mode 100644
index 000000000..4fe45d0ab
--- /dev/null
+++ b/packages/tachyons-text-align/src/tachyons-text-align.css
@@ -0,0 +1,48 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ TEXT ALIGN
+ Docs: http://tachyons.io/docs/typography/text-align/
+
+ Base
+ t = text-align
+
+ Modifiers
+ l = left
+ r = right
+ c = center
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.tl { text-align: left; }
+.tr { text-align: right; }
+.tc { text-align: center; }
+
+@media (--breakpoint-not-small) {
+ .tl-ns { text-align: left; }
+ .tr-ns { text-align: right; }
+ .tc-ns { text-align: center; }
+}
+
+@media (--breakpoint-medium) {
+ .tl-m { text-align: left; }
+ .tr-m { text-align: right; }
+ .tc-m { text-align: center; }
+}
+
+@media (--breakpoint-large) {
+ .tl-l { text-align: left; }
+ .tr-l { text-align: right; }
+ .tc-l { text-align: center; }
+}
+
diff --git a/packages/tachyons-text-decoration/.gitignore b/packages/tachyons-text-decoration/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-text-decoration/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-text-decoration/LICENSE.txt b/packages/tachyons-text-decoration/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-text-decoration/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-text-decoration/code-of-conduct.md b/packages/tachyons-text-decoration/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-text-decoration/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-text-decoration/css/tachyons-text-decoration.css b/packages/tachyons-text-decoration/css/tachyons-text-decoration.css
new file mode 100644
index 000000000..987c0bc06
--- /dev/null
+++ b/packages/tachyons-text-decoration/css/tachyons-text-decoration.css
@@ -0,0 +1,24 @@
+/*
+
+ TEXT DECORATION
+
+*/
+.strike { text-decoration: line-through; }
+.underline { text-decoration: underline; }
+.no-underline { text-decoration: none; }
+@media screen and (min-width: 30em) {
+ .strike-ns { text-decoration: line-through; }
+ .underline-ns { text-decoration: underline; }
+ .no-underline-ns { text-decoration: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .strike-m { text-decoration: line-through; }
+ .underline-m { text-decoration: underline; }
+ .no-underline-m { text-decoration: none; }
+}
+@media screen and (min-width: 60em) {
+ .strike-l { text-decoration: line-through; }
+ .underline-l { text-decoration: underline; }
+ .no-underline-l { text-decoration: none; }
+}
+
diff --git a/packages/tachyons-text-decoration/css/tachyons-text-decoration.min.css b/packages/tachyons-text-decoration/css/tachyons-text-decoration.min.css
new file mode 100644
index 000000000..b9f359b04
--- /dev/null
+++ b/packages/tachyons-text-decoration/css/tachyons-text-decoration.min.css
@@ -0,0 +1,2 @@
+.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}@media screen and (min-width:30em){.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}}@media screen and (min-width:30em) and (max-width:60em){.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}}
+
diff --git a/packages/tachyons-text-decoration/package.json b/packages/tachyons-text-decoration/package.json
new file mode 100644
index 000000000..60e1e46b8
--- /dev/null
+++ b/packages/tachyons-text-decoration/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-text-decoration",
+ "version": "4.0.0",
+ "style": "src/tachyons-text-decoration.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-text-decoration",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-text-decoration.css > css/tachyons-text-decoration.css",
+ "build:minify": "tachyons src/tachyons-text-decoration.css --minify > css/tachyons-text-decoration.min.css",
+ "build:docs": "tachyons src/tachyons-text-decoration.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-text-decoration/readme.md b/packages/tachyons-text-decoration/readme.md
new file mode 100644
index 000000000..859be726a
--- /dev/null
+++ b/packages/tachyons-text-decoration/readme.md
@@ -0,0 +1,118 @@
+# tachyons-text-decoration 4.0.0
+
+Performance based css module.
+
+#### Stats
+
+203 | 12 | 12
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-text-decoration
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-text-decoration
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-text-decoration.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-text-decoration";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ TEXT DECORATION
+
+*/
+.strike { text-decoration: line-through; }
+.underline { text-decoration: underline; }
+.no-underline { text-decoration: none; }
+@media screen and (min-width: 30em) {
+ .strike-ns { text-decoration: line-through; }
+ .underline-ns { text-decoration: underline; }
+ .no-underline-ns { text-decoration: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .strike-m { text-decoration: line-through; }
+ .underline-m { text-decoration: underline; }
+ .no-underline-m { text-decoration: none; }
+}
+@media screen and (min-width: 60em) {
+ .strike-l { text-decoration: line-through; }
+ .underline-l { text-decoration: underline; }
+ .no-underline-l { text-decoration: none; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-text-decoration/src/tachyons-text-decoration.css b/packages/tachyons-text-decoration/src/tachyons-text-decoration.css
new file mode 100644
index 000000000..45ba7a5b8
--- /dev/null
+++ b/packages/tachyons-text-decoration/src/tachyons-text-decoration.css
@@ -0,0 +1,41 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ TEXT DECORATION
+ Docs: http://tachyons.io/docs/typography/text-decoration/
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.strike { text-decoration: line-through; }
+.underline { text-decoration: underline; }
+.no-underline { text-decoration: none; }
+
+
+@media (--breakpoint-not-small) {
+ .strike-ns { text-decoration: line-through; }
+ .underline-ns { text-decoration: underline; }
+ .no-underline-ns { text-decoration: none; }
+}
+
+@media (--breakpoint-medium) {
+ .strike-m { text-decoration: line-through; }
+ .underline-m { text-decoration: underline; }
+ .no-underline-m { text-decoration: none; }
+}
+
+@media (--breakpoint-large) {
+ .strike-l { text-decoration: line-through; }
+ .underline-l { text-decoration: underline; }
+ .no-underline-l { text-decoration: none; }
+}
diff --git a/packages/tachyons-text-transform/.gitignore b/packages/tachyons-text-transform/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-text-transform/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-text-transform/LICENSE.txt b/packages/tachyons-text-transform/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-text-transform/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-text-transform/code-of-conduct.md b/packages/tachyons-text-transform/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-text-transform/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-text-transform/css/tachyons-text-transform.css b/packages/tachyons-text-transform/css/tachyons-text-transform.css
new file mode 100644
index 000000000..d30d562ac
--- /dev/null
+++ b/packages/tachyons-text-transform/css/tachyons-text-transform.css
@@ -0,0 +1,28 @@
+/*
+
+ TEXT TRANSFORM
+
+*/
+.ttc { text-transform: capitalize; }
+.ttl { text-transform: lowercase; }
+.ttu { text-transform: uppercase; }
+.ttn { text-transform: none; }
+@media screen and (min-width: 30em) {
+ .ttc-ns { text-transform: capitalize; }
+ .ttl-ns { text-transform: lowercase; }
+ .ttu-ns { text-transform: uppercase; }
+ .ttn-ns { text-transform: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .ttc-m { text-transform: capitalize; }
+ .ttl-m { text-transform: lowercase; }
+ .ttu-m { text-transform: uppercase; }
+ .ttn-m { text-transform: none; }
+}
+@media screen and (min-width: 60em) {
+ .ttc-l { text-transform: capitalize; }
+ .ttl-l { text-transform: lowercase; }
+ .ttu-l { text-transform: uppercase; }
+ .ttn-l { text-transform: none; }
+}
+
diff --git a/packages/tachyons-text-transform/css/tachyons-text-transform.min.css b/packages/tachyons-text-transform/css/tachyons-text-transform.min.css
new file mode 100644
index 000000000..141c7a532
--- /dev/null
+++ b/packages/tachyons-text-transform/css/tachyons-text-transform.min.css
@@ -0,0 +1,2 @@
+.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em) and (max-width:60em){.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}}
+
diff --git a/packages/tachyons-text-transform/package.json b/packages/tachyons-text-transform/package.json
new file mode 100644
index 000000000..d6caa0a11
--- /dev/null
+++ b/packages/tachyons-text-transform/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-text-transform",
+ "version": "4.0.0",
+ "style": "src/tachyons-text-transform.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-text-transform",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-text-transform.css > css/tachyons-text-transform.css",
+ "build:minify": "tachyons src/tachyons-text-transform.css --minify > css/tachyons-text-transform.min.css",
+ "build:docs": "tachyons src/tachyons-text-transform.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-text-transform/readme.md b/packages/tachyons-text-transform/readme.md
new file mode 100644
index 000000000..b65f7e0b4
--- /dev/null
+++ b/packages/tachyons-text-transform/readme.md
@@ -0,0 +1,122 @@
+# tachyons-text-transform 4.0.0
+
+Performance based css module.
+
+#### Stats
+
+210 | 16 | 16
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-text-transform
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-text-transform
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-text-transform.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-text-transform";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ TEXT TRANSFORM
+
+*/
+.ttc { text-transform: capitalize; }
+.ttl { text-transform: lowercase; }
+.ttu { text-transform: uppercase; }
+.ttn { text-transform: none; }
+@media screen and (min-width: 30em) {
+ .ttc-ns { text-transform: capitalize; }
+ .ttl-ns { text-transform: lowercase; }
+ .ttu-ns { text-transform: uppercase; }
+ .ttn-ns { text-transform: none; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .ttc-m { text-transform: capitalize; }
+ .ttl-m { text-transform: lowercase; }
+ .ttu-m { text-transform: uppercase; }
+ .ttn-m { text-transform: none; }
+}
+@media screen and (min-width: 60em) {
+ .ttc-l { text-transform: capitalize; }
+ .ttl-l { text-transform: lowercase; }
+ .ttu-l { text-transform: uppercase; }
+ .ttn-l { text-transform: none; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-text-transform/src/tachyons-text-transform.css b/packages/tachyons-text-transform/src/tachyons-text-transform.css
new file mode 100644
index 000000000..793ae888f
--- /dev/null
+++ b/packages/tachyons-text-transform/src/tachyons-text-transform.css
@@ -0,0 +1,52 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ TEXT TRANSFORM
+ Docs: http://tachyons.io/docs/typography/text-transform/
+
+ Base:
+ tt = text-transform
+
+ Modifiers
+ c = capitalize
+ l = lowercase
+ u = uppercase
+ n = none
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.ttc { text-transform: capitalize; }
+.ttl { text-transform: lowercase; }
+.ttu { text-transform: uppercase; }
+.ttn { text-transform: none; }
+
+@media (--breakpoint-not-small) {
+ .ttc-ns { text-transform: capitalize; }
+ .ttl-ns { text-transform: lowercase; }
+ .ttu-ns { text-transform: uppercase; }
+ .ttn-ns { text-transform: none; }
+}
+
+@media (--breakpoint-medium) {
+ .ttc-m { text-transform: capitalize; }
+ .ttl-m { text-transform: lowercase; }
+ .ttu-m { text-transform: uppercase; }
+ .ttn-m { text-transform: none; }
+}
+
+@media (--breakpoint-large) {
+ .ttc-l { text-transform: capitalize; }
+ .ttl-l { text-transform: lowercase; }
+ .ttu-l { text-transform: uppercase; }
+ .ttn-l { text-transform: none; }
+}
diff --git a/packages/tachyons-type-scale/.gitignore b/packages/tachyons-type-scale/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-type-scale/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-type-scale/LICENSE.txt b/packages/tachyons-type-scale/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-type-scale/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-type-scale/code-of-conduct.md b/packages/tachyons-type-scale/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-type-scale/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-type-scale/css/tachyons-type-scale.css b/packages/tachyons-type-scale/css/tachyons-type-scale.css
new file mode 100644
index 000000000..409ae3294
--- /dev/null
+++ b/packages/tachyons-type-scale/css/tachyons-type-scale.css
@@ -0,0 +1,46 @@
+/*
+
+ TYPE SCALE
+
+*/
+/* For Hero Titles */
+.f-6, .f-headline { font-size: 6rem; }
+.f-5, .f-subheadline { font-size: 5rem; }
+/* Type Scale */
+.f1 { font-size: 3rem; }
+.f2 { font-size: 2.25rem; }
+.f3 { font-size: 1.5rem; }
+.f4 { font-size: 1.25rem; }
+.f5 { font-size: 1rem; }
+.f6 { font-size: .875rem; }
+@media screen and (min-width: 30em) {
+ .f-6-ns, .f-headline-ns { font-size: 6rem; }
+ .f-5-ns, .f-subheadline-ns { font-size: 5rem; }
+ .f1-ns { font-size: 3rem; }
+ .f2-ns { font-size: 2.25rem; }
+ .f3-ns { font-size: 1.5rem; }
+ .f4-ns { font-size: 1.25rem; }
+ .f5-ns { font-size: 1rem; }
+ .f6-ns { font-size: .875rem; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .f-6-m, .f-headline-m { font-size: 6rem; }
+ .f-5-m, .f-subheadline-m { font-size: 5rem; }
+ .f1-m { font-size: 3rem; }
+ .f2-m { font-size: 2.25rem; }
+ .f3-m { font-size: 1.5rem; }
+ .f4-m { font-size: 1.25rem; }
+ .f5-m { font-size: 1rem; }
+ .f6-m { font-size: .875rem; }
+}
+@media screen and (min-width: 60em) {
+ .f-6-l, .f-headline-l { font-size: 6rem; }
+ .f-5-l, .f-subheadline-l { font-size: 5rem; }
+ .f1-l { font-size: 3rem; }
+ .f2-l { font-size: 2.25rem; }
+ .f3-l { font-size: 1.5rem; }
+ .f4-l { font-size: 1.25rem; }
+ .f5-l { font-size: 1rem; }
+ .f6-l { font-size: .875rem; }
+}
+
diff --git a/packages/tachyons-type-scale/css/tachyons-type-scale.min.css b/packages/tachyons-type-scale/css/tachyons-type-scale.min.css
new file mode 100644
index 000000000..f565cf09a
--- /dev/null
+++ b/packages/tachyons-type-scale/css/tachyons-type-scale.min.css
@@ -0,0 +1,2 @@
+.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}@media screen and (min-width:30em){.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}}@media screen and (min-width:30em) and (max-width:60em){.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}}@media screen and (min-width:60em){.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}}
+
diff --git a/packages/tachyons-type-scale/package.json b/packages/tachyons-type-scale/package.json
new file mode 100644
index 000000000..7b29225c6
--- /dev/null
+++ b/packages/tachyons-type-scale/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-type-scale",
+ "version": "6.0.0",
+ "style": "src/tachyons-type-scale.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-type-scale",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-type-scale.css > css/tachyons-type-scale.css",
+ "build:minify": "tachyons src/tachyons-type-scale.css --minify > css/tachyons-type-scale.min.css",
+ "build:docs": "tachyons src/tachyons-type-scale.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-type-scale/readme.md b/packages/tachyons-type-scale/readme.md
new file mode 100644
index 000000000..7b8e05977
--- /dev/null
+++ b/packages/tachyons-type-scale/readme.md
@@ -0,0 +1,140 @@
+# tachyons-type-scale 6.0.0
+
+Performance based css module.
+
+#### Stats
+
+317 | 40 | 32
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-type-scale
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-type-scale
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-type-scale.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-type-scale";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ TYPE SCALE
+
+*/
+/* For Hero Titles */
+.f-6, .f-headline { font-size: 6rem; }
+.f-5, .f-subheadline { font-size: 5rem; }
+/* Type Scale */
+.f1 { font-size: 3rem; }
+.f2 { font-size: 2.25rem; }
+.f3 { font-size: 1.5rem; }
+.f4 { font-size: 1.25rem; }
+.f5 { font-size: 1rem; }
+.f6 { font-size: .875rem; }
+@media screen and (min-width: 30em) {
+ .f-6-ns, .f-headline-ns { font-size: 6rem; }
+ .f-5-ns, .f-subheadline-ns { font-size: 5rem; }
+ .f1-ns { font-size: 3rem; }
+ .f2-ns { font-size: 2.25rem; }
+ .f3-ns { font-size: 1.5rem; }
+ .f4-ns { font-size: 1.25rem; }
+ .f5-ns { font-size: 1rem; }
+ .f6-ns { font-size: .875rem; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .f-6-m, .f-headline-m { font-size: 6rem; }
+ .f-5-m, .f-subheadline-m { font-size: 5rem; }
+ .f1-m { font-size: 3rem; }
+ .f2-m { font-size: 2.25rem; }
+ .f3-m { font-size: 1.5rem; }
+ .f4-m { font-size: 1.25rem; }
+ .f5-m { font-size: 1rem; }
+ .f6-m { font-size: .875rem; }
+}
+@media screen and (min-width: 60em) {
+ .f-6-l, .f-headline-l { font-size: 6rem; }
+ .f-5-l, .f-subheadline-l { font-size: 5rem; }
+ .f1-l { font-size: 3rem; }
+ .f2-l { font-size: 2.25rem; }
+ .f3-l { font-size: 1.5rem; }
+ .f4-l { font-size: 1.25rem; }
+ .f5-l { font-size: 1rem; }
+ .f6-l { font-size: .875rem; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-type-scale/src/tachyons-type-scale.css b/packages/tachyons-type-scale/src/tachyons-type-scale.css
new file mode 100644
index 000000000..53d130c45
--- /dev/null
+++ b/packages/tachyons-type-scale/src/tachyons-type-scale.css
@@ -0,0 +1,101 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ TYPE SCALE
+ Docs: http://tachyons.io/docs/typography/scale/
+
+ Base:
+ f = font-size
+
+ Modifiers
+ 1 = 1st step in size scale
+ 2 = 2nd step in size scale
+ 3 = 3rd step in size scale
+ 4 = 4th step in size scale
+ 5 = 5th step in size scale
+ 6 = 6th step in size scale
+ 7 = 7th step in size scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+*/
+
+/*
+ * For Hero/Marketing Titles
+ *
+ * These generally are too large for mobile
+ * so be careful using them on smaller screens.
+ * */
+
+.f-6,
+.f-headline {
+ font-size: 6rem;
+}
+.f-5,
+.f-subheadline {
+ font-size: 5rem;
+}
+
+
+/* Type Scale */
+
+.f1 { font-size: 3rem; }
+.f2 { font-size: 2.25rem; }
+.f3 { font-size: 1.5rem; }
+.f4 { font-size: 1.25rem; }
+.f5 { font-size: 1rem; }
+.f6 { font-size: .875rem; }
+.f7 { font-size: .75rem; } /* Small and hard to read for many people so use with extreme caution */
+
+@media (--breakpoint-not-small){
+ .f-6-ns,
+ .f-headline-ns { font-size: 6rem; }
+ .f-5-ns,
+ .f-subheadline-ns { font-size: 5rem; }
+ .f1-ns { font-size: 3rem; }
+ .f2-ns { font-size: 2.25rem; }
+ .f3-ns { font-size: 1.5rem; }
+ .f4-ns { font-size: 1.25rem; }
+ .f5-ns { font-size: 1rem; }
+ .f6-ns { font-size: .875rem; }
+ .f7-ns { font-size: .75rem; }
+}
+
+@media (--breakpoint-medium) {
+ .f-6-m,
+ .f-headline-m { font-size: 6rem; }
+ .f-5-m,
+ .f-subheadline-m { font-size: 5rem; }
+ .f1-m { font-size: 3rem; }
+ .f2-m { font-size: 2.25rem; }
+ .f3-m { font-size: 1.5rem; }
+ .f4-m { font-size: 1.25rem; }
+ .f5-m { font-size: 1rem; }
+ .f6-m { font-size: .875rem; }
+ .f7-m { font-size: .75rem; }
+}
+
+@media (--breakpoint-large) {
+ .f-6-l,
+ .f-headline-l {
+ font-size: 6rem;
+ }
+ .f-5-l,
+ .f-subheadline-l {
+ font-size: 5rem;
+ }
+ .f1-l { font-size: 3rem; }
+ .f2-l { font-size: 2.25rem; }
+ .f3-l { font-size: 1.5rem; }
+ .f4-l { font-size: 1.25rem; }
+ .f5-l { font-size: 1rem; }
+ .f6-l { font-size: .875rem; }
+ .f7-l { font-size: .75rem; }
+}
diff --git a/packages/tachyons-typography/.gitignore b/packages/tachyons-typography/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-typography/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-typography/LICENSE.txt b/packages/tachyons-typography/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-typography/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-typography/code-of-conduct.md b/packages/tachyons-typography/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-typography/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-typography/css/tachyons-typography.css b/packages/tachyons-typography/css/tachyons-typography.css
new file mode 100644
index 000000000..37b94ca6c
--- /dev/null
+++ b/packages/tachyons-typography/css/tachyons-typography.css
@@ -0,0 +1,41 @@
+/*
+
+ TYPOGRAPHY
+
+*/
+/* Measure is limited to ~66 characters */
+.measure { max-width: 30em; }
+/* Measure is limited to ~80 characters */
+.measure-wide { max-width: 34em; }
+/* Measure is limited to ~45 characters */
+.measure-narrow { max-width: 20em; }
+/* Book paragraph style - paragraphs are indented with no vertical spacing. */
+.indent { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+.small-caps { font-variant: small-caps; }
+/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */
+.truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+@media screen and (min-width: 30em) {
+ .measure-ns { max-width: 30em; }
+ .measure-wide-ns { max-width: 34em; }
+ .measure-narrow-ns { max-width: 20em; }
+ .indent-ns { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+ .small-caps-ns { font-variant: small-caps; }
+ .truncate-ns { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .measure-m { max-width: 30em; }
+ .measure-wide-m { max-width: 34em; }
+ .measure-narrow-m { max-width: 20em; }
+ .indent-m { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+ .small-caps-m { font-variant: small-caps; }
+ .truncate-m { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+}
+@media screen and (min-width: 60em) {
+ .measure-l { max-width: 30em; }
+ .measure-wide-l { max-width: 34em; }
+ .measure-narrow-l { max-width: 20em; }
+ .indent-l { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+ .small-caps-l { font-variant: small-caps; }
+ .truncate-l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+}
+
diff --git a/packages/tachyons-typography/css/tachyons-typography.min.css b/packages/tachyons-typography/css/tachyons-typography.min.css
new file mode 100644
index 000000000..1e7c331ac
--- /dev/null
+++ b/packages/tachyons-typography/css/tachyons-typography.min.css
@@ -0,0 +1,2 @@
+.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps{font-variant:small-caps}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media screen and (min-width:30em){.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-ns{font-variant:small-caps}.truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (min-width:30em) and (max-width:60em){.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-m{font-variant:small-caps}.truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (min-width:60em){.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-l{font-variant:small-caps}.truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
+
diff --git a/packages/tachyons-typography/package.json b/packages/tachyons-typography/package.json
new file mode 100644
index 000000000..cebd321bc
--- /dev/null
+++ b/packages/tachyons-typography/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "tachyons-typography",
+ "version": "3.0.0",
+ "style": "src/tachyons-typography.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-typography",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-typography.css > css/tachyons-typography.css",
+ "build:minify": "tachyons src/tachyons-typography.css --minify > css/tachyons-typography.min.css",
+ "build:docs": "tachyons src/tachyons-typography.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true,
+ "nickName": "measure"
+ }
+}
diff --git a/packages/tachyons-typography/readme.md b/packages/tachyons-typography/readme.md
new file mode 100644
index 000000000..44fd57033
--- /dev/null
+++ b/packages/tachyons-typography/readme.md
@@ -0,0 +1,135 @@
+# tachyons-typography 3.0.0
+
+Performance based css module.
+
+#### Stats
+
+460 | 24 | 40
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-typography
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-typography
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-typography.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-typography";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ TYPOGRAPHY
+
+*/
+/* Measure is limited to ~66 characters */
+.measure { max-width: 30em; }
+/* Measure is limited to ~80 characters */
+.measure-wide { max-width: 34em; }
+/* Measure is limited to ~45 characters */
+.measure-narrow { max-width: 20em; }
+/* Book paragraph style - paragraphs are indented with no vertical spacing. */
+.indent { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+.small-caps { font-variant: small-caps; }
+/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */
+.truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+@media screen and (min-width: 30em) {
+ .measure-ns { max-width: 30em; }
+ .measure-wide-ns { max-width: 34em; }
+ .measure-narrow-ns { max-width: 20em; }
+ .indent-ns { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+ .small-caps-ns { font-variant: small-caps; }
+ .truncate-ns { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .measure-m { max-width: 30em; }
+ .measure-wide-m { max-width: 34em; }
+ .measure-narrow-m { max-width: 20em; }
+ .indent-m { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+ .small-caps-m { font-variant: small-caps; }
+ .truncate-m { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+}
+@media screen and (min-width: 60em) {
+ .measure-l { max-width: 30em; }
+ .measure-wide-l { max-width: 34em; }
+ .measure-narrow-l { max-width: 20em; }
+ .indent-l { text-indent: 1em; margin-top: 0; margin-bottom: 0; }
+ .small-caps-l { font-variant: small-caps; }
+ .truncate-l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-typography/src/tachyons-typography.css b/packages/tachyons-typography/src/tachyons-typography.css
new file mode 100644
index 000000000..155980c14
--- /dev/null
+++ b/packages/tachyons-typography/src/tachyons-typography.css
@@ -0,0 +1,128 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ TYPOGRAPHY
+ http://tachyons.io/docs/typography/measure/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+
+
+/* Measure is limited to ~66 characters */
+.measure {
+ max-width: 30em;
+}
+
+/* Measure is limited to ~80 characters */
+.measure-wide {
+ max-width: 34em;
+}
+
+/* Measure is limited to ~45 characters */
+.measure-narrow {
+ max-width: 20em;
+}
+
+/* Book paragraph style - paragraphs are indented with no vertical spacing. */
+.indent {
+ text-indent: 1em;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.small-caps {
+ font-variant: small-caps;
+}
+
+/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */
+
+.truncate {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+@media (--breakpoint-not-small) {
+ .measure-ns {
+ max-width: 30em;
+ }
+ .measure-wide-ns {
+ max-width: 34em;
+ }
+ .measure-narrow-ns {
+ max-width: 20em;
+ }
+ .indent-ns {
+ text-indent: 1em;
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+ .small-caps-ns {
+ font-variant: small-caps;
+ }
+ .truncate-ns {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+}
+
+@media (--breakpoint-medium) {
+ .measure-m {
+ max-width: 30em;
+ }
+ .measure-wide-m {
+ max-width: 34em;
+ }
+ .measure-narrow-m {
+ max-width: 20em;
+ }
+ .indent-m {
+ text-indent: 1em;
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+ .small-caps-m {
+ font-variant: small-caps;
+ }
+ .truncate-m {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+}
+
+@media (--breakpoint-large) {
+ .measure-l {
+ max-width: 30em;
+ }
+ .measure-wide-l {
+ max-width: 34em;
+ }
+ .measure-narrow-l {
+ max-width: 20em;
+ }
+ .indent-l {
+ text-indent: 1em;
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+ .small-caps-l {
+ font-variant: small-caps;
+ }
+ .truncate-l {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+}
diff --git a/packages/tachyons-utilities/.gitignore b/packages/tachyons-utilities/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-utilities/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-utilities/LICENSE.txt b/packages/tachyons-utilities/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-utilities/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-utilities/code-of-conduct.md b/packages/tachyons-utilities/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-utilities/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-utilities/css/tachyons-utilities.css b/packages/tachyons-utilities/css/tachyons-utilities.css
new file mode 100644
index 000000000..d7ee0e57f
--- /dev/null
+++ b/packages/tachyons-utilities/css/tachyons-utilities.css
@@ -0,0 +1,25 @@
+/*
+
+ UTILITIES
+
+*/
+/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
+ * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
+ * Make sure there are no height and width attributes on the embedded media.
+ * Adapted from: https://github.com/suitcss/components-flex-embed
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ *
+ * */
+.aspect-ratio { height: 0; position: relative; }
+.aspect-ratio--16x9 { padding-bottom: 56.25%; }
+.aspect-ratio--4x3 { padding-bottom: 75%; }
+.aspect-ratio--8x5 { padding-bottom: 62.5%; }
+.aspect-ratio--object { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+.overflow-container { overflow-y: scroll; }
+.center { margin-right: auto; margin-left: auto; }
+
diff --git a/packages/tachyons-utilities/css/tachyons-utilities.min.css b/packages/tachyons-utilities/css/tachyons-utilities.min.css
new file mode 100644
index 000000000..a16b8e210
--- /dev/null
+++ b/packages/tachyons-utilities/css/tachyons-utilities.min.css
@@ -0,0 +1,2 @@
+.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1}.overflow-container{overflow-y:scroll}.center{margin-right:auto;margin-left:auto}
+
diff --git a/packages/tachyons-utilities/css/utilities.css b/packages/tachyons-utilities/css/utilities.css
new file mode 100644
index 000000000..a20a6d973
--- /dev/null
+++ b/packages/tachyons-utilities/css/utilities.css
@@ -0,0 +1,85 @@
+/*
+
+ UTILITIES
+
+*/
+/*
+ * The Media Object
+ * Built by @stubornella
+ * http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/
+ *
+ *
+ */
+/*
+ * The Flag Object
+ * Built by @csswizzrdry
+ * http://csswizardry.com/2013/05/the-flag-object/
+ *
+ *
+ * Use to vertically center text against an image.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+.flag {
+ display: table;
+ width: 100%; }
+
+.flag--image, .flag--body {
+ display: table-cell;
+ vertical-align: middle; }
+ .flag--top .flag--image, .flag--top .flag--body {
+ vertical-align: top; }
+ .flag--bottom .flag--image, .flag--bottom .flag--body {
+ vertical-align: bottom; }
+
+.flag--image {
+ padding-right: 10px; }
+ .flag--image > img {
+ display: block;
+ max-width: none; }
+ .flag--rev .flag--image {
+ padding-right: 0;
+ padding-left: 10px; }
+
+.flag--body {
+ width: 100%; }
+
+/*
+ Aspect ratios for media objects i.e canvas, iframe, video, svg etc.
+ Defaults to 16x9
+*/
+.aspect-ratio {
+ height: 0;
+ padding-top: 56.25%;
+ position: relative; }
+
+.aspect-ratio--object {
+ bottom: 0;
+ height: 100%;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 100%;
+ z-index: 100; }
+
+.overflow-container {
+ overflow-y: scroll; }
diff --git a/packages/tachyons-utilities/css/utilities.min.css b/packages/tachyons-utilities/css/utilities.min.css
new file mode 100644
index 000000000..d4a8a98e9
--- /dev/null
+++ b/packages/tachyons-utilities/css/utilities.min.css
@@ -0,0 +1 @@
+.flag{display:table;width:100%}.flag--body,.flag--image{display:table-cell;vertical-align:middle}.flag--top .flag--body,.flag--top .flag--image{vertical-align:top}.flag--bottom .flag--body,.flag--bottom .flag--image{vertical-align:bottom}.flag--image{padding-right:10px}.flag--image>img{display:block;max-width:none}.flag--rev .flag--image{padding-right:0;padding-left:10px}.flag--body{width:100%}.aspect-ratio{height:0;padding-top:56.25%;position:relative}.aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.overflow-container{overflow-y:scroll}
\ No newline at end of file
diff --git a/packages/tachyons-utilities/package.json b/packages/tachyons-utilities/package.json
new file mode 100644
index 000000000..3d730d0bf
--- /dev/null
+++ b/packages/tachyons-utilities/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "tachyons-utilities",
+ "version": "1.2.5",
+ "style": "src/tachyons-utilities.css",
+ "description": "Performance based css module.",
+ "isCore": true,
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-utilities",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-utilities.css > css/tachyons-utilities.css",
+ "build:minify": "tachyons src/tachyons-utilities.css --minify > css/tachyons-utilities.min.css",
+ "build:docs": "tachyons src/tachyons-utilities.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-utilities/readme.md b/packages/tachyons-utilities/readme.md
new file mode 100644
index 000000000..1ce719e3f
--- /dev/null
+++ b/packages/tachyons-utilities/readme.md
@@ -0,0 +1,119 @@
+# tachyons-utilities 1.2.5
+
+Performance based css module.
+
+#### Stats
+
+481 | 7 | 16
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-utilities
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-utilities
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-utilities.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-utilities";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ UTILITIES
+
+*/
+/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
+ * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
+ * Make sure there are no height and width attributes on the embedded media.
+ * Adapted from: https://github.com/suitcss/components-flex-embed
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ *
+ * */
+.aspect-ratio { height: 0; position: relative; }
+.aspect-ratio--16x9 { padding-bottom: 56.25%; }
+.aspect-ratio--4x3 { padding-bottom: 75%; }
+.aspect-ratio--8x5 { padding-bottom: 62.5%; }
+.aspect-ratio--object { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 100; }
+.overflow-container { overflow-y: scroll; }
+.center { margin-right: auto; margin-left: auto; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-utilities/src/tachyons-utilities.css b/packages/tachyons-utilities/src/tachyons-utilities.css
new file mode 100644
index 000000000..f08314558
--- /dev/null
+++ b/packages/tachyons-utilities/src/tachyons-utilities.css
@@ -0,0 +1,47 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ UTILITIES
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+/* Equivalent to .overflow-y-scroll */
+.overflow-container {
+ overflow-y: scroll;
+}
+
+.center {
+ margin-right: auto;
+ margin-left: auto;
+}
+
+@media (--breakpoint-not-small){
+ .center-ns {
+ margin-right: auto;
+ margin-left: auto;
+ }
+}
+
+@media (--breakpoint-medium){
+ .center-m {
+ margin-right: auto;
+ margin-left: auto;
+ }
+}
+
+@media (--breakpoint-large){
+ .center-l {
+ margin-right: auto;
+ margin-left: auto;
+ }
+}
diff --git a/packages/tachyons-vertical-align/.gitignore b/packages/tachyons-vertical-align/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-vertical-align/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-vertical-align/LICENSE.txt b/packages/tachyons-vertical-align/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-vertical-align/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-vertical-align/code-of-conduct.md b/packages/tachyons-vertical-align/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-vertical-align/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-vertical-align/css/tachyons-vertical-align.css b/packages/tachyons-vertical-align/css/tachyons-vertical-align.css
new file mode 100644
index 000000000..cf3ad6e22
--- /dev/null
+++ b/packages/tachyons-vertical-align/css/tachyons-vertical-align.css
@@ -0,0 +1,28 @@
+/*
+
+ VERTICAL ALIGN
+
+*/
+.v-base { vertical-align: baseline; }
+.v-mid { vertical-align: middle; }
+.v-top { vertical-align: top; }
+.v-btm { vertical-align: bottom; }
+@media screen and (min-width: 30em) {
+ .v-base-ns { vertical-align: baseline; }
+ .v-mid-ns { vertical-align: middle; }
+ .v-top-ns { vertical-align: top; }
+ .v-btm-ns { vertical-align: bottom; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .v-base-m { vertical-align: baseline; }
+ .v-mid-m { vertical-align: middle; }
+ .v-top-m { vertical-align: top; }
+ .v-btm-m { vertical-align: bottom; }
+}
+@media screen and (min-width: 60em) {
+ .v-base-l { vertical-align: baseline; }
+ .v-mid-l { vertical-align: middle; }
+ .v-top-l { vertical-align: top; }
+ .v-btm-l { vertical-align: bottom; }
+}
+
diff --git a/packages/tachyons-vertical-align/css/tachyons-vertical-align.min.css b/packages/tachyons-vertical-align/css/tachyons-vertical-align.min.css
new file mode 100644
index 000000000..3fc1b39d9
--- /dev/null
+++ b/packages/tachyons-vertical-align/css/tachyons-vertical-align.min.css
@@ -0,0 +1,2 @@
+.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}@media screen and (min-width:30em){.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}
+
diff --git a/packages/tachyons-vertical-align/package.json b/packages/tachyons-vertical-align/package.json
new file mode 100644
index 000000000..cfd1789c8
--- /dev/null
+++ b/packages/tachyons-vertical-align/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "tachyons-vertical-align",
+ "version": "4.0.0",
+ "style": "src/tachyons-vertical-align.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyon-css"
+ ],
+ "repository": "tachyons-css/tachyons-vertical-align",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-vertical-align.css > css/tachyons-vertical-align.css",
+ "build:minify": "tachyons src/tachyons-vertical-align.css --minify > css/tachyons-vertical-align.min.css",
+ "build:docs": "tachyons src/tachyons-vertical-align.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-vertical-align/readme.md b/packages/tachyons-vertical-align/readme.md
new file mode 100644
index 000000000..9385b4044
--- /dev/null
+++ b/packages/tachyons-vertical-align/readme.md
@@ -0,0 +1,122 @@
+# tachyons-vertical-align 4.0.0
+
+Performance based css module.
+
+#### Stats
+
+213 | 16 | 16
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-vertical-align
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-vertical-align
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-vertical-align.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-vertical-align";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ VERTICAL ALIGN
+
+*/
+.v-base { vertical-align: baseline; }
+.v-mid { vertical-align: middle; }
+.v-top { vertical-align: top; }
+.v-btm { vertical-align: bottom; }
+@media screen and (min-width: 30em) {
+ .v-base-ns { vertical-align: baseline; }
+ .v-mid-ns { vertical-align: middle; }
+ .v-top-ns { vertical-align: top; }
+ .v-btm-ns { vertical-align: bottom; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .v-base-m { vertical-align: baseline; }
+ .v-mid-m { vertical-align: middle; }
+ .v-top-m { vertical-align: top; }
+ .v-btm-m { vertical-align: bottom; }
+}
+@media screen and (min-width: 60em) {
+ .v-base-l { vertical-align: baseline; }
+ .v-mid-l { vertical-align: middle; }
+ .v-top-l { vertical-align: top; }
+ .v-btm-l { vertical-align: bottom; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-vertical-align/src/tachyons-vertical-align.css b/packages/tachyons-vertical-align/src/tachyons-vertical-align.css
new file mode 100644
index 000000000..667f385fe
--- /dev/null
+++ b/packages/tachyons-vertical-align/src/tachyons-vertical-align.css
@@ -0,0 +1,42 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ VERTICAL ALIGN
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.v-base { vertical-align: baseline; }
+.v-mid { vertical-align: middle; }
+.v-top { vertical-align: top; }
+.v-btm { vertical-align: bottom; }
+
+@media (--breakpoint-not-small) {
+ .v-base-ns { vertical-align: baseline; }
+ .v-mid-ns { vertical-align: middle; }
+ .v-top-ns { vertical-align: top; }
+ .v-btm-ns { vertical-align: bottom; }
+}
+
+@media (--breakpoint-medium) {
+ .v-base-m { vertical-align: baseline; }
+ .v-mid-m { vertical-align: middle; }
+ .v-top-m { vertical-align: top; }
+ .v-btm-m { vertical-align: bottom; }
+}
+
+@media (--breakpoint-large) {
+ .v-base-l { vertical-align: baseline; }
+ .v-mid-l { vertical-align: middle; }
+ .v-top-l { vertical-align: top; }
+ .v-btm-l { vertical-align: bottom; }
+}
diff --git a/packages/tachyons-visibility/.gitignore b/packages/tachyons-visibility/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-visibility/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-visibility/LICENSE.txt b/packages/tachyons-visibility/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-visibility/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-visibility/code-of-conduct.md b/packages/tachyons-visibility/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-visibility/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-visibility/css/tachyons-visibility.css b/packages/tachyons-visibility/css/tachyons-visibility.css
new file mode 100644
index 000000000..e6a469682
--- /dev/null
+++ b/packages/tachyons-visibility/css/tachyons-visibility.css
@@ -0,0 +1,20 @@
+/*
+
+ VISIBILITY
+
+*/
+/*
+ Text that is hidden but accessible
+ Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
+*/
+.clip { position: fixed !important; _position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
+@media screen and (min-width: 30em) {
+ .clip-ns { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .clip-m { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
+}
+@media screen and (min-width: 60em) {
+ .clip-l { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
+}
+
diff --git a/packages/tachyons-visibility/css/tachyons-visibility.min.css b/packages/tachyons-visibility/css/tachyons-visibility.min.css
new file mode 100644
index 000000000..ab37d9941
--- /dev/null
+++ b/packages/tachyons-visibility/css/tachyons-visibility.min.css
@@ -0,0 +1,2 @@
+.clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}@media screen and (min-width:30em){.clip-ns{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:30em) and (max-width:60em){.clip-m{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:60em){.clip-l{position:fixed!important;position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}
+
diff --git a/packages/tachyons-visibility/package.json b/packages/tachyons-visibility/package.json
new file mode 100644
index 000000000..17894ea83
--- /dev/null
+++ b/packages/tachyons-visibility/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "tachyons-visibility",
+ "version": "2.0.0",
+ "style": "src/tachyons-visibility.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-visibility",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-visibility.css > css/tachyons-visibility.css",
+ "build:minify": "tachyons src/tachyons-visibility.css --minify > css/tachyons-visibility.min.css",
+ "build:docs": "tachyons src/tachyons-visibility.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-visibility/readme.md b/packages/tachyons-visibility/readme.md
new file mode 100644
index 000000000..412382194
--- /dev/null
+++ b/packages/tachyons-visibility/readme.md
@@ -0,0 +1,114 @@
+# tachyons-visibility 2.0.0
+
+Performance based css module.
+
+#### Stats
+
+279 | 4 | 16
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-visibility
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-visibility
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-visibility.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-visibility";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ VISIBILITY
+
+*/
+/*
+ Text that is hidden but accessible
+ Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
+*/
+.clip { position: fixed !important; _position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
+@media screen and (min-width: 30em) {
+ .clip-ns { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .clip-m { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
+}
+@media screen and (min-width: 60em) {
+ .clip-l { position: fixed !important; position: absolute !important; clip: rect( 1px 1px 1px 1px ); /* IE6, IE7 */ clip: rect( 1px, 1px, 1px, 1px ); }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-visibility/src/tachyons-visibility.css b/packages/tachyons-visibility/src/tachyons-visibility.css
new file mode 100644
index 000000000..37e2abc02
--- /dev/null
+++ b/packages/tachyons-visibility/src/tachyons-visibility.css
@@ -0,0 +1,57 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ VISIBILITY
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+
+/*
+ Text that is hidden but accessible
+ Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
+*/
+
+.clip {
+ position: fixed !important;
+ _position: absolute !important;
+ clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+ clip: rect(1px, 1px, 1px, 1px);
+}
+
+@media (--breakpoint-not-small) {
+ .clip-ns {
+ position: fixed !important;
+ _position: absolute !important;
+ clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+ clip: rect(1px, 1px, 1px, 1px);
+ }
+}
+
+@media (--breakpoint-medium) {
+ .clip-m {
+ position: fixed !important;
+ _position: absolute !important;
+ clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+ clip: rect(1px, 1px, 1px, 1px);
+ }
+}
+
+@media (--breakpoint-large) {
+ .clip-l {
+ position: fixed !important;
+ _position: absolute !important;
+ clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+ clip: rect(1px, 1px, 1px, 1px);
+ }
+}
+
diff --git a/packages/tachyons-white-space/.gitignore b/packages/tachyons-white-space/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-white-space/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-white-space/LICENSE.txt b/packages/tachyons-white-space/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-white-space/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-white-space/code-of-conduct.md b/packages/tachyons-white-space/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-white-space/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-white-space/css/tachyons-white-space.css b/packages/tachyons-white-space/css/tachyons-white-space.css
new file mode 100644
index 000000000..dd013bc4a
--- /dev/null
+++ b/packages/tachyons-white-space/css/tachyons-white-space.css
@@ -0,0 +1,24 @@
+/*
+
+ WHITE SPACE
+
+*/
+.ws-normal { white-space: normal; }
+.nowrap { white-space: nowrap; }
+.pre { white-space: pre; }
+@media screen and (min-width: 30em) {
+ .ws-normal-ns { white-space: normal; }
+ .nowrap-ns { white-space: nowrap; }
+ .pre-ns { white-space: pre; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .ws-normal-m { white-space: normal; }
+ .nowrap-m { white-space: nowrap; }
+ .pre-m { white-space: pre; }
+}
+@media screen and (min-width: 60em) {
+ .ws-normal-l { white-space: normal; }
+ .nowrap-l { white-space: nowrap; }
+ .pre-l { white-space: pre; }
+}
+
diff --git a/packages/tachyons-white-space/css/tachyons-white-space.min.css b/packages/tachyons-white-space/css/tachyons-white-space.min.css
new file mode 100644
index 000000000..c98c9dab5
--- /dev/null
+++ b/packages/tachyons-white-space/css/tachyons-white-space.min.css
@@ -0,0 +1,2 @@
+.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}@media screen and (min-width:30em){.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}}@media screen and (min-width:30em) and (max-width:60em){.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}}@media screen and (min-width:60em){.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}}
+
diff --git a/packages/tachyons-white-space/package.json b/packages/tachyons-white-space/package.json
new file mode 100644
index 000000000..af9fc8113
--- /dev/null
+++ b/packages/tachyons-white-space/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-white-space",
+ "version": "4.0.0",
+ "style": "src/tachyons-white-space.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-white-space",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-white-space.css > css/tachyons-white-space.css",
+ "build:minify": "tachyons src/tachyons-white-space.css --minify > css/tachyons-white-space.min.css",
+ "build:docs": "tachyons src/tachyons-white-space.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "typography",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-white-space/readme.md b/packages/tachyons-white-space/readme.md
new file mode 100644
index 000000000..5a2c6fbcf
--- /dev/null
+++ b/packages/tachyons-white-space/readme.md
@@ -0,0 +1,118 @@
+# tachyons-white-space 4.0.0
+
+Performance based css module.
+
+#### Stats
+
+185 | 12 | 12
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-white-space
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-white-space
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-white-space.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-white-space";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ WHITE SPACE
+
+*/
+.ws-normal { white-space: normal; }
+.nowrap { white-space: nowrap; }
+.pre { white-space: pre; }
+@media screen and (min-width: 30em) {
+ .ws-normal-ns { white-space: normal; }
+ .nowrap-ns { white-space: nowrap; }
+ .pre-ns { white-space: pre; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .ws-normal-m { white-space: normal; }
+ .nowrap-m { white-space: nowrap; }
+ .pre-m { white-space: pre; }
+}
+@media screen and (min-width: 60em) {
+ .ws-normal-l { white-space: normal; }
+ .nowrap-l { white-space: nowrap; }
+ .pre-l { white-space: pre; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-white-space/src/tachyons-white-space.css b/packages/tachyons-white-space/src/tachyons-white-space.css
new file mode 100644
index 000000000..0841311df
--- /dev/null
+++ b/packages/tachyons-white-space/src/tachyons-white-space.css
@@ -0,0 +1,40 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ WHITE SPACE
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+
+.ws-normal { white-space: normal; }
+.nowrap { white-space: nowrap; }
+.pre { white-space: pre; }
+
+@media (--breakpoint-not-small) {
+ .ws-normal-ns { white-space: normal; }
+ .nowrap-ns { white-space: nowrap; }
+ .pre-ns { white-space: pre; }
+}
+
+@media (--breakpoint-medium) {
+ .ws-normal-m { white-space: normal; }
+ .nowrap-m { white-space: nowrap; }
+ .pre-m { white-space: pre; }
+}
+
+@media (--breakpoint-large) {
+ .ws-normal-l { white-space: normal; }
+ .nowrap-l { white-space: nowrap; }
+ .pre-l { white-space: pre; }
+}
+
diff --git a/packages/tachyons-widths/.gitignore b/packages/tachyons-widths/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-widths/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-widths/LICENSE.txt b/packages/tachyons-widths/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-widths/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-widths/build.js b/packages/tachyons-widths/build.js
new file mode 100644
index 000000000..fde66458d
--- /dev/null
+++ b/packages/tachyons-widths/build.js
@@ -0,0 +1,38 @@
+// dependencies
+
+var fs = require("fs")
+var autoprefixer = require("autoprefixer")
+var postcss = require("postcss")
+var atImport = require("postcss-import")
+var cssvariables = require('postcss-css-variables')
+var compressor = require('node-minify')
+var conditionals = require('postcss-conditionals')
+var customMedia = require("postcss-custom-media")
+
+// css to be processed
+var css = fs.readFileSync("src/tachyons-widths.css", "utf8")
+
+// process css
+var output = postcss([autoprefixer])
+ .use(atImport())
+ .use(cssvariables())
+ .use(conditionals())
+ .use(customMedia())
+ .process(css, {
+ from: "src/tachyons-widths.css",
+ to: "tachyons-widths.css"
+ })
+ .css
+
+fs.writeFile("tachyons-widths.css", output, 'utf-8')
+
+// Using YUI Compressor for CSS
+new compressor.minify({
+ type: 'sqwish',
+ fileIn: 'tachyons-widths.css',
+ fileOut: 'tachyons-widths.min.css',
+ callback: function(err, min){
+ //console.log('Sqwish');
+ //console.log(err);
+ }
+});
diff --git a/packages/tachyons-widths/code-of-conduct.md b/packages/tachyons-widths/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-widths/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-widths/css/tachyons-widths.css b/packages/tachyons-widths/css/tachyons-widths.css
new file mode 100644
index 000000000..9c0b0506d
--- /dev/null
+++ b/packages/tachyons-widths/css/tachyons-widths.css
@@ -0,0 +1,111 @@
+/*
+
+ WIDTHS
+
+ Base:
+ w = width
+
+ Modifiers
+ 1 = 1st step in width scale
+ 2 = 2nd step in width scale
+ 3 = 3rd step in width scale
+ 4 = 4th step in width scale
+ 5 = 5th step in width scale
+
+ -10 = literal value 10%
+ -20 = literal value 20%
+ -25 = literal value 25%
+ -33 = literal value 33%
+ -34 = literal value 34%
+ -40 = literal value 40%
+ -50 = literal value 50%
+ -60 = literal value 60%
+ -75 = literal value 75%
+ -80 = literal value 80%
+ -100 = literal value 100%
+
+ -auto = string value auto
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/* Width Scale */
+.w1 { width: 1rem; }
+.w2 { width: 2rem; }
+.w3 { width: 4rem; }
+.w4 { width: 8rem; }
+.w5 { width: 16rem; }
+.w-10 { width: 10%; }
+.w-20 { width: 20%; }
+.w-25 { width: 25%; }
+.w-33 { width: 33%; }
+.w-34 { width: 34%; }
+.w-40 { width: 40%; }
+.w-50 { width: 50%; }
+.w-60 { width: 60%; }
+.w-75 { width: 75%; }
+.w-80 { width: 80%; }
+.w-100 { width: 100%; }
+.w-auto { width: auto; }
+@media screen and (min-width: 30em) {
+ .w1-ns { width: 1rem; }
+ .w2-ns { width: 2rem; }
+ .w3-ns { width: 4rem; }
+ .w4-ns { width: 8rem; }
+ .w5-ns { width: 16rem; }
+ .w-10-ns { width: 10%; }
+ .w-20-ns { width: 20%; }
+ .w-25-ns { width: 25%; }
+ .w-33-ns { width: 33%; }
+ .w-34-ns { width: 34%; }
+ .w-40-ns { width: 40%; }
+ .w-50-ns { width: 50%; }
+ .w-60-ns { width: 60%; }
+ .w-75-ns { width: 75%; }
+ .w-80-ns { width: 80%; }
+ .w-100-ns { width: 100%; }
+ .w-auto-ns { width: auto; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .w1-m { width: 1rem; }
+ .w2-m { width: 2rem; }
+ .w3-m { width: 4rem; }
+ .w4-m { width: 8rem; }
+ .w5-m { width: 16rem; }
+ .w-10-m { width: 10%; }
+ .w-20-m { width: 20%; }
+ .w-25-m { width: 25%; }
+ .w-33-m { width: 33%; }
+ .w-34-m { width: 34%; }
+ .w-40-m { width: 40%; }
+ .w-50-m { width: 50%; }
+ .w-60-m { width: 60%; }
+ .w-75-m { width: 75%; }
+ .w-80-m { width: 80%; }
+ .w-100-m { width: 100%; }
+ .w-auto-m { width: auto; }
+}
+@media screen and (min-width: 60em) {
+ .w1-l { width: 1rem; }
+ .w2-l { width: 2rem; }
+ .w3-l { width: 4rem; }
+ .w4-l { width: 8rem; }
+ .w5-l { width: 16rem; }
+ .w-10-l { width: 10%; }
+ .w-20-l { width: 20%; }
+ .w-25-l { width: 25%; }
+ .w-33-l { width: 33%; }
+ .w-34-l { width: 34%; }
+ .w-40-l { width: 40%; }
+ .w-50-l { width: 50%; }
+ .w-60-l { width: 60%; }
+ .w-75-l { width: 75%; }
+ .w-80-l { width: 80%; }
+ .w-100-l { width: 100%; }
+ .w-auto-l { width: auto; }
+}
+
diff --git a/packages/tachyons-widths/css/tachyons-widths.min.css b/packages/tachyons-widths/css/tachyons-widths.min.css
new file mode 100644
index 000000000..58bc6c9ef
--- /dev/null
+++ b/packages/tachyons-widths/css/tachyons-widths.min.css
@@ -0,0 +1,2 @@
+.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-75{width:75%}.w-80{width:80%}.w-100{width:100%}.w-auto{width:auto}@media screen and (min-width:30em){.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-100-ns{width:100%}.w-auto-ns{width:auto}}@media screen and (min-width:30em) and (max-width:60em){.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-75-m{width:75%}.w-80-m{width:80%}.w-100-m{width:100%}.w-auto-m{width:auto}}@media screen and (min-width:60em){.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-75-l{width:75%}.w-80-l{width:80%}.w-100-l{width:100%}.w-auto-l{width:auto}}
+
diff --git a/packages/tachyons-widths/package.json b/packages/tachyons-widths/package.json
new file mode 100644
index 000000000..ba1f06af3
--- /dev/null
+++ b/packages/tachyons-widths/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "tachyons-widths",
+ "version": "5.0.0",
+ "style": "src/tachyons-widths.css",
+ "description": "Performance based css module.",
+ "keywords": [
+ "tachyons",
+ "tachyons-css"
+ ],
+ "files": [
+ "src",
+ "css"
+ ],
+ "repository": "tachyons-css/tachyons-widths",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-widths.css > css/tachyons-widths.css",
+ "build:minify": "tachyons src/tachyons-widths.css --minify > css/tachyons-widths.min.css",
+ "build:docs": "tachyons src/tachyons-widths.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ },
+ "metadata": {
+ "category": "layout",
+ "isCore": true
+ }
+}
diff --git a/packages/tachyons-widths/readme.md b/packages/tachyons-widths/readme.md
new file mode 100644
index 000000000..b2a6a1890
--- /dev/null
+++ b/packages/tachyons-widths/readme.md
@@ -0,0 +1,205 @@
+# tachyons-widths 5.0.0
+
+Performance based css module.
+
+#### Stats
+
+596 | 68 | 68
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-widths
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-widths
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-widths.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-widths";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ WIDTHS
+
+ Base:
+ w = width
+
+ Modifiers
+ 1 = 1st step in width scale
+ 2 = 2nd step in width scale
+ 3 = 3rd step in width scale
+ 4 = 4th step in width scale
+ 5 = 5th step in width scale
+
+ -10 = literal value 10%
+ -20 = literal value 20%
+ -25 = literal value 25%
+ -33 = literal value 33%
+ -34 = literal value 34%
+ -40 = literal value 40%
+ -50 = literal value 50%
+ -60 = literal value 60%
+ -75 = literal value 75%
+ -80 = literal value 80%
+ -100 = literal value 100%
+
+ -auto = string value auto
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/* Width Scale */
+.w1 { width: 1rem; }
+.w2 { width: 2rem; }
+.w3 { width: 4rem; }
+.w4 { width: 8rem; }
+.w5 { width: 16rem; }
+.w-10 { width: 10%; }
+.w-20 { width: 20%; }
+.w-25 { width: 25%; }
+.w-33 { width: 33%; }
+.w-34 { width: 34%; }
+.w-40 { width: 40%; }
+.w-50 { width: 50%; }
+.w-60 { width: 60%; }
+.w-75 { width: 75%; }
+.w-80 { width: 80%; }
+.w-100 { width: 100%; }
+.w-auto { width: auto; }
+@media screen and (min-width: 30em) {
+ .w1-ns { width: 1rem; }
+ .w2-ns { width: 2rem; }
+ .w3-ns { width: 4rem; }
+ .w4-ns { width: 8rem; }
+ .w5-ns { width: 16rem; }
+ .w-10-ns { width: 10%; }
+ .w-20-ns { width: 20%; }
+ .w-25-ns { width: 25%; }
+ .w-33-ns { width: 33%; }
+ .w-34-ns { width: 34%; }
+ .w-40-ns { width: 40%; }
+ .w-50-ns { width: 50%; }
+ .w-60-ns { width: 60%; }
+ .w-75-ns { width: 75%; }
+ .w-80-ns { width: 80%; }
+ .w-100-ns { width: 100%; }
+ .w-auto-ns { width: auto; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .w1-m { width: 1rem; }
+ .w2-m { width: 2rem; }
+ .w3-m { width: 4rem; }
+ .w4-m { width: 8rem; }
+ .w5-m { width: 16rem; }
+ .w-10-m { width: 10%; }
+ .w-20-m { width: 20%; }
+ .w-25-m { width: 25%; }
+ .w-33-m { width: 33%; }
+ .w-34-m { width: 34%; }
+ .w-40-m { width: 40%; }
+ .w-50-m { width: 50%; }
+ .w-60-m { width: 60%; }
+ .w-75-m { width: 75%; }
+ .w-80-m { width: 80%; }
+ .w-100-m { width: 100%; }
+ .w-auto-m { width: auto; }
+}
+@media screen and (min-width: 60em) {
+ .w1-l { width: 1rem; }
+ .w2-l { width: 2rem; }
+ .w3-l { width: 4rem; }
+ .w4-l { width: 8rem; }
+ .w5-l { width: 16rem; }
+ .w-10-l { width: 10%; }
+ .w-20-l { width: 20%; }
+ .w-25-l { width: 25%; }
+ .w-33-l { width: 33%; }
+ .w-34-l { width: 34%; }
+ .w-40-l { width: 40%; }
+ .w-50-l { width: 50%; }
+ .w-60-l { width: 60%; }
+ .w-75-l { width: 75%; }
+ .w-80-l { width: 80%; }
+ .w-100-l { width: 100%; }
+ .w-auto-l { width: auto; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-widths/src/tachyons-widths.css b/packages/tachyons-widths/src/tachyons-widths.css
new file mode 100644
index 000000000..62bf65713
--- /dev/null
+++ b/packages/tachyons-widths/src/tachyons-widths.css
@@ -0,0 +1,149 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ WIDTHS
+ Docs: http://tachyons.io/docs/layout/widths/
+
+ Base:
+ w = width
+
+ Modifiers
+ 1 = 1st step in width scale
+ 2 = 2nd step in width scale
+ 3 = 3rd step in width scale
+ 4 = 4th step in width scale
+ 5 = 5th step in width scale
+
+ -10 = literal value 10%
+ -20 = literal value 20%
+ -25 = literal value 25%
+ -30 = literal value 30%
+ -33 = literal value 33%
+ -34 = literal value 34%
+ -40 = literal value 40%
+ -50 = literal value 50%
+ -60 = literal value 60%
+ -70 = literal value 70%
+ -75 = literal value 75%
+ -80 = literal value 80%
+ -90 = literal value 90%
+ -100 = literal value 100%
+
+ -third = 100% / 3 (Not supported in opera mini or IE8)
+ -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8)
+ -auto = string value auto
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+/* Width Scale */
+
+.w1 { width: 1rem; }
+.w2 { width: 2rem; }
+.w3 { width: 4rem; }
+.w4 { width: 8rem; }
+.w5 { width: 16rem; }
+
+.w-10 { width: 10%; }
+.w-20 { width: 20%; }
+.w-25 { width: 25%; }
+.w-30 { width: 30%; }
+.w-33 { width: 33%; }
+.w-34 { width: 34%; }
+.w-40 { width: 40%; }
+.w-50 { width: 50%; }
+.w-60 { width: 60%; }
+.w-70 { width: 70%; }
+.w-75 { width: 75%; }
+.w-80 { width: 80%; }
+.w-90 { width: 90%; }
+.w-100 { width: 100%; }
+
+.w-third { width: calc(100% / 3); }
+.w-two-thirds { width: calc(100% / 1.5); }
+.w-auto { width: auto; }
+
+@media (--breakpoint-not-small) {
+ .w1-ns { width: 1rem; }
+ .w2-ns { width: 2rem; }
+ .w3-ns { width: 4rem; }
+ .w4-ns { width: 8rem; }
+ .w5-ns { width: 16rem; }
+ .w-10-ns { width: 10%; }
+ .w-20-ns { width: 20%; }
+ .w-25-ns { width: 25%; }
+ .w-30-ns { width: 30%; }
+ .w-33-ns { width: 33%; }
+ .w-34-ns { width: 34%; }
+ .w-40-ns { width: 40%; }
+ .w-50-ns { width: 50%; }
+ .w-60-ns { width: 60%; }
+ .w-70-ns { width: 70%; }
+ .w-75-ns { width: 75%; }
+ .w-80-ns { width: 80%; }
+ .w-90-ns { width: 90%; }
+ .w-100-ns { width: 100%; }
+ .w-third-ns { width: calc(100% / 3); }
+ .w-two-thirds-ns { width: calc(100% / 1.5); }
+ .w-auto-ns { width: auto; }
+}
+
+@media (--breakpoint-medium) {
+ .w1-m { width: 1rem; }
+ .w2-m { width: 2rem; }
+ .w3-m { width: 4rem; }
+ .w4-m { width: 8rem; }
+ .w5-m { width: 16rem; }
+ .w-10-m { width: 10%; }
+ .w-20-m { width: 20%; }
+ .w-25-m { width: 25%; }
+ .w-30-m { width: 30%; }
+ .w-33-m { width: 33%; }
+ .w-34-m { width: 34%; }
+ .w-40-m { width: 40%; }
+ .w-50-m { width: 50%; }
+ .w-60-m { width: 60%; }
+ .w-70-m { width: 70%; }
+ .w-75-m { width: 75%; }
+ .w-80-m { width: 80%; }
+ .w-90-m { width: 90%; }
+ .w-100-m { width: 100%; }
+ .w-third-m { width: calc(100% / 3); }
+ .w-two-thirds-m { width: calc(100% / 1.5); }
+ .w-auto-m { width: auto; }
+}
+
+@media (--breakpoint-large) {
+ .w1-l { width: 1rem; }
+ .w2-l { width: 2rem; }
+ .w3-l { width: 4rem; }
+ .w4-l { width: 8rem; }
+ .w5-l { width: 16rem; }
+ .w-10-l { width: 10%; }
+ .w-20-l { width: 20%; }
+ .w-25-l { width: 25%; }
+ .w-30-l { width: 30%; }
+ .w-33-l { width: 33%; }
+ .w-34-l { width: 34%; }
+ .w-40-l { width: 40%; }
+ .w-50-l { width: 50%; }
+ .w-60-l { width: 60%; }
+ .w-70-l { width: 70%; }
+ .w-75-l { width: 75%; }
+ .w-80-l { width: 80%; }
+ .w-90-l { width: 90%; }
+ .w-100-l { width: 100%; }
+ .w-third-l { width: calc(100% / 3); }
+ .w-two-thirds-l { width: calc(100% / 1.5); }
+ .w-auto-l { width: auto; }
+}
diff --git a/packages/tachyons-word-break/.gitignore b/packages/tachyons-word-break/.gitignore
new file mode 100644
index 000000000..36795eecf
--- /dev/null
+++ b/packages/tachyons-word-break/.gitignore
@@ -0,0 +1,59 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-word-break/LICENSE.txt b/packages/tachyons-word-break/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-word-break/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-word-break/code-of-conduct.md b/packages/tachyons-word-break/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-word-break/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-word-break/css/tachyons-word-break.css b/packages/tachyons-word-break/css/tachyons-word-break.css
new file mode 100644
index 000000000..07e5c21b1
--- /dev/null
+++ b/packages/tachyons-word-break/css/tachyons-word-break.css
@@ -0,0 +1,24 @@
+/*
+
+ WORD BREAK
+
+*/
+.word-normal { word-break: normal; }
+.word-wrap { word-break: break-all; }
+.word-nowrap { word-break: keep-all; }
+@media screen and (min-width: 30em) {
+ .word-normal-ns { word-break: normal; }
+ .word-wrap-ns { word-break: break-all; }
+ .word-nowrap-ns { word-break: keep-all; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .word-normal-m { word-break: normal; }
+ .word-wrap-m { word-break: break-all; }
+ .word-nowrap-m { word-break: keep-all; }
+}
+@media screen and (min-width: 60em) {
+ .word-normal-l { word-break: normal; }
+ .word-wrap-l { word-break: break-all; }
+ .word-nowrap-l { word-break: keep-all; }
+}
+
diff --git a/packages/tachyons-word-break/css/tachyons-word-break.min.css b/packages/tachyons-word-break/css/tachyons-word-break.min.css
new file mode 100644
index 000000000..c06683fdd
--- /dev/null
+++ b/packages/tachyons-word-break/css/tachyons-word-break.min.css
@@ -0,0 +1,2 @@
+.word-normal{word-break:normal}.word-wrap{word-break:break-all}.word-nowrap{word-break:keep-all}@media screen and (min-width:30em){.word-normal-ns{word-break:normal}.word-wrap-ns{word-break:break-all}.word-nowrap-ns{word-break:keep-all}}@media screen and (min-width:30em) and (max-width:60em){.word-normal-m{word-break:normal}.word-wrap-m{word-break:break-all}.word-nowrap-m{word-break:keep-all}}@media screen and (min-width:60em){.word-normal-l{word-break:normal}.word-wrap-l{word-break:break-all}.word-nowrap-l{word-break:keep-all}}
+
diff --git a/packages/tachyons-word-break/package.json b/packages/tachyons-word-break/package.json
new file mode 100644
index 000000000..ed6d407a9
--- /dev/null
+++ b/packages/tachyons-word-break/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "tachyons-word-break",
+ "description": "Tachyons CSS module of utilities for setting word-break",
+ "version": "3.0.0",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-word-break.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "postcss",
+ "base"
+ ],
+ "repository": "tachyons-css/tachyons-word-break",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-word-break.css > css/tachyons-word-break.css",
+ "build:minify": "tachyons src/tachyons-word-break.css --minify > css/tachyons-word-break.min.css",
+ "build:docs": "tachyons src/tachyons-word-break.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-word-break/readme.md b/packages/tachyons-word-break/readme.md
new file mode 100644
index 000000000..fc4b648db
--- /dev/null
+++ b/packages/tachyons-word-break/readme.md
@@ -0,0 +1,118 @@
+# tachyons-word-break 3.0.0
+
+Tachyons CSS module of utilities for setting word-break
+
+#### Stats
+
+187 | 12 | 12
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-word-break
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-word-break
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-word-break.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-word-break";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ WORD BREAK
+
+*/
+.word-normal { word-break: normal; }
+.word-wrap { word-break: break-all; }
+.word-nowrap { word-break: keep-all; }
+@media screen and (min-width: 30em) {
+ .word-normal-ns { word-break: normal; }
+ .word-wrap-ns { word-break: break-all; }
+ .word-nowrap-ns { word-break: keep-all; }
+}
+@media screen and (min-width: 30em) and (max-width: 60em) {
+ .word-normal-m { word-break: normal; }
+ .word-wrap-m { word-break: break-all; }
+ .word-nowrap-m { word-break: keep-all; }
+}
+@media screen and (min-width: 60em) {
+ .word-normal-l { word-break: normal; }
+ .word-wrap-l { word-break: break-all; }
+ .word-nowrap-l { word-break: keep-all; }
+}
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-word-break/src/tachyons-word-break.css b/packages/tachyons-word-break/src/tachyons-word-break.css
new file mode 100644
index 000000000..db06660b5
--- /dev/null
+++ b/packages/tachyons-word-break/src/tachyons-word-break.css
@@ -0,0 +1,42 @@
+
+
+
+@custom-media --breakpoint-not-small screen and (min-width: 30em);
+@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em);
+@custom-media --breakpoint-large screen and (min-width: 60em);
+/*
+
+ WORD BREAK
+
+ Base:
+ word = word-break
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+.word-normal { word-break: normal; }
+.word-wrap { word-break: break-all; }
+.word-nowrap { word-break: keep-all; }
+
+@media (--breakpoint-not-small) {
+ .word-normal-ns { word-break: normal; }
+ .word-wrap-ns { word-break: break-all; }
+ .word-nowrap-ns { word-break: keep-all; }
+}
+
+@media (--breakpoint-medium) {
+ .word-normal-m { word-break: normal; }
+ .word-wrap-m { word-break: break-all; }
+ .word-nowrap-m { word-break: keep-all; }
+}
+
+@media (--breakpoint-large) {
+ .word-normal-l { word-break: normal; }
+ .word-wrap-l { word-break: break-all; }
+ .word-nowrap-l { word-break: keep-all; }
+}
+
diff --git a/packages/tachyons-z-index/.gitignore b/packages/tachyons-z-index/.gitignore
new file mode 100644
index 000000000..28ae0d16a
--- /dev/null
+++ b/packages/tachyons-z-index/.gitignore
@@ -0,0 +1,30 @@
+# List of files for git to ignore
+
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Vim
+Session.vim
+
+# Node
+node_modules/*
+npm-debug.log
diff --git a/packages/tachyons-z-index/LICENSE.txt b/packages/tachyons-z-index/LICENSE.txt
new file mode 100644
index 000000000..e43105858
--- /dev/null
+++ b/packages/tachyons-z-index/LICENSE.txt
@@ -0,0 +1,14 @@
+ISC License (ISC)
+Copyright (c) 2016, Adam Morse
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/packages/tachyons-z-index/code-of-conduct.md b/packages/tachyons-z-index/code-of-conduct.md
new file mode 100644
index 000000000..b354f8218
--- /dev/null
+++ b/packages/tachyons-z-index/code-of-conduct.md
@@ -0,0 +1,68 @@
+# Contributor Code of Conduct
+
+### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
+
+### Our Standards
+
+#### Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+#### Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
+
+### Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at hi@mrmrs.cc. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an
+incident. Further details of specific enforcement policies may be posted
+separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+### Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4
+
diff --git a/packages/tachyons-z-index/css/tachyons-z-index.css b/packages/tachyons-z-index/css/tachyons-z-index.css
new file mode 100644
index 000000000..b24ac17eb
--- /dev/null
+++ b/packages/tachyons-z-index/css/tachyons-z-index.css
@@ -0,0 +1,29 @@
+/*
+
+ Tachyons
+ z-index
+
+ DOCUMENTATION
+
+ MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index
+ Spec: http://www.w3.org/TR/CSS2/zindex.html
+
+ Tips on extending:
+ There might be a time worth using negative z-index values.
+ Or if you are using tachyons with another project, you might need to
+ adjust these values to suit your needs.
+
+*/
+.z-0 { z-index: 0; }
+.z-1 { z-index: 1; }
+.z-2 { z-index: 2; }
+.z-3 { z-index: 3; }
+.z-4 { z-index: 4; }
+.z-5 { z-index: 5; }
+.z-999 { z-index: 999; }
+.z-9999 { z-index: 9999; }
+.z-max { z-index: 2147483647; }
+.z-inherit { z-index: inherit; }
+.z-initial { z-index: initial; }
+.z-unset { z-index: unset; }
+
diff --git a/packages/tachyons-z-index/css/tachyons-z-index.min.css b/packages/tachyons-z-index/css/tachyons-z-index.min.css
new file mode 100644
index 000000000..31f45d368
--- /dev/null
+++ b/packages/tachyons-z-index/css/tachyons-z-index.min.css
@@ -0,0 +1,2 @@
+.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:6}.z-9999{z-index:7}.z-max{z-index:8}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}
+
diff --git a/packages/tachyons-z-index/package.json b/packages/tachyons-z-index/package.json
new file mode 100644
index 000000000..e78beabab
--- /dev/null
+++ b/packages/tachyons-z-index/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "tachyons-z-index",
+ "description": "Tachyons css module for setting z-index on elements",
+ "version": "1.0.3",
+ "author": {
+ "name": "mrmrs",
+ "email": "hi@mrmrs.cc",
+ "url": "http://mrmrs.cc"
+ },
+ "style": "src/tachyons-z-index.css",
+ "files": [
+ "src",
+ "css"
+ ],
+ "keywords": [
+ "tachyons",
+ "tachyons-css",
+ "css",
+ "stacking",
+ "z-index"
+ ],
+ "repository": "tachyons-css/tachyons-z-index",
+ "license": "ISC",
+ "devDependencies": {
+ "tachyons-cli": "^1.0.2",
+ "watch": "^0.19.1"
+ },
+ "scripts": {
+ "start": "npm run build:watch",
+ "build:css": "tachyons src/tachyons-z-index.css > css/tachyons-z-index.css",
+ "build:minify": "tachyons src/tachyons-z-index.css --minify > css/tachyons-z-index.min.css",
+ "build:docs": "tachyons src/tachyons-z-index.css --generate-docs --package=../../package.json > readme.md",
+ "build": "npm run build:css && npm run build:minify && npm run build:docs",
+ "build:watch": "watch 'npm run build' ./src"
+ }
+}
diff --git a/packages/tachyons-z-index/readme.md b/packages/tachyons-z-index/readme.md
new file mode 100644
index 000000000..c47d2e9b4
--- /dev/null
+++ b/packages/tachyons-z-index/readme.md
@@ -0,0 +1,123 @@
+# tachyons-z-index 1.0.3
+
+Tachyons css module for setting z-index on elements
+
+#### Stats
+
+349 | 12 | 12
+---|---|---
+bytes | selectors | declarations
+
+## Installation
+
+#### With [npm](https://npmjs.com)
+
+```
+npm install --save-dev tachyons-z-index
+```
+
+Learn more about using css installed with npm:
+* https://webpack.github.io/docs/stylesheets.html
+* https://github.com/defunctzombie/npm-css
+
+#### With Git
+
+http:
+```
+git clone https://github.com/tachyons-css/tachyons-z-index
+```
+
+ssh:
+```
+git clone git@github.com:tachyons-css/tachyons-z-index.git
+```
+
+## Usage
+
+#### Using with [PostCSS](https://github.com/postcss/postcss)
+
+Import the css module
+
+```css
+@import "tachyons-z-index";
+```
+
+Then process the CSS using the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
+
+```sh
+$ npm i -g tachyons-cli
+$ tachyons path/to/css-file.css > dist/t.css
+```
+
+#### Using the CSS
+
+##### CDN
+The easiest and most simple way to use the css is to use the cdn hosted version. Include it in the head of your html with:
+
+```
+
+```
+
+##### Locally
+The built CSS is located in the `css` directory. It contains an unminified and minified version.
+You can either cut and paste that css or link to it directly in your html.
+
+```html
+
+```
+
+#### Development
+
+The source CSS files can be found in the `src` directory.
+Running `$ npm start` will process the source CSS and place the built CSS in the `css` directory.
+
+## The CSS
+
+```css
+/*
+
+ Tachyons
+ z-index
+
+ DOCUMENTATION
+
+ MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index
+ Spec: http://www.w3.org/TR/CSS2/zindex.html
+
+ Tips on extending:
+ There might be a time worth using negative z-index values.
+ Or if you are using tachyons with another project, you might need to
+ adjust these values to suit your needs.
+
+*/
+.z-0 { z-index: 0; }
+.z-1 { z-index: 1; }
+.z-2 { z-index: 2; }
+.z-3 { z-index: 3; }
+.z-4 { z-index: 4; }
+.z-5 { z-index: 5; }
+.z-999 { z-index: 999; }
+.z-9999 { z-index: 9999; }
+.z-max { z-index: 2147483647; }
+.z-inherit { z-index: inherit; }
+.z-initial { z-index: initial; }
+.z-unset { z-index: unset; }
+```
+
+## Contributing
+
+1. Fork it
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+## Authors
+
+* [mrmrs](http://mrmrs.io)
+* [johno](http://johnotander.com)
+
+## License
+
+ISC
+
diff --git a/packages/tachyons-z-index/src/tachyons-z-index.css b/packages/tachyons-z-index/src/tachyons-z-index.css
new file mode 100644
index 000000000..9f4d863f7
--- /dev/null
+++ b/packages/tachyons-z-index/src/tachyons-z-index.css
@@ -0,0 +1,53 @@
+/*
+
+ Z-INDEX
+
+ Base
+ z = z-index
+
+ Modifiers
+ -0 = literal value 0
+ -1 = literal value 1
+ -2 = literal value 2
+ -3 = literal value 3
+ -4 = literal value 4
+ -5 = literal value 5
+ -999 = literal value 999
+ -9999 = literal value 9999
+
+ -max = largest accepted z-index value as integer
+
+ -inherit = string value inherit
+ -initial = string value initial
+ -unset = string value unset
+
+ MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index
+ Spec: http://www.w3.org/TR/CSS2/zindex.html
+ Articles:
+ https://philipwalton.com/articles/what-no-one-told-you-about-z-index/
+
+ Tips on extending:
+ There might be a time worth using negative z-index values.
+ Or if you are using tachyons with another project, you might need to
+ adjust these values to suit your needs.
+
+*/
+
+.z-0 { z-index: 0; }
+.z-1 { z-index: 1; }
+.z-2 { z-index: 2; }
+.z-3 { z-index: 3; }
+.z-4 { z-index: 4; }
+.z-5 { z-index: 5; }
+
+.z-999 { z-index: 999; }
+.z-9999 { z-index: 9999; }
+
+.z-max {
+ z-index: 2147483647;
+}
+
+.z-inherit { z-index: inherit; }
+.z-initial { z-index: initial; }
+.z-unset { z-index: unset; }
+
diff --git a/readme.md b/readme.md
index de6d1f361..6b5859bf7 100644
--- a/readme.md
+++ b/readme.md
@@ -8,35 +8,46 @@ Quickly build and design new UI without writing css.
* Everything should be 100% responsive
* Everything should be readable on any device
-* Everything should be as performant as possible
+* Everything should be as fast as possible
* Designing in the browser should be easy
* It should be easy to change any interface or part of an interface without breaking any existing interfaces
* Doing one thing extremely well promotes reusability and reduces repetition
-* css is global. HTML is not. Send the smallest amount of code to the user as possible.
+* Documentation helps promote reusability and shared knowledge
+* Css shouldn't impede accessibility or the default functionality of Html
+* You should send the smallest possible amount of code to the user
## Features
-* Mobile-first css
+* Mobile-first css architecture
+* 490 accessible color combinations
+* 8px baseline grid
+* Multiple debugging utilities to reduce layout struggles
* Single-purpose class structure
* Optimized for maximum gzip compression
-* 7.2kB when minified and gzipped
+* Lightweight (~14kB)
* Usable across projects
+* Growing open source component library
+* Works well with plain html, react, ember, angular, rails, and more
* Infinitely nestable responsive grid system
* Built with Postcss
## Getting started
Docs can be found at http://tachyons.io/docs
-The modules are generally pretty small and thus easy to read and grock if you're familiar with css at all.
+The modules are generally pretty small and thus quick and easy to read.
### Use the CDN
The quickest and easiest way to start using tachyons is to include a reference
to the minified file in the head of your html file.
-Currently the latest version is 4.1.2
+You can always grab the latest version with
```html
-
+
+```
+You can also specify a specific version. The latest version is 4.6.1
+```html
+
```
### Local Setup
@@ -49,98 +60,115 @@ cd tachyons
npm install
```
-#### Build
-
-##### First time
-
-Tachyons is available as a series of small self contained css modules. They aren't dependent on eachother but
-are designed to play well together. But tachyons is also just css. And you should feel free to edit css
-that is in your project. The first time you build tachyons all of the css gets installed via npm, but the modules
-then get copied over to your local src directory and then the [`tachyons-cli`](https://github.com/tachyons-css/tachyons-cli)
-uses a series of postcss plugins to compile the source down to vanilla css.
-
-##### Updating
-
-If you want to update a tachyons partial, install the desired module version via npm and run the build command again. Note
-this will copy over all source files, so if you've modified src/ your changes might will be overwritten but you can use version control (like git!) to undo these changes.
-
-```npm run build```
-
#### Dev
-If you want to just use src as a jumping off point and edit all the code yourself, you can compile all of your wonderful changes by running
+If you want to just use everything in tachyons/src as a jumping off point and
+edit all the code yourself, you can compile all of your wonderful changes by
+running
```npm start```
-This will output both minified and unminified versions of the css to the css directory.
-
-If you want to recompile everything from src everytime you save a change - you can run the following command, which will compile and minify the css
+This will output both minified and unminified versions of the css to the css directory and watch the src directory for changes.
+It's aliased to the command:
```npm run build:watch```
+If you'd like to just build the css once without watching the src directory run
+
+```npm run build```
+
If you want to check that a class hasn't been redefined or 'mutated' there is a linter to check that all of the classes have only been defined once. This can be useful if you are using another library or have written some of your own css and want to make sure there are no naming collisions. To do this run the command
```npm run mutations```
-## Contributing
+## Docs
+The tachyons docs located at http://tachyons.io are all open source and located at https://github.com/tachyons-css/tachyons-css.github.io
+
+You can clone the docs and use them as a template for documenting your own design system / patterns / components.
+While not everything is automated, the component library generation makes it extremely easy to
+generate and organize the documentation for components as demonstrated at http://tachyons.io/components
+
-If you want to make a PR to change part of the css source for tachyons, make sure you make the PR on the corresponding module
-that can be found in the [tachyons org](http://github.com/tachyons-css/). Those modules get copied into the main repo so
-any changes you make to the css in this repo would get overridden.
+## Contributing
-Also please read our [code of conduct](https://github.com/tachyons-css/tachyons/blob/master/code-of-conduct.md) for contributors.
+Please read our [code of conduct](https://github.com/tachyons-css/tachyons/blob/master/code-of-conduct.md) for contributors.
## Websites that Use Tachyons
(if you have a project that uses Tachyons feel free to make a PR to add it to this list)
+* https://nicenice.co
+* https://coralproject.net
* https://goldenstaterecord.com
+* http://www.sogol.co
+* https://segment.com
+* http://hicuties.com
+* https://urlbox.io
+* https://community.algolia.com/wordpress/
+* http://studiocraft.cc
+* http://samueldregan.com
+* https://filmstrip.cf
+* https://voteplz.com
* http://bluebottlecoffee.com
-* http://aboutlife.com
-* http://joinoneroom.com
+* http://cyclelove.cc
+* http://topher.design
+* http://iheanyi.com/
+* http://johnotander.com
* https://vimgifs.com
* http://jon.gold/txt
* http://rene.jon.gold
* https://tinychime.github.io/jekyons/
-* http://mrmrs.io/up
* http://prnt.cc
* http://spenhar.com
* http://randoma11y.com
-* http://cyclelove.cc
* http://www.csspurge.com
* http://clrs.cc
-* http://mrmrs.io/gradients
+* https://cljsjs.github.io
* https://www.getnoodl.es
* https://natwelch.com
-* http://mrmrs.io/profile/
-* http://mn-ml.cc
* http://pesticide.io
-* http://mrmrs.io/btns/
* http://zachhurd.com
-* http://mrmrs.cc
* http://gfffs.com
-* http://mrmrs.io/beats/
-* http://mrmrs.io/writing
-* http://fade.pics
* https://wordpress.org/themes/vanilla-milkshake/
* http://comics.hongkonggong.com/
* https://accessmyinfo.hk/#/
* https://accessmyinfo.org/#/
* http://rene.jon.gold
-* http://johnotander.com
* http://randoma11y.com
* http://designbytyping.com
* http://colepeters.com
* https://atmin.github.io/funponent/
* http://blog.colepeters.com
+* http://aboutlife.com
+* http://joinoneroom.com
+* http://filipaonunes.com
+* https://vakra.band
+* http://tylernford.com
+* https://adventuretron.org
+* https://uptimeumbrella.com
+* http://www.talbs.me
+* http://seanoshea.me
+* https://www.hiaida.com
+* http://maxogden.github.io/screencat/
+* http://numenta.com
+* https://windtoday.co
+* http://claudio.netlify.com
+* http://devday-ar.com
+* http://mrmrs.io/mnml
+* http://mrmrs.io/up
+* http://mrmrs.io/profile/
+* http://mrmrs.io/gradients
+* http://mrmrs.io/btns/
+* http://mrmrs.io/beats/
+* http://mrmrs.io/writing
+* http://mrmrs.cc
+* https://fontawesome.com
And of course...
* http://tachyons.io
-
-
## Help
-If you have a question feel free to open an issue here or jump into the [Tachyons slack channel](http://tachyons-slack-invite.herokuapp.com).
+If you have a question or need help feel free to open an issue here or jump into the [Tachyons slack channel](http://tachyons-slack-invite.herokuapp.com).
## License
diff --git a/src/_aspect-ratios.css b/src/_aspect-ratios.css
new file mode 100644
index 000000000..1ee67e1d9
--- /dev/null
+++ b/src/_aspect-ratios.css
@@ -0,0 +1,135 @@
+/*
+
+ ASPECT RATIOS
+
+*/
+
+/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
+ * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
+ * Make sure there are no height and width attributes on the embedded media.
+ * Adapted from: https://github.com/suitcss/components-flex-embed
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ *
+ * */
+
+.aspect-ratio {
+ height: 0;
+ position: relative;
+}
+
+.aspect-ratio--16x9 { padding-bottom: 56.25%; }
+.aspect-ratio--9x16 { padding-bottom: 177.77%; }
+
+.aspect-ratio--4x3 { padding-bottom: 75%; }
+.aspect-ratio--3x4 { padding-bottom: 133.33%; }
+
+.aspect-ratio--6x4 { padding-bottom: 66.6%; }
+.aspect-ratio--4x6 { padding-bottom: 150%; }
+
+.aspect-ratio--8x5 { padding-bottom: 62.5%; }
+.aspect-ratio--5x8 { padding-bottom: 160%; }
+
+.aspect-ratio--7x5 { padding-bottom: 71.42%; }
+.aspect-ratio--5x7 { padding-bottom: 140%; }
+
+.aspect-ratio--1x1 { padding-bottom: 100%; }
+
+.aspect-ratio--object {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+}
+
+@media (--breakpoint-not-small){
+ .aspect-ratio-ns {
+ height: 0;
+ position: relative;
+ }
+ .aspect-ratio--16x9-ns { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-ns { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-ns { padding-bottom: 75%; }
+ .aspect-ratio--3x4-ns { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-ns { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-ns { padding-bottom: 150%; }
+ .aspect-ratio--8x5-ns { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-ns { padding-bottom: 160%; }
+ .aspect-ratio--7x5-ns { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-ns { padding-bottom: 140%; }
+ .aspect-ratio--1x1-ns { padding-bottom: 100%; }
+ .aspect-ratio--object-ns {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ }
+}
+
+@media (--breakpoint-medium){
+ .aspect-ratio-m {
+ height: 0;
+ position: relative;
+ }
+ .aspect-ratio--16x9-m { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-m { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-m { padding-bottom: 75%; }
+ .aspect-ratio--3x4-m { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-m { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-m { padding-bottom: 150%; }
+ .aspect-ratio--8x5-m { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-m { padding-bottom: 160%; }
+ .aspect-ratio--7x5-m { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-m { padding-bottom: 140%; }
+ .aspect-ratio--1x1-m { padding-bottom: 100%; }
+ .aspect-ratio--object-m {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ }
+}
+
+@media (--breakpoint-large){
+ .aspect-ratio-l {
+ height: 0;
+ position: relative;
+ }
+ .aspect-ratio--16x9-l { padding-bottom: 56.25%; }
+ .aspect-ratio--9x16-l { padding-bottom: 177.77%; }
+ .aspect-ratio--4x3-l { padding-bottom: 75%; }
+ .aspect-ratio--3x4-l { padding-bottom: 133.33%; }
+ .aspect-ratio--6x4-l { padding-bottom: 66.6%; }
+ .aspect-ratio--4x6-l { padding-bottom: 150%; }
+ .aspect-ratio--8x5-l { padding-bottom: 62.5%; }
+ .aspect-ratio--5x8-l { padding-bottom: 160%; }
+ .aspect-ratio--7x5-l { padding-bottom: 71.42%; }
+ .aspect-ratio--5x7-l { padding-bottom: 140%; }
+ .aspect-ratio--1x1-l { padding-bottom: 100%; }
+ .aspect-ratio--object-l {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ }
+}
diff --git a/src/_background-position.css b/src/_background-position.css
new file mode 100644
index 000000000..4d850b6a5
--- /dev/null
+++ b/src/_background-position.css
@@ -0,0 +1,126 @@
+/*
+
+ BACKGROUND POSITION
+
+ Base:
+ bg = background
+
+ Modifiers:
+ -center = center center
+ -top = top center
+ -right = center right
+ -bottom = bottom center
+ -left = center left
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+
+.bg-center {
+ background-repeat: no-repeat;
+ background-position: center center;
+}
+
+.bg-top {
+ background-repeat: no-repeat;
+ background-position: top center;
+}
+
+.bg-right {
+ background-repeat: no-repeat;
+ background-position: center right;
+}
+
+.bg-bottom {
+ background-repeat: no-repeat;
+ background-position: bottom center;
+}
+
+.bg-left {
+ background-repeat: no-repeat;
+ background-position: center left;
+}
+
+@media (--breakpoint-not-small) {
+ .bg-center-ns {
+ background-repeat: no-repeat;
+ background-position: center center;
+ }
+
+ .bg-top-ns {
+ background-repeat: no-repeat;
+ background-position: top center;
+ }
+
+ .bg-right-ns {
+ background-repeat: no-repeat;
+ background-position: center right;
+ }
+
+ .bg-bottom-ns {
+ background-repeat: no-repeat;
+ background-position: bottom center;
+ }
+
+ .bg-left-ns {
+ background-repeat: no-repeat;
+ background-position: center left;
+ }
+}
+
+@media (--breakpoint-medium) {
+ .bg-center-m {
+ background-repeat: no-repeat;
+ background-position: center center;
+ }
+
+ .bg-top-m {
+ background-repeat: no-repeat;
+ background-position: top center;
+ }
+
+ .bg-right-m {
+ background-repeat: no-repeat;
+ background-position: center right;
+ }
+
+ .bg-bottom-m {
+ background-repeat: no-repeat;
+ background-position: bottom center;
+ }
+
+ .bg-left-m {
+ background-repeat: no-repeat;
+ background-position: center left;
+ }
+}
+
+@media (--breakpoint-large) {
+ .bg-center-l {
+ background-repeat: no-repeat;
+ background-position: center center;
+ }
+
+ .bg-top-l {
+ background-repeat: no-repeat;
+ background-position: top center;
+ }
+
+ .bg-right-l {
+ background-repeat: no-repeat;
+ background-position: center right;
+ }
+
+ .bg-bottom-l {
+ background-repeat: no-repeat;
+ background-position: bottom center;
+ }
+
+ .bg-left-l {
+ background-repeat: no-repeat;
+ background-position: center left;
+ }
+}
diff --git a/src/_background-size.css b/src/_background-size.css
index 827abbca8..18afe5c7c 100644
--- a/src/_background-size.css
+++ b/src/_background-size.css
@@ -1,6 +1,7 @@
/*
BACKGROUND SIZE
+ Docs: http://tachyons.io/docs/themes/background-size/
Media Query Extensions:
-ns = not-small
@@ -14,20 +15,20 @@
on an html element.
*/
- .cover { background-size: cover; }
- .contain { background-size: contain; }
+ .cover { background-size: cover!important; }
+ .contain { background-size: contain!important; }
@media (--breakpoint-not-small) {
- .cover-ns { background-size: cover; }
- .contain-ns { background-size: contain; }
+ .cover-ns { background-size: cover!important; }
+ .contain-ns { background-size: contain!important; }
}
@media (--breakpoint-medium) {
- .cover-m { background-size: cover; }
- .contain-m { background-size: contain; }
+ .cover-m { background-size: cover!important; }
+ .contain-m { background-size: contain!important; }
}
@media (--breakpoint-large) {
- .cover-l { background-size: cover; }
- .contain-l { background-size: contain; }
+ .cover-l { background-size: cover!important; }
+ .contain-l { background-size: contain!important; }
}
diff --git a/src/_border-colors.css b/src/_border-colors.css
index 3b7c0ff7a..99fccc42d 100644
--- a/src/_border-colors.css
+++ b/src/_border-colors.css
@@ -1,6 +1,7 @@
/*
BORDER COLORS
+ Docs: http://tachyons.io/docs/themes/borders/
Border colors can be used to extend the base
border classes ba,bt,bb,br,bl found in the _borders.css file.
@@ -9,7 +10,11 @@
to that of the current text color. These classes are for the cases
where you desire for the text and border colors to be different.
- b = border
+ Base:
+ b = border
+
+ Modifiers:
+ --color-name = each color variable name is also a border color name
*/
@@ -20,6 +25,7 @@
.b--gray { border-color: var(--gray); }
.b--silver { border-color: var(--silver); }
.b--light-silver { border-color: var(--light-silver); }
+.b--moon-gray { border-color: var(--moon-gray); }
.b--light-gray { border-color: var(--light-gray); }
.b--near-white { border-color: var(--near-white); }
.b--white { border-color: var(--white); }
@@ -50,28 +56,31 @@
.b--black-025 { border-color: var(--black-025); }
.b--black-0125 { border-color: var(--black-0125); }
-.b--dark-red { border-color: var(--dark-red); }
-.b--red { border-color: var(--red); }
-.b--orange { border-color: var(--orange); }
-.b--gold { border-color: var(--gold); }
-.b--yellow { border-color: var(--yellow); }
-.b--purple { border-color: var(--purple); }
-.b--light-purple { border-color: var(--light-purple); }
-.b--hot-pink { border-color: var(--hot-pink); }
-.b--dark-pink { border-color: var(--dark-pink); }
-.b--pink { border-color: var(--pink); }
-.b--dark-green { border-color: var(--dark-green); }
-.b--green { border-color: var(--green); }
-.b--navy { border-color: var(--navy); }
-.b--dark-blue { border-color: var(--dark-blue); }
-.b--blue { border-color: var(--blue); }
-.b--light-blue { border-color: var(--light-blue); }
-.b--lightest-blue { border-color: var(--lightest-blue); }
-.b--washed-blue { border-color: var(--washed-blue); }
-.b--washed-green { border-color: var(--washed-green); }
-.b--washed-yellow { border-color: var(--washed-yellow); }
-.b--light-pink { border-color: var(--light-pink); }
-.b--light-yellow { border-color: var(--light-yellow) }
-.b--light-red { border-color: var(--light-red); }
+.b--dark-red { border-color: var(--dark-red); }
+.b--red { border-color: var(--red); }
+.b--light-red { border-color: var(--light-red); }
+.b--orange { border-color: var(--orange); }
+.b--gold { border-color: var(--gold); }
+.b--yellow { border-color: var(--yellow); }
+.b--light-yellow { border-color: var(--light-yellow); }
+.b--purple { border-color: var(--purple); }
+.b--light-purple { border-color: var(--light-purple); }
+.b--dark-pink { border-color: var(--dark-pink); }
+.b--hot-pink { border-color: var(--hot-pink); }
+.b--pink { border-color: var(--pink); }
+.b--light-pink { border-color: var(--light-pink); }
+.b--dark-green { border-color: var(--dark-green); }
+.b--green { border-color: var(--green); }
+.b--light-green { border-color: var(--light-green); }
+.b--navy { border-color: var(--navy); }
+.b--dark-blue { border-color: var(--dark-blue); }
+.b--blue { border-color: var(--blue); }
+.b--light-blue { border-color: var(--light-blue); }
+.b--lightest-blue { border-color: var(--lightest-blue); }
+.b--washed-blue { border-color: var(--washed-blue); }
+.b--washed-green { border-color: var(--washed-green); }
+.b--washed-yellow { border-color: var(--washed-yellow); }
+.b--washed-red { border-color: var(--washed-red); }
.b--transparent { border-color: var(--transparent); }
+.b--inherit { border-color: inherit; }
diff --git a/src/_border-radius.css b/src/_border-radius.css
index 02f0a3dbe..a7b2966e3 100644
--- a/src/_border-radius.css
+++ b/src/_border-radius.css
@@ -1,6 +1,7 @@
/*
BORDER RADIUS
+ Docs: http://tachyons.io/docs/themes/border-radius/
Base:
br = border-radius
@@ -108,8 +109,8 @@
.br-100-l { border-radius: 100%; }
.br-pill-l { border-radius: 9999px; }
.br--bottom-l {
- border-radius-top-left: 0;
- border-radius-top-right: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
}
.br--top-l {
border-bottom-left-radius: 0;
diff --git a/src/_border-style.css b/src/_border-style.css
index 46c2517e4..b9eb61b3d 100644
--- a/src/_border-style.css
+++ b/src/_border-style.css
@@ -1,6 +1,7 @@
/*
BORDER STYLES
+ Docs: http://tachyons.io/docs/themes/borders/
Depends on base border module in _borders.css
diff --git a/src/_border-widths.css b/src/_border-widths.css
index 1a95091e5..e3b6885d0 100644
--- a/src/_border-widths.css
+++ b/src/_border-widths.css
@@ -1,6 +1,7 @@
/*
BORDER WIDTHS
+ Docs: http://tachyons.io/docs/themes/borders/
Base:
bw = border-width
diff --git a/src/_borders.css b/src/_borders.css
index 940f1570e..ce49e4292 100644
--- a/src/_borders.css
+++ b/src/_borders.css
@@ -1,6 +1,7 @@
/*
BORDERS
+ Docs: http://tachyons.io/docs/themes/borders/
Base:
b = border
diff --git a/src/_box-shadow.css b/src/_box-shadow.css
index 97310a8bb..e744bc745 100644
--- a/src/_box-shadow.css
+++ b/src/_box-shadow.css
@@ -1,6 +1,7 @@
/*
BOX-SHADOW
+ Docs: http://tachyons.io/docs/themes/box-shadow/
Media Query Extensions:
-ns = not-small
diff --git a/src/_box-sizing.css b/src/_box-sizing.css
index b21940317..7742de028 100644
--- a/src/_box-sizing.css
+++ b/src/_box-sizing.css
@@ -1,5 +1,7 @@
/*
- Box Sizing
+
+ BOX SIZING
+
*/
html,
@@ -12,8 +14,11 @@ footer,
header,
form,
fieldset,
+legend,
pre,
code,
+a,
+h1,h2,h3,h4,h5,h6,
p,
ul,
ol,
@@ -22,6 +27,10 @@ dl,
dt,
dd,
textarea,
+table,
+td,
+th,
+tr,
input[type="email"],
input[type="number"],
input[type="password"],
diff --git a/src/_clears.css b/src/_clears.css
index 4366b9136..14d8e1d40 100644
--- a/src/_clears.css
+++ b/src/_clears.css
@@ -1,6 +1,7 @@
/*
CLEARFIX
+ http://tachyons.io/docs/layout/clearfix/
*/
diff --git a/src/_colors.css b/src/_colors.css
index 77a6c4f08..7280aeca3 100644
--- a/src/_colors.css
+++ b/src/_colors.css
@@ -51,18 +51,22 @@
--white-025: rgba(255,255,255,.025);
--white-0125: rgba(255,255,255,.0125);
- --dark-red: #f00008;
- --red: #ff3223;
- --orange: #f3a801;
- --gold: #f2c800;
- --yellow: #ffde37;
- --purple: #7d5da9;
- --light-purple: #8d4f92;
- --hot-pink: #d62288;
- --dark-pink: #c64774;
- --pink: #f49cc8;
- --dark-green: #006C71;
- --green: #41D69F;
+ --dark-red: #e7040f;
+ --red: #ff4136;
+ --light-red: #ff725c;
+ --orange: #ff6300;
+ --gold: #ffb700;
+ --yellow: #ffd700;
+ --light-yellow: #fbf1a9;
+ --purple: #5e2ca5;
+ --light-purple: #a463f2;
+ --dark-pink: #d5008f;
+ --hot-pink: #ff41b4;
+ --pink: #ff80cc;
+ --light-pink: #ffa3d7;
+ --dark-green: #137752;
+ --green: #19a974;
+ --light-green: #9eebcf;
--navy: #001b44;
--dark-blue: #00449e;
--blue: #357edd;
@@ -70,9 +74,7 @@
--lightest-blue: #cdecff;
--washed-blue: #f6fffe;
--washed-green: #e8fdf5;
- --washed-yellow: #fff8d5;
- --light-pink: #efa4b8;
- --light-yellow: #f3dd70;
- --light-red: #ffd3c0;
+ --washed-yellow: #fffceb;
+ --washed-red: #ffdfdf;
}
diff --git a/src/_coordinates.css b/src/_coordinates.css
index f739a5f4a..bf8e6d787 100644
--- a/src/_coordinates.css
+++ b/src/_coordinates.css
@@ -1,6 +1,7 @@
/*
COORDINATES
+ Docs: http://tachyons.io/docs/layout/position/
Use in combination with the position module.
diff --git a/src/_debug-children.css b/src/_debug-children.css
index cea262411..10204dacc 100644
--- a/src/_debug-children.css
+++ b/src/_debug-children.css
@@ -1,6 +1,7 @@
/*
DEBUG CHILDREN
+ Docs: http://tachyons.io/docs/debug/
Just add the debug class to any element to see outlines on its
children.
@@ -8,4 +9,6 @@
*/
.debug * { outline: 1px solid gold; }
+.debug-white * { outline: 1px solid white; }
+.debug-black * { outline: 1px solid black; }
diff --git a/src/_debug-grid.css b/src/_debug-grid.css
index 8d095f9d5..c5beeb86e 100644
--- a/src/_debug-grid.css
+++ b/src/_debug-grid.css
@@ -1,6 +1,7 @@
/*
DEBUG GRID
+ http://tachyons.io/docs/debug-grid/
Can be useful for debugging layout issues
or helping to make sure things line up perfectly.
@@ -9,17 +10,17 @@
*/
.debug-grid {
- background:transparent url(http://tachyons.io/img/8-grid-blue-alpha.png) repeat top left;
+ background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat top left;
}
.debug-grid-16 {
- background:transparent url(http://tachyons.io/img/16-grid-blue-alpha.png) repeat top left;
+ background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat top left;
}
.debug-grid-8-solid {
- background:white url(http://tachyons.io/img/8-grid.jpg) repeat top left;
+ background:white url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat top left;
}
.debug-grid-16-solid {
- background:white url(http://tachyons.io/img/16-grid.png) repeat top left;
+ background:white url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat top left;
}
diff --git a/src/_debug.css b/src/_debug.css
index 12a8b5b92..f09f2b519 100644
--- a/src/_debug.css
+++ b/src/_debug.css
@@ -1,3 +1,15 @@
+/*
+
+ DEBUG (PESTICIDE)
+ Docs: http://tachyons.io/docs/debug/
+
+ This is a partial you have to manually include in your
+ build file. It places a different colored outline on
+ each element which can help you debug layout issues.
+ There is also a handy chrome extension that can
+ be found at http://pesticide.io
+
+*/
body { outline: 1px solid #2980B9!important; }
article { outline: 1px solid #3498DB!important; }
diff --git a/src/_display.css b/src/_display.css
index 334d2a267..5eb68b307 100644
--- a/src/_display.css
+++ b/src/_display.css
@@ -1,6 +1,7 @@
/*
DISPLAY
+ Docs: http://tachyons.io/docs/layout/display
Base:
d = display
@@ -12,9 +13,9 @@
it = inline-table
t = table
tc = table-cell
- tr = table-row
- tcol = table-column
- tcolg = table-column-group
+ t-row = table-row
+ t-columm = table-column
+ t-column-group = table-column-group
Media Query Extensions:
-ns = not-small
diff --git a/src/_flexbox.css b/src/_flexbox.css
index 19409b63d..bcced9fdc 100644
--- a/src/_flexbox.css
+++ b/src/_flexbox.css
@@ -25,6 +25,9 @@
.flex-column { flex-direction: column; }
.flex-row { flex-direction: row; }
.flex-wrap { flex-wrap: wrap; }
+.flex-column-reverse { flex-direction: column-reverse; }
+.flex-row-reverse { flex-direction: row-reverse; }
+.flex-wrap-reverse { flex-wrap: wrap-reverse; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
@@ -72,8 +75,11 @@
}
.flex-none-ns { flex: none; }
.flex-column-ns { flex-direction: column; }
- .flex-row-ns { flex-direction: row; }
+ .flex-row-ns { flex-direction: row; }
.flex-wrap-ns { flex-wrap: wrap; }
+ .flex-column-reverse-ns { flex-direction: column-reverse; }
+ .flex-row-reverse-ns { flex-direction: row-reverse; }
+ .flex-wrap-reverse-ns { flex-wrap: wrap-reverse; }
.items-start-ns { align-items: flex-start; }
.items-end-ns { align-items: flex-end; }
.items-center-ns { align-items: center; }
@@ -122,6 +128,9 @@
.flex-column-m { flex-direction: column; }
.flex-row-m { flex-direction: row; }
.flex-wrap-m { flex-wrap: wrap; }
+ .flex-column-reverse-m { flex-direction: column-reverse; }
+ .flex-row-reverse-m { flex-direction: row-reverse; }
+ .flex-wrap-reverse-m { flex-wrap: wrap-reverse; }
.items-start-m { align-items: flex-start; }
.items-end-m { align-items: flex-end; }
.items-center-m { align-items: center; }
@@ -171,6 +180,10 @@
.flex-column-l { flex-direction: column; }
.flex-row-l { flex-direction: row; }
.flex-wrap-l { flex-wrap: wrap; }
+ .flex-column-reverse-l { flex-direction: column-reverse; }
+ .flex-row-reverse-l { flex-direction: row-reverse; }
+ .flex-wrap-reverse-l { flex-wrap: wrap-reverse; }
+
.items-start-l { align-items: flex-start; }
.items-end-l { align-items: flex-end; }
.items-center-l { align-items: center; }
diff --git a/src/_floats.css b/src/_floats.css
index f361ef336..d5b391201 100644
--- a/src/_floats.css
+++ b/src/_floats.css
@@ -1,6 +1,7 @@
/*
FLOATS
+ http://tachyons.io/docs/layout/floats/
1. Floated elements are automatically rendered as block level elements.
Setting floats to display inline will fix the double margin bug in
diff --git a/src/_font-family.css b/src/_font-family.css
index 6af37001f..f719fa334 100644
--- a/src/_font-family.css
+++ b/src/_font-family.css
@@ -1,6 +1,7 @@
/*
FONT FAMILY GROUPS
+ Docs: http://tachyons.io/docs/typography/font-family/
*/
@@ -8,7 +9,7 @@
.sans-serif {
font-family: -apple-system, BlinkMacSystemFont,
'avenir next', avenir,
- helvetica, 'helvetica neue',
+ 'helvetica neue', helvetica,
ubuntu,
roboto, noto,
'segoe ui', arial,
@@ -61,6 +62,12 @@ code, .code {
/* Serif Typefaces */
+.athelas {
+ font-family: athelas,
+ georgia,
+ serif;
+}
+
.georgia {
font-family: georgia,
serif;
diff --git a/src/_font-style.css b/src/_font-style.css
index 7b13cf1aa..d095dfea5 100644
--- a/src/_font-style.css
+++ b/src/_font-style.css
@@ -1,6 +1,7 @@
/*
FONT STYLE
+ Docs: http://tachyons.io/docs/typography/font-style/
Media Query Extensions:
-ns = not-small
diff --git a/src/_font-weight.css b/src/_font-weight.css
index b3e4001b0..990a05a7f 100644
--- a/src/_font-weight.css
+++ b/src/_font-weight.css
@@ -1,6 +1,7 @@
/*
FONT WEIGHT
+ Docs: http://tachyons.io/docs/typography/font-weight/
Base
fw = font-weight
diff --git a/src/_forms.css b/src/_forms.css
index 6db62d39b..fe0b8ab6c 100644
--- a/src/_forms.css
+++ b/src/_forms.css
@@ -1,7 +1,7 @@
/*
FORMS
-
+
*/
.input-reset {
@@ -9,3 +9,8 @@
-moz-appearance: none;
}
+.button-reset::-moz-focus-inner,
+.input-reset::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
diff --git a/src/_heights.css b/src/_heights.css
index 47b74dc33..99a93b678 100644
--- a/src/_heights.css
+++ b/src/_heights.css
@@ -1,9 +1,12 @@
/*
HEIGHTS
+ Docs: http://tachyons.io/docs/layout/heights/
Base:
h = height
+ min-h = min-height
+ min-vh = min-height vertical screen height
vh = vertical screen height
Modifiers
@@ -43,6 +46,8 @@
.h-75 { height: 75%; }
.h-100 { height: 100%; }
+.min-h-100 { min-height: 100%; }
+
/* Screen Height Percentage */
.vh-25 { height: 25vh; }
@@ -50,6 +55,9 @@
.vh-75 { height: 75vh; }
.vh-100 { height: 100vh; }
+.min-vh-100 { min-height: 100vh; }
+
+
/* String Properties */
.h-auto { height: auto; }
@@ -64,11 +72,13 @@
.h-25-ns { height: 25%; }
.h-50-ns { height: 50%; }
.h-75-ns { height: 75%; }
+ .h-100-ns { height: 100%; }
+ .min-h-100-ns { min-height: 100%; }
.vh-25-ns { height: 25vh; }
.vh-50-ns { height: 50vh; }
.vh-75-ns { height: 75vh; }
.vh-100-ns { height: 100vh; }
- .h-100-ns { height: 100%; }
+ .min-vh-100-ns { min-height: 100vh; }
.h-auto-ns { height: auto; }
.h-inherit-ns { height: inherit; }
}
@@ -83,10 +93,12 @@
.h-50-m { height: 50%; }
.h-75-m { height: 75%; }
.h-100-m { height: 100%; }
+ .min-h-100-m { min-height: 100%; }
.vh-25-m { height: 25vh; }
.vh-50-m { height: 50vh; }
.vh-75-m { height: 75vh; }
.vh-100-m { height: 100vh; }
+ .min-vh-100-m { min-height: 100vh; }
.h-auto-m { height: auto; }
.h-inherit-m { height: inherit; }
}
@@ -101,10 +113,12 @@
.h-50-l { height: 50%; }
.h-75-l { height: 75%; }
.h-100-l { height: 100%; }
+ .min-h-100-l { min-height: 100%; }
.vh-25-l { height: 25vh; }
.vh-50-l { height: 50vh; }
.vh-75-l { height: 75vh; }
.vh-100-l { height: 100vh; }
+ .min-vh-100-l { min-height: 100vh; }
.h-auto-l { height: auto; }
.h-inherit-l { height: inherit; }
}
diff --git a/src/_hovers.css b/src/_hovers.css
index d1e0d5e3e..6d3802bfe 100644
--- a/src/_hovers.css
+++ b/src/_hovers.css
@@ -1,8 +1,10 @@
/*
HOVER EFFECTS
+ Docs: http://tachyons.io/docs/themes/hovers/
- Dim
+ - Glow
- Hide Child
- Underline text
- Grow
@@ -29,6 +31,20 @@
opacity: .8; transition: opacity .15s ease-out;
}
+/*
+
+ Animate opacity to 100% on hover by adding the glow class.
+
+*/
+.glow {
+ transition: opacity .15s ease-in;
+}
+.glow:hover,
+.glow:focus {
+ opacity: 1;
+ transition: opacity .15s ease-in;
+}
+
/*
Hide child & reveal on hover:
@@ -67,7 +83,7 @@
-moz-osx-font-smoothing: grayscale;
backface-visibility: hidden;
transform: translateZ(0);
- transition: 0.25s transform ease-out;
+ transition: transform 0.25s ease-out;
}
.grow:hover,
@@ -83,7 +99,7 @@
-moz-osx-font-smoothing: grayscale;
backface-visibility: hidden;
transform: translateZ(0);
- transition: 0.25s transform ease-in-out;
+ transition: transform .25s ease-in-out;
}
.grow-large:hover,
@@ -101,10 +117,43 @@
cursor: pointer;
}
-/* Add shadow on hover */
+/*
+ Add shadow on hover.
+
+ Performant box-shadow animation pattern from
+ http://tobiasahlin.com/blog/how-to-animate-box-shadow/
+*/
+
+.shadow-hover {
+ cursor: pointer;
+ position: relative;
+ transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
+}
+
+.shadow-hover::after {
+ content: '';
+ box-shadow: 0px 0px 16px 2px rgba( 0, 0, 0, .2 );
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
+}
+
+.shadow-hover:hover::after,
+.shadow-hover:focus::after {
+ opacity: 1;
+}
+
+/* Combine with classes in skins and skins-pseudo for
+ * many different transition possibilities. */
-.shadow-hover:hover,
-.shadow-hover:focus {
- box-shadow: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 );
+.bg-animate,
+.bg-animate:hover,
+.bg-animate:focus {
+ transition: background-color .15s ease-in-out;
}
diff --git a/src/_images.css b/src/_images.css
index db6768aa2..0298ceae7 100644
--- a/src/_images.css
+++ b/src/_images.css
@@ -1,6 +1,7 @@
/*
IMAGES
+ Docs: http://tachyons.io/docs/elements/images/
*/
diff --git a/src/_letter-spacing.css b/src/_letter-spacing.css
index da19338b7..d22651306 100644
--- a/src/_letter-spacing.css
+++ b/src/_letter-spacing.css
@@ -1,6 +1,7 @@
/*
LETTER SPACING
+ Docs: http://tachyons.io/docs/typography/tracking/
Media Query Extensions:
-ns = not-small
diff --git a/src/_line-height.css b/src/_line-height.css
index a200538b0..afbef0db4 100644
--- a/src/_line-height.css
+++ b/src/_line-height.css
@@ -1,6 +1,7 @@
/*
LINE HEIGHT / LEADING
+ Docs: http://tachyons.io/docs/typography/line-height
Media Query Extensions:
-ns = not-small
diff --git a/src/_links.css b/src/_links.css
index d545235c7..6c9a2c876 100644
--- a/src/_links.css
+++ b/src/_links.css
@@ -1,6 +1,7 @@
/*
LINKS
+ Docs: http://tachyons.io/docs/elements/links/
*/
@@ -21,5 +22,6 @@
}
.link:focus {
transition: color .15s ease-in;
+ outline: 1px dotted currentColor;
}
diff --git a/src/_lists.css b/src/_lists.css
index 6d80cae8e..88ca28d90 100644
--- a/src/_lists.css
+++ b/src/_lists.css
@@ -1,6 +1,7 @@
/*
LISTS
+ http://tachyons.io/docs/elements/lists/
*/
diff --git a/src/_max-widths.css b/src/_max-widths.css
index fc043fb94..e4175fae8 100644
--- a/src/_max-widths.css
+++ b/src/_max-widths.css
@@ -1,6 +1,7 @@
/*
MAX WIDTHS
+ Docs: http://tachyons.io/docs/layout/max-widths/
Base:
mw = max-width
diff --git a/src/_negative-margins.css b/src/_negative-margins.css
new file mode 100644
index 000000000..311320557
--- /dev/null
+++ b/src/_negative-margins.css
@@ -0,0 +1,199 @@
+/*
+ NEGATIVE MARGINS
+
+ Base:
+ n = negative
+
+ Modifiers:
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+
+
+
+.na1 { margin: -var(--spacing-extra-small); }
+.na2 { margin: -var(--spacing-small); }
+.na3 { margin: -var(--spacing-medium); }
+.na4 { margin: -var(--spacing-large); }
+.na5 { margin: -var(--spacing-extra-large); }
+.na6 { margin: -var(--spacing-extra-extra-large); }
+.na7 { margin: -var(--spacing-extra-extra-extra-large); }
+
+.nl1 { margin-left: -var(--spacing-extra-small); }
+.nl2 { margin-left: -var(--spacing-small); }
+.nl3 { margin-left: -var(--spacing-medium); }
+.nl4 { margin-left: -var(--spacing-large); }
+.nl5 { margin-left: -var(--spacing-extra-large); }
+.nl6 { margin-left: -var(--spacing-extra-extra-large); }
+.nl7 { margin-left: -var(--spacing-extra-extra-extra-large); }
+
+.nr1 { margin-right: -var(--spacing-extra-small); }
+.nr2 { margin-right: -var(--spacing-small); }
+.nr3 { margin-right: -var(--spacing-medium); }
+.nr4 { margin-right: -var(--spacing-large); }
+.nr5 { margin-right: -var(--spacing-extra-large); }
+.nr6 { margin-right: -var(--spacing-extra-extra-large); }
+.nr7 { margin-right: -var(--spacing-extra-extra-extra-large); }
+
+.nb1 { margin-bottom: -var(--spacing-extra-small); }
+.nb2 { margin-bottom: -var(--spacing-small); }
+.nb3 { margin-bottom: -var(--spacing-medium); }
+.nb4 { margin-bottom: -var(--spacing-large); }
+.nb5 { margin-bottom: -var(--spacing-extra-large); }
+.nb6 { margin-bottom: -var(--spacing-extra-extra-large); }
+.nb7 { margin-bottom: -var(--spacing-extra-extra-extra-large); }
+
+.nt1 { margin-top: -var(--spacing-extra-small); }
+.nt2 { margin-top: -var(--spacing-small); }
+.nt3 { margin-top: -var(--spacing-medium); }
+.nt4 { margin-top: -var(--spacing-large); }
+.nt5 { margin-top: -var(--spacing-extra-large); }
+.nt6 { margin-top: -var(--spacing-extra-extra-large); }
+.nt7 { margin-top: -var(--spacing-extra-extra-extra-large); }
+
+@media (--breakpoint-not-small) {
+
+ .na1-ns { margin: -var(--spacing-extra-small); }
+ .na2-ns { margin: -var(--spacing-small); }
+ .na3-ns { margin: -var(--spacing-medium); }
+ .na4-ns { margin: -var(--spacing-large); }
+ .na5-ns { margin: -var(--spacing-extra-large); }
+ .na6-ns { margin: -var(--spacing-extra-extra-large); }
+ .na7-ns { margin: -var(--spacing-extra-extra-extra-large); }
+
+ .nl1-ns { margin-left: -var(--spacing-extra-small); }
+ .nl2-ns { margin-left: -var(--spacing-small); }
+ .nl3-ns { margin-left: -var(--spacing-medium); }
+ .nl4-ns { margin-left: -var(--spacing-large); }
+ .nl5-ns { margin-left: -var(--spacing-extra-large); }
+ .nl6-ns { margin-left: -var(--spacing-extra-extra-large); }
+ .nl7-ns { margin-left: -var(--spacing-extra-extra-extra-large); }
+
+ .nr1-ns { margin-right: -var(--spacing-extra-small); }
+ .nr2-ns { margin-right: -var(--spacing-small); }
+ .nr3-ns { margin-right: -var(--spacing-medium); }
+ .nr4-ns { margin-right: -var(--spacing-large); }
+ .nr5-ns { margin-right: -var(--spacing-extra-large); }
+ .nr6-ns { margin-right: -var(--spacing-extra-extra-large); }
+ .nr7-ns { margin-right: -var(--spacing-extra-extra-extra-large); }
+
+ .nb1-ns { margin-bottom: -var(--spacing-extra-small); }
+ .nb2-ns { margin-bottom: -var(--spacing-small); }
+ .nb3-ns { margin-bottom: -var(--spacing-medium); }
+ .nb4-ns { margin-bottom: -var(--spacing-large); }
+ .nb5-ns { margin-bottom: -var(--spacing-extra-large); }
+ .nb6-ns { margin-bottom: -var(--spacing-extra-extra-large); }
+ .nb7-ns { margin-bottom: -var(--spacing-extra-extra-extra-large); }
+
+ .nt1-ns { margin-top: -var(--spacing-extra-small); }
+ .nt2-ns { margin-top: -var(--spacing-small); }
+ .nt3-ns { margin-top: -var(--spacing-medium); }
+ .nt4-ns { margin-top: -var(--spacing-large); }
+ .nt5-ns { margin-top: -var(--spacing-extra-large); }
+ .nt6-ns { margin-top: -var(--spacing-extra-extra-large); }
+ .nt7-ns { margin-top: -var(--spacing-extra-extra-extra-large); }
+
+}
+
+@media (--breakpoint-medium) {
+ .na1-m { margin: -var(--spacing-extra-small); }
+ .na2-m { margin: -var(--spacing-small); }
+ .na3-m { margin: -var(--spacing-medium); }
+ .na4-m { margin: -var(--spacing-large); }
+ .na5-m { margin: -var(--spacing-extra-large); }
+ .na6-m { margin: -var(--spacing-extra-extra-large); }
+ .na7-m { margin: -var(--spacing-extra-extra-extra-large); }
+
+ .nl1-m { margin-left: -var(--spacing-extra-small); }
+ .nl2-m { margin-left: -var(--spacing-small); }
+ .nl3-m { margin-left: -var(--spacing-medium); }
+ .nl4-m { margin-left: -var(--spacing-large); }
+ .nl5-m { margin-left: -var(--spacing-extra-large); }
+ .nl6-m { margin-left: -var(--spacing-extra-extra-large); }
+ .nl7-m { margin-left: -var(--spacing-extra-extra-extra-large); }
+
+ .nr1-m { margin-right: -var(--spacing-extra-small); }
+ .nr2-m { margin-right: -var(--spacing-small); }
+ .nr3-m { margin-right: -var(--spacing-medium); }
+ .nr4-m { margin-right: -var(--spacing-large); }
+ .nr5-m { margin-right: -var(--spacing-extra-large); }
+ .nr6-m { margin-right: -var(--spacing-extra-extra-large); }
+ .nr7-m { margin-right: -var(--spacing-extra-extra-extra-large); }
+
+ .nb1-m { margin-bottom: -var(--spacing-extra-small); }
+ .nb2-m { margin-bottom: -var(--spacing-small); }
+ .nb3-m { margin-bottom: -var(--spacing-medium); }
+ .nb4-m { margin-bottom: -var(--spacing-large); }
+ .nb5-m { margin-bottom: -var(--spacing-extra-large); }
+ .nb6-m { margin-bottom: -var(--spacing-extra-extra-large); }
+ .nb7-m { margin-bottom: -var(--spacing-extra-extra-extra-large); }
+
+ .nt1-m { margin-top: -var(--spacing-extra-small); }
+ .nt2-m { margin-top: -var(--spacing-small); }
+ .nt3-m { margin-top: -var(--spacing-medium); }
+ .nt4-m { margin-top: -var(--spacing-large); }
+ .nt5-m { margin-top: -var(--spacing-extra-large); }
+ .nt6-m { margin-top: -var(--spacing-extra-extra-large); }
+ .nt7-m { margin-top: -var(--spacing-extra-extra-extra-large); }
+
+}
+
+@media (--breakpoint-large) {
+ .na1-l { margin: -var(--spacing-extra-small); }
+ .na2-l { margin: -var(--spacing-small); }
+ .na3-l { margin: -var(--spacing-medium); }
+ .na4-l { margin: -var(--spacing-large); }
+ .na5-l { margin: -var(--spacing-extra-large); }
+ .na6-l { margin: -var(--spacing-extra-extra-large); }
+ .na7-l { margin: -var(--spacing-extra-extra-extra-large); }
+
+ .nl1-l { margin-left: -var(--spacing-extra-small); }
+ .nl2-l { margin-left: -var(--spacing-small); }
+ .nl3-l { margin-left: -var(--spacing-medium); }
+ .nl4-l { margin-left: -var(--spacing-large); }
+ .nl5-l { margin-left: -var(--spacing-extra-large); }
+ .nl6-l { margin-left: -var(--spacing-extra-extra-large); }
+ .nl7-l { margin-left: -var(--spacing-extra-extra-extra-large); }
+
+ .nr1-l { margin-right: -var(--spacing-extra-small); }
+ .nr2-l { margin-right: -var(--spacing-small); }
+ .nr3-l { margin-right: -var(--spacing-medium); }
+ .nr4-l { margin-right: -var(--spacing-large); }
+ .nr5-l { margin-right: -var(--spacing-extra-large); }
+ .nr6-l { margin-right: -var(--spacing-extra-extra-large); }
+ .nr7-l { margin-right: -var(--spacing-extra-extra-extra-large); }
+
+ .nb1-l { margin-bottom: -var(--spacing-extra-small); }
+ .nb2-l { margin-bottom: -var(--spacing-small); }
+ .nb3-l { margin-bottom: -var(--spacing-medium); }
+ .nb4-l { margin-bottom: -var(--spacing-large); }
+ .nb5-l { margin-bottom: -var(--spacing-extra-large); }
+ .nb6-l { margin-bottom: -var(--spacing-extra-extra-large); }
+ .nb7-l { margin-bottom: -var(--spacing-extra-extra-extra-large); }
+
+ .nt1-l { margin-top: -var(--spacing-extra-small); }
+ .nt2-l { margin-top: -var(--spacing-small); }
+ .nt3-l { margin-top: -var(--spacing-medium); }
+ .nt4-l { margin-top: -var(--spacing-large); }
+ .nt5-l { margin-top: -var(--spacing-extra-large); }
+ .nt6-l { margin-top: -var(--spacing-extra-extra-large); }
+ .nt7-l { margin-top: -var(--spacing-extra-extra-extra-large); }
+}
+
diff --git a/src/_nested.css b/src/_nested.css
new file mode 100644
index 000000000..3c2f6cd93
--- /dev/null
+++ b/src/_nested.css
@@ -0,0 +1,57 @@
+/*
+
+ NESTED
+ Tachyons module for styling nested elements
+ that are generated by a cms.
+
+*/
+
+.nested-copy-line-height p,
+.nested-copy-line-height ul,
+.nested-copy-line-height ol {
+ line-height: 1.5;
+}
+
+.nested-headline-line-height h1,
+.nested-headline-line-height h2,
+.nested-headline-line-height h3,
+.nested-headline-line-height h4,
+.nested-headline-line-height h5,
+.nested-headline-line-height h6 {
+ line-height: 1.25;
+}
+
+.nested-list-reset ul,
+.nested-list-reset ol {
+ padding-left: 0;
+ margin-left: 0;
+ list-style-type: none;
+}
+
+.nested-copy-indent p+p {
+ text-indent: 1em;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.nested-copy-seperator p+p {
+ margin-top: 1.5em;
+}
+
+.nested-img img {
+ width: 100%;
+ max-width: 100%;
+ display: block;
+}
+
+.nested-links a {
+ color: var(--blue);
+ transition: color .15s ease-in;
+}
+
+.nested-links a:hover,
+.nested-links a:focus {
+ color: var(--light-blue);
+ transition: color .15s ease-in;
+}
+
diff --git a/src/_normalize.css b/src/_normalize.css
index 8710595d3..fa4e73dd4 100644
--- a/src/_normalize.css
+++ b/src/_normalize.css
@@ -1,18 +1,23 @@
-/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
+/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
+
+/* Document
+ ========================================================================== */
/**
- * 1. Change the default font family in all browsers (opinionated).
- * 2. Correct the line height in all browsers.
- * 3. Prevent adjustments of font size after orientation changes in IE and iOS.
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in
+ * IE on Windows Phone and in iOS.
*/
html {
- font-family: sans-serif; /* 1 */
- line-height: 1.15; /* 2 */
- -ms-text-size-adjust: 100%; /* 3 */
- -webkit-text-size-adjust: 100%; /* 3 */
+ line-height: 1.15; /* 1 */
+ -ms-text-size-adjust: 100%; /* 2 */
+ -webkit-text-size-adjust: 100%; /* 2 */
}
+/* Sections
+ ========================================================================== */
+
/**
* Remove the margin in all browsers (opinionated).
*/
@@ -21,69 +26,73 @@ body {
margin: 0;
}
-/* HTML5 display definitions
- ========================================================================== */
-
/**
* Add the correct display in IE 9-.
- * 1. Add the correct display in Edge, IE, and Firefox.
- * 2. Add the correct display in IE.
*/
article,
aside,
-details, /* 1 */
-figcaption,
-figure,
footer,
header,
-main, /* 2 */
-menu,
nav,
-section,
-summary { /* 1 */
+section {
display: block;
}
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/* Grouping content
+ ========================================================================== */
+
/**
* Add the correct display in IE 9-.
+ * 1. Add the correct display in IE.
*/
-audio,
-canvas,
-progress,
-video {
- display: inline-block;
+figcaption,
+figure,
+main { /* 1 */
+ display: block;
}
/**
- * Add the correct display in iOS 4-7.
+ * Add the correct margin in IE 8.
*/
-audio:not([controls]) {
- display: none;
- height: 0;
+figure {
+ margin: 1em 40px;
}
/**
- * Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
*/
-progress {
- vertical-align: baseline;
+hr {
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
}
/**
- * Add the correct display in IE 10-.
- * 1. Add the correct display in IE.
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
*/
-template, /* 1 */
-[hidden] {
- display: none;
+pre {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
}
-/* Links
+/* Text-level semantics
========================================================================== */
/**
@@ -97,20 +106,7 @@ a {
}
/**
- * Remove the outline on focused links when they are also active or hovered
- * in all browsers (opinionated).
- */
-
-a:active,
-a:hover {
- outline-width: 0;
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * 1. Remove the bottom border in Firefox 39-.
+ * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
@@ -139,21 +135,23 @@ strong {
}
/**
- * Add the correct font style in Android 4.3-.
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
*/
-dfn {
- font-style: italic;
+code,
+kbd,
+samp {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
}
/**
- * Correct the font size and margin on `h1` elements within `section` and
- * `article` contexts in Chrome, Firefox, and Safari.
+ * Add the correct font style in Android 4.3-.
*/
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
+dfn {
+ font-style: italic;
}
/**
@@ -198,61 +196,44 @@ sup {
========================================================================== */
/**
- * Remove the border on images inside links in IE 10-.
- */
-
-img {
- border-style: none;
-}
-
-/**
- * Hide the overflow in IE.
+ * Add the correct display in IE 9-.
*/
-svg:not(:root) {
- overflow: hidden;
+audio,
+video {
+ display: inline-block;
}
-/* Grouping content
- ========================================================================== */
-
/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
+ * Add the correct display in iOS 4-7.
*/
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace; /* 1 */
- font-size: 1em; /* 2 */
+audio:not([controls]) {
+ display: none;
+ height: 0;
}
/**
- * Add the correct margin in IE 8.
+ * Remove the border on images inside links in IE 10-.
*/
-figure {
- margin: 1em 40px;
+img {
+ border-style: none;
}
/**
- * 1. Add the correct box sizing in Firefox.
- * 2. Show the overflow in Edge and IE.
+ * Hide the overflow in IE.
*/
-hr {
- box-sizing: content-box; /* 1 */
- height: 0; /* 1 */
- overflow: visible; /* 2 */
+svg:not(:root) {
+ overflow: hidden;
}
/* Forms
========================================================================== */
/**
- * 1. Change font properties to `inherit` in all browsers (opinionated).
+ * 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
@@ -261,18 +242,12 @@ input,
optgroup,
select,
textarea {
- font: inherit; /* 1 */
+ font-family: sans-serif; /* 1 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
-/**
- * Restore the font weight unset by the previous rule.
- */
-
-optgroup {
- font-weight: bold;
-}
-
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
@@ -330,13 +305,11 @@ button:-moz-focusring,
}
/**
- * Change the border, margin, and padding in all browsers (opinionated).
+ * Correct the padding in Firefox.
*/
fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
+ padding: 0.35em 0.75em 0.625em;
}
/**
@@ -355,6 +328,16 @@ legend {
white-space: normal; /* 1 */
}
+/**
+ * 1. Add the correct display in IE 9-.
+ * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+
+progress {
+ display: inline-block; /* 1 */
+ vertical-align: baseline; /* 2 */
+}
+
/**
* Remove the default vertical scrollbar in IE.
*/
@@ -394,7 +377,7 @@ textarea {
}
/**
- * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.
+ * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-cancel-button,
@@ -402,15 +385,6 @@ textarea {
-webkit-appearance: none;
}
-/**
- * Correct the text style of placeholders in Chrome, Edge, and Safari.
- */
-
-::-webkit-input-placeholder {
- color: inherit;
- opacity: 0.54;
-}
-
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
@@ -420,3 +394,54 @@ textarea {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
+
+/* Interactive
+ ========================================================================== */
+
+/*
+ * Add the correct display in IE 9-.
+ * 1. Add the correct display in Edge, IE, and Firefox.
+ */
+
+details, /* 1 */
+menu {
+ display: block;
+}
+
+/*
+ * Add the correct display in all browsers.
+ */
+
+summary {
+ display: list-item;
+}
+
+/* Scripting
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+canvas {
+ display: inline-block;
+}
+
+/**
+ * Add the correct display in IE.
+ */
+
+template {
+ display: none;
+}
+
+/* Hidden
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 10-.
+ */
+
+[hidden] {
+ display: none;
+}
diff --git a/src/_opacity.css b/src/_opacity.css
index c35a7b34b..3f2a39bbc 100644
--- a/src/_opacity.css
+++ b/src/_opacity.css
@@ -1,6 +1,7 @@
/*
OPACITY
+ Docs: http://tachyons.io/docs/themes/opacity/
*/
diff --git a/src/_outlines.css b/src/_outlines.css
index 9a292fdc0..e9b0ed996 100644
--- a/src/_outlines.css
+++ b/src/_outlines.css
@@ -25,7 +25,7 @@
.outline-0-m { outline: 0; }
}
-@media (--breakpoint-medium) {
+@media (--breakpoint-large) {
.outline-l { outline: 1px solid; }
.outline-transparent-l { outline: 1px solid transparent; }
.outline-0-l { outline: 0; }
diff --git a/src/_position.css b/src/_position.css
index bdd2506a5..eaccbdf24 100644
--- a/src/_position.css
+++ b/src/_position.css
@@ -1,6 +1,7 @@
/*
POSITIONING
+ Docs: http://tachyons.io/docs/layout/position/
Media Query Extensions:
-ns = not-small
diff --git a/src/_rotations.css b/src/_rotations.css
new file mode 100644
index 000000000..5adf7aad2
--- /dev/null
+++ b/src/_rotations.css
@@ -0,0 +1,43 @@
+/*
+
+ ROTATIONS
+
+*/
+
+.rotate-45 { transform: rotate(45deg); }
+.rotate-90 { transform: rotate(90deg); }
+.rotate-135 { transform: rotate(135deg); }
+.rotate-180 { transform: rotate(180deg); }
+.rotate-225 { transform: rotate(225deg); }
+.rotate-270 { transform: rotate(270deg); }
+.rotate-315 { transform: rotate(315deg); }
+
+@media (--breakpoint-not-small){
+ .rotate-45-ns { transform: rotate(45deg); }
+ .rotate-90-ns { transform: rotate(90deg); }
+ .rotate-135-ns { transform: rotate(135deg); }
+ .rotate-180-ns { transform: rotate(180deg); }
+ .rotate-225-ns { transform: rotate(225deg); }
+ .rotate-270-ns { transform: rotate(270deg); }
+ .rotate-315-ns { transform: rotate(315deg); }
+}
+
+@media (--breakpoint-medium){
+ .rotate-45-m { transform: rotate(45deg); }
+ .rotate-90-m { transform: rotate(90deg); }
+ .rotate-135-m { transform: rotate(135deg); }
+ .rotate-180-m { transform: rotate(180deg); }
+ .rotate-225-m { transform: rotate(225deg); }
+ .rotate-270-m { transform: rotate(270deg); }
+ .rotate-315-m { transform: rotate(315deg); }
+}
+
+@media (--breakpoint-large){
+ .rotate-45-l { transform: rotate(45deg); }
+ .rotate-90-l { transform: rotate(90deg); }
+ .rotate-135-l { transform: rotate(135deg); }
+ .rotate-180-l { transform: rotate(180deg); }
+ .rotate-225-l { transform: rotate(225deg); }
+ .rotate-270-l { transform: rotate(270deg); }
+ .rotate-315-l { transform: rotate(315deg); }
+}
diff --git a/src/_skins-pseudo.css b/src/_skins-pseudo.css
new file mode 100644
index 000000000..69d468792
--- /dev/null
+++ b/src/_skins-pseudo.css
@@ -0,0 +1,236 @@
+/*
+
+ SKINS:PSEUDO
+
+ Customize the color of an element when
+ it is focused or hovered over.
+
+ */
+
+.hover-black:hover,
+.hover-black:focus { color: var(--black); }
+.hover-near-black:hover,
+.hover-near-black:focus { color: var(--near-black); }
+.hover-dark-gray:hover,
+.hover-dark-gray:focus { color: var(--dark-gray); }
+.hover-mid-gray:hover,
+.hover-mid-gray:focus { color: var(--mid-gray); }
+.hover-gray:hover,
+.hover-gray:focus { color: var(--gray); }
+.hover-silver:hover,
+.hover-silver:focus { color: var(--silver); }
+.hover-light-silver:hover,
+.hover-light-silver:focus { color: var(--light-silver); }
+.hover-moon-gray:hover,
+.hover-moon-gray:focus { color: var(--moon-gray); }
+.hover-light-gray:hover,
+.hover-light-gray:focus { color: var(--light-gray); }
+.hover-near-white:hover,
+.hover-near-white:focus { color: var(--near-white); }
+.hover-white:hover,
+.hover-white:focus { color: var(--white); }
+
+.hover-black-90:hover,
+.hover-black-90:focus { color: var(--black-90); }
+.hover-black-80:hover,
+.hover-black-80:focus { color: var(--black-80); }
+.hover-black-70:hover,
+.hover-black-70:focus { color: var(--black-70); }
+.hover-black-60:hover,
+.hover-black-60:focus { color: var(--black-60); }
+.hover-black-50:hover,
+.hover-black-50:focus { color: var(--black-50); }
+.hover-black-40:hover,
+.hover-black-40:focus { color: var(--black-40); }
+.hover-black-30:hover,
+.hover-black-30:focus { color: var(--black-30); }
+.hover-black-20:hover,
+.hover-black-20:focus { color: var(--black-20); }
+.hover-black-10:hover,
+.hover-black-10:focus { color: var(--black-10); }
+.hover-white-90:hover,
+.hover-white-90:focus { color: var(--white-90); }
+.hover-white-80:hover,
+.hover-white-80:focus { color: var(--white-80); }
+.hover-white-70:hover,
+.hover-white-70:focus { color: var(--white-70); }
+.hover-white-60:hover,
+.hover-white-60:focus { color: var(--white-60); }
+.hover-white-50:hover,
+.hover-white-50:focus { color: var(--white-50); }
+.hover-white-40:hover,
+.hover-white-40:focus { color: var(--white-40); }
+.hover-white-30:hover,
+.hover-white-30:focus { color: var(--white-30); }
+.hover-white-20:hover,
+.hover-white-20:focus { color: var(--white-20); }
+.hover-white-10:hover,
+.hover-white-10:focus { color: var(--white-10); }
+.hover-inherit:hover,
+.hover-inherit:focus { color: inherit; }
+
+.hover-bg-black:hover,
+.hover-bg-black:focus { background-color: var(--black); }
+.hover-bg-near-black:hover,
+.hover-bg-near-black:focus { background-color: var(--near-black); }
+.hover-bg-dark-gray:hover,
+.hover-bg-dark-gray:focus { background-color: var(--dark-gray); }
+.hover-bg-dark-gray:focus,
+.hover-bg-mid-gray:hover { background-color: var(--mid-gray); }
+.hover-bg-gray:hover,
+.hover-bg-gray:focus { background-color: var(--gray); }
+.hover-bg-silver:hover,
+.hover-bg-silver:focus { background-color: var(--silver); }
+.hover-bg-light-silver:hover,
+.hover-bg-light-silver:focus { background-color: var(--light-silver); }
+.hover-bg-moon-gray:hover,
+.hover-bg-moon-gray:focus { background-color: var(--moon-gray); }
+.hover-bg-light-gray:hover,
+.hover-bg-light-gray:focus { background-color: var(--light-gray); }
+.hover-bg-near-white:hover,
+.hover-bg-near-white:focus { background-color: var(--near-white); }
+.hover-bg-white:hover,
+.hover-bg-white:focus { background-color: var(--white); }
+.hover-bg-transparent:hover,
+.hover-bg-transparent:focus { background-color: var(--transparent); }
+
+.hover-bg-black-90:hover,
+.hover-bg-black-90:focus { background-color: var(--black-90); }
+.hover-bg-black-80:hover,
+.hover-bg-black-80:focus { background-color: var(--black-80); }
+.hover-bg-black-70:hover,
+.hover-bg-black-70:focus { background-color: var(--black-70); }
+.hover-bg-black-60:hover,
+.hover-bg-black-60:focus { background-color: var(--black-60); }
+.hover-bg-black-50:hover,
+.hover-bg-black-50:focus { background-color: var(--black-50); }
+.hover-bg-black-40:hover,
+.hover-bg-black-40:focus { background-color: var(--black-40); }
+.hover-bg-black-30:hover,
+.hover-bg-black-30:focus { background-color: var(--black-30); }
+.hover-bg-black-20:hover,
+.hover-bg-black-20:focus { background-color: var(--black-20); }
+.hover-bg-black-10:hover,
+.hover-bg-black-10:focus { background-color: var(--black-10); }
+.hover-bg-white-90:hover,
+.hover-bg-white-90:focus { background-color: var(--white-90); }
+.hover-bg-white-80:hover,
+.hover-bg-white-80:focus { background-color: var(--white-80); }
+.hover-bg-white-70:hover,
+.hover-bg-white-70:focus { background-color: var(--white-70); }
+.hover-bg-white-60:hover,
+.hover-bg-white-60:focus { background-color: var(--white-60); }
+.hover-bg-white-50:hover,
+.hover-bg-white-50:focus { background-color: var(--white-50); }
+.hover-bg-white-40:hover,
+.hover-bg-white-40:focus { background-color: var(--white-40); }
+.hover-bg-white-30:hover,
+.hover-bg-white-30:focus { background-color: var(--white-30); }
+.hover-bg-white-20:hover,
+.hover-bg-white-20:focus { background-color: var(--white-20); }
+.hover-bg-white-10:hover,
+.hover-bg-white-10:focus { background-color: var(--white-10); }
+
+.hover-dark-red:hover,
+.hover-dark-red:focus { color: var(--dark-red); }
+.hover-red:hover,
+.hover-red:focus { color: var(--red); }
+.hover-light-red:hover,
+.hover-light-red:focus { color: var(--light-red); }
+.hover-orange:hover,
+.hover-orange:focus { color: var(--orange); }
+.hover-gold:hover,
+.hover-gold:focus { color: var(--gold); }
+.hover-yellow:hover,
+.hover-yellow:focus { color: var(--yellow); }
+.hover-light-yellow:hover,
+.hover-light-yellow:focus { color: var(--light-yellow); }
+.hover-purple:hover,
+.hover-purple:focus { color: var(--purple); }
+.hover-light-purple:hover,
+.hover-light-purple:focus { color: var(--light-purple); }
+.hover-dark-pink:hover,
+.hover-dark-pink:focus { color: var(--dark-pink); }
+.hover-hot-pink:hover,
+.hover-hot-pink:focus { color: var(--hot-pink); }
+.hover-pink:hover,
+.hover-pink:focus { color: var(--pink); }
+.hover-light-pink:hover,
+.hover-light-pink:focus { color: var(--light-pink); }
+.hover-dark-green:hover,
+.hover-dark-green:focus { color: var(--dark-green); }
+.hover-green:hover,
+.hover-green:focus { color: var(--green); }
+.hover-light-green:hover,
+.hover-light-green:focus { color: var(--light-green); }
+.hover-navy:hover,
+.hover-navy:focus { color: var(--navy); }
+.hover-dark-blue:hover,
+.hover-dark-blue:focus { color: var(--dark-blue); }
+.hover-blue:hover,
+.hover-blue:focus { color: var(--blue); }
+.hover-light-blue:hover,
+.hover-light-blue:focus { color: var(--light-blue); }
+.hover-lightest-blue:hover,
+.hover-lightest-blue:focus { color: var(--lightest-blue); }
+.hover-washed-blue:hover,
+.hover-washed-blue:focus { color: var(--washed-blue); }
+.hover-washed-green:hover,
+.hover-washed-green:focus { color: var(--washed-green); }
+.hover-washed-yellow:hover,
+.hover-washed-yellow:focus { color: var(--washed-yellow); }
+.hover-washed-red:hover,
+.hover-washed-red:focus { color: var(--washed-red); }
+
+.hover-bg-dark-red:hover,
+.hover-bg-dark-red:focus { background-color: var(--dark-red); }
+.hover-bg-red:hover,
+.hover-bg-red:focus { background-color: var(--red); }
+.hover-bg-light-red:hover,
+.hover-bg-light-red:focus { background-color: var(--light-red); }
+.hover-bg-orange:hover,
+.hover-bg-orange:focus { background-color: var(--orange); }
+.hover-bg-gold:hover,
+.hover-bg-gold:focus { background-color: var(--gold); }
+.hover-bg-yellow:hover,
+.hover-bg-yellow:focus { background-color: var(--yellow); }
+.hover-bg-light-yellow:hover,
+.hover-bg-light-yellow:focus { background-color: var(--light-yellow); }
+.hover-bg-purple:hover,
+.hover-bg-purple:focus { background-color: var(--purple); }
+.hover-bg-light-purple:hover,
+.hover-bg-light-purple:focus { background-color: var(--light-purple); }
+.hover-bg-dark-pink:hover,
+.hover-bg-dark-pink:focus { background-color: var(--dark-pink); }
+.hover-bg-hot-pink:hover,
+.hover-bg-hot-pink:focus { background-color: var(--hot-pink); }
+.hover-bg-pink:hover,
+.hover-bg-pink:focus { background-color: var(--pink); }
+.hover-bg-light-pink:hover,
+.hover-bg-light-pink:focus { background-color: var(--light-pink); }
+.hover-bg-dark-green:hover,
+.hover-bg-dark-green:focus { background-color: var(--dark-green); }
+.hover-bg-green:hover,
+.hover-bg-green:focus { background-color: var(--green); }
+.hover-bg-light-green:hover,
+.hover-bg-light-green:focus { background-color: var(--light-green); }
+.hover-bg-navy:hover,
+.hover-bg-navy:focus { background-color: var(--navy); }
+.hover-bg-dark-blue:hover,
+.hover-bg-dark-blue:focus { background-color: var(--dark-blue); }
+.hover-bg-blue:hover,
+.hover-bg-blue:focus { background-color: var(--blue); }
+.hover-bg-light-blue:hover,
+.hover-bg-light-blue:focus { background-color: var(--light-blue); }
+.hover-bg-lightest-blue:hover,
+.hover-bg-lightest-blue:focus { background-color: var(--lightest-blue); }
+.hover-bg-washed-blue:hover,
+.hover-bg-washed-blue:focus { background-color: var(--washed-blue); }
+.hover-bg-washed-green:hover,
+.hover-bg-washed-green:focus { background-color: var(--washed-green); }
+.hover-bg-washed-yellow:hover,
+.hover-bg-washed-yellow:focus { background-color: var(--washed-yellow); }
+.hover-bg-washed-red:hover,
+.hover-bg-washed-red:focus { background-color: var(--washed-red); }
+.hover-bg-inherit:hover,
+.hover-bg-inherit:focus { background-color: inherit; }
diff --git a/src/_skins.css b/src/_skins.css
index 7cbccbb13..b471444d1 100644
--- a/src/_skins.css
+++ b/src/_skins.css
@@ -1,14 +1,14 @@
/*
SKINS
+ Docs: http://tachyons.io/docs/themes/skins/
Classes for setting foreground and background colors on elements.
+ If you haven't declared a border color, but set border on an element, it will
+ be set to the current text color.
*/
-
-
-
/* Text colors */
.black-90 { color: var(--black-90); }
@@ -22,7 +22,6 @@
.black-10 { color: var(--black-10); }
.black-05 { color: var(--black-05); }
-
.white-90 { color: var(--white-90); }
.white-80 { color: var(--white-80); }
.white-70 { color: var(--white-70); }
@@ -47,16 +46,20 @@
.dark-red { color: var(--dark-red); }
.red { color: var(--red); }
+.light-red { color: var(--light-red); }
.orange { color: var(--orange); }
.gold { color: var(--gold); }
.yellow { color: var(--yellow); }
+.light-yellow { color: var(--light-yellow); }
.purple { color: var(--purple); }
.light-purple { color: var(--light-purple); }
-.hot-pink { color: var(--hot-pink); }
.dark-pink { color: var(--dark-pink); }
+.hot-pink { color: var(--hot-pink); }
.pink { color: var(--pink); }
+.light-pink { color: var(--light-pink); }
.dark-green { color: var(--dark-green); }
.green { color: var(--green); }
+.light-green { color: var(--light-green); }
.navy { color: var(--navy); }
.dark-blue { color: var(--dark-blue); }
.blue { color: var(--blue); }
@@ -65,9 +68,8 @@
.washed-blue { color: var(--washed-blue); }
.washed-green { color: var(--washed-green); }
.washed-yellow { color: var(--washed-yellow); }
-.light-pink { color: var(--light-pink); }
-.light-yellow { color: var(--light-yellow); }
-.light-red { color: var(--light-red); }
+.washed-red { color: var(--washed-red); }
+.color-inherit { color: inherit; }
.bg-black-90 { background-color: var(--black-90); }
.bg-black-80 { background-color: var(--black-80); }
@@ -108,16 +110,20 @@
.bg-dark-red { background-color: var(--dark-red); }
.bg-red { background-color: var(--red); }
+.bg-light-red { background-color: var(--light-red); }
.bg-orange { background-color: var(--orange); }
.bg-gold { background-color: var(--gold); }
.bg-yellow { background-color: var(--yellow); }
+.bg-light-yellow { background-color: var(--light-yellow); }
.bg-purple { background-color: var(--purple); }
.bg-light-purple { background-color: var(--light-purple); }
-.bg-hot-pink { background-color: var(--hot-pink); }
.bg-dark-pink { background-color: var(--dark-pink); }
+.bg-hot-pink { background-color: var(--hot-pink); }
.bg-pink { background-color: var(--pink); }
+.bg-light-pink { background-color: var(--light-pink); }
.bg-dark-green { background-color: var(--dark-green); }
.bg-green { background-color: var(--green); }
+.bg-light-green { background-color: var(--light-green); }
.bg-navy { background-color: var(--navy); }
.bg-dark-blue { background-color: var(--dark-blue); }
.bg-blue { background-color: var(--blue); }
@@ -126,57 +132,5 @@
.bg-washed-blue { background-color: var(--washed-blue); }
.bg-washed-green { background-color: var(--washed-green); }
.bg-washed-yellow { background-color: var(--washed-yellow); }
-.bg-light-pink { background-color: var(--light-pink); }
-.bg-light-yellow { background-color: var(--light-yellow); }
-.bg-light-red { background-color: var(--light-red); }
-
-/* Skins for specific pseudoclasses */
-
-.hover-black:hover { color: var(--black); }
-.hover-near-black:hover { color: var(--near-black); }
-.hover-dark-gray:hover { color: var(--dark-gray); }
-.hover-mid-gray:hover { color: var(--mid-gray); }
-.hover-gray:hover { color: var(--gray); }
-.hover-silver:hover { color: var(--silver); }
-.hover-light-silver:hover { color: var(--light-silver); }
-.hover-moon-gray:hover { color: var(--moon-gray); }
-.hover-light-gray:hover { color: var(--light-gray); }
-.hover-near-white:hover { color: var(--near-white); }
-.hover-white:hover { color: var(--white); }
-
-.hover-bg-black:hover { background-color: var(--black); }
-.hover-bg-near-black:hover { background-color: var(--near-black); }
-.hover-bg-dark-gray:hover { background-color: var(--dark-gray); }
-.hover-bg-mid-gray:hover { background-color: var(--mid-gray); }
-.hover-bg-gray:hover { background-color: var(--gray); }
-.hover-bg-silver:hover { background-color: var(--silver); }
-.hover-bg-light-silver:hover { background-color: var(--light-silver); }
-.hover-bg-moon-gray:hover { background-color: var(--moon-gray); }
-.hover-bg-light-gray:hover { background-color: var(--light-gray); }
-.hover-bg-near-white:hover { background-color: var(--near-white); }
-.hover-bg-white:hover { background-color: var(--white); }
-.hover-bg-transparent:hover { background-color: var(--transparent); }
-
-.hover-bg-dark-red:hover { background-color: var(--dark-red); }
-.hover-bg-red:hover { background-color: var(--red); }
-.hover-bg-orange:hover { background-color: var(--orange); }
-.hover-bg-gold:hover { background-color: var(--gold); }
-.hover-bg-yellow:hover { background-color: var(--yellow); }
-.hover-bg-purple:hover { background-color: var(--purple); }
-.hover-bg-light-purple:hover { background-color: var(--light-purple); }
-.hover-bg-hot-pink:hover { background-color: var(--hot-pink); }
-.hover-bg-dark-pink:hover { background-color: var(--dark-pink); }
-.hover-bg-pink:hover { background-color: var(--pink); }
-.hover-bg-dark-green:hover { background-color: var(--dark-green); }
-.hover-bg-green:hover { background-color: var(--green); }
-.hover-bg-navy:hover { background-color: var(--navy); }
-.hover-bg-dark-blue:hover { background-color: var(--dark-blue); }
-.hover-bg-blue:hover { background-color: var(--blue); }
-.hover-bg-light-blue:hover { background-color: var(--light-blue); }
-.hover-bg-lightest-blue:hover { background-color: var(--lightest-blue); }
-.hover-bg-washed-blue:hover { background-color: var(--washed-blue); }
-.hover-bg-washed-green:hover { background-color: var(--washed-green); }
-.hover-bg-washed-yellow:hover { background-color: var(--washed-yellow); }
-.hover-bg-light-pink:hover { background-color: var(--light-pink); }
-.hover-bg-light-yellow:hover { background-color: var(--light-yellow); }
-.hover-bg-light-red:hover { background-color: var(--light-red); }
+.bg-washed-red { background-color: var(--washed-red); }
+.bg-inherit { background-color: inherit; }
diff --git a/src/_spacing.css b/src/_spacing.css
index 46b4115ab..805712620 100644
--- a/src/_spacing.css
+++ b/src/_spacing.css
@@ -1,4 +1,5 @@
/* Variables */
+
:root {
--spacing-none: 0;
--spacing-extra-small: .25rem;
@@ -12,11 +13,11 @@
/*
SPACING
+ Docs: http://tachyons.io/docs/layout/spacing/
An eight step powers of two scale ranging from 0 to 16rem.
Base:
-
p = padding
m = margin
diff --git a/src/_tables.css b/src/_tables.css
index 1a2fb5338..d1f145a85 100644
--- a/src/_tables.css
+++ b/src/_tables.css
@@ -1,6 +1,7 @@
/*
TABLES
+ Docs: http://tachyons.io/docs/elements/tables/
*/
@@ -24,3 +25,11 @@
.striped--near-white:nth-child(odd) {
background-color: var(--near-white);
}
+
+.stripe-light:nth-child(odd) {
+ background-color: var(--white-10);
+}
+
+.stripe-dark:nth-child(odd) {
+ background-color: var(--black-10);
+}
diff --git a/src/_text-align.css b/src/_text-align.css
index 9982d0051..b1e8bcaff 100644
--- a/src/_text-align.css
+++ b/src/_text-align.css
@@ -1,6 +1,7 @@
/*
TEXT ALIGN
+ Docs: http://tachyons.io/docs/typography/text-align/
Base
t = text-align
diff --git a/src/_text-decoration.css b/src/_text-decoration.css
index da209ad02..574de2764 100644
--- a/src/_text-decoration.css
+++ b/src/_text-decoration.css
@@ -1,6 +1,8 @@
/*
TEXT DECORATION
+ Docs: http://tachyons.io/docs/typography/text-decoration/
+
Media Query Extensions:
-ns = not-small
diff --git a/src/_text-transform.css b/src/_text-transform.css
index 268cdb6c4..50ae73e79 100644
--- a/src/_text-transform.css
+++ b/src/_text-transform.css
@@ -1,6 +1,7 @@
/*
TEXT TRANSFORM
+ Docs: http://tachyons.io/docs/typography/text-transform/
Base:
tt = text-transform
diff --git a/src/_type-scale.css b/src/_type-scale.css
index 0096ec095..673b54caf 100644
--- a/src/_type-scale.css
+++ b/src/_type-scale.css
@@ -1,6 +1,7 @@
/*
TYPE SCALE
+ Docs: http://tachyons.io/docs/typography/scale/
Base:
f = font-size
@@ -12,6 +13,7 @@
4 = 4th step in size scale
5 = 5th step in size scale
6 = 6th step in size scale
+ 7 = 7th step in size scale
Media Query Extensions:
-ns = not-small
@@ -44,6 +46,7 @@
.f4 { font-size: 1.25rem; }
.f5 { font-size: 1rem; }
.f6 { font-size: .875rem; }
+.f7 { font-size: .75rem; } /* Small and hard to read for many people so use with extreme caution */
@media (--breakpoint-not-small){
.f-6-ns,
@@ -56,6 +59,7 @@
.f4-ns { font-size: 1.25rem; }
.f5-ns { font-size: 1rem; }
.f6-ns { font-size: .875rem; }
+ .f7-ns { font-size: .75rem; }
}
@media (--breakpoint-medium) {
@@ -69,6 +73,7 @@
.f4-m { font-size: 1.25rem; }
.f5-m { font-size: 1rem; }
.f6-m { font-size: .875rem; }
+ .f7-m { font-size: .75rem; }
}
@media (--breakpoint-large) {
@@ -86,4 +91,5 @@
.f4-l { font-size: 1.25rem; }
.f5-l { font-size: 1rem; }
.f6-l { font-size: .875rem; }
+ .f7-l { font-size: .75rem; }
}
diff --git a/src/_typography.css b/src/_typography.css
index 75a8e7a8c..4a4103840 100644
--- a/src/_typography.css
+++ b/src/_typography.css
@@ -1,6 +1,7 @@
/*
TYPOGRAPHY
+ http://tachyons.io/docs/typography/measure/
Media Query Extensions:
-ns = not-small
diff --git a/src/_utilities.css b/src/_utilities.css
index bc8a0d76a..74fc9c91a 100644
--- a/src/_utilities.css
+++ b/src/_utilities.css
@@ -2,41 +2,14 @@
UTILITIES
-*/
-
-/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.
- * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e
- * Make sure there are no height and width attributes on the embedded media.
- * Adapted from: https://github.com/suitcss/components-flex-embed
- *
- * Example:
- *
- *
- *
- *
- *
- * */
-
-.aspect-ratio {
- height: 0;
- position: relative;
-}
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
-.aspect-ratio--16x9 { padding-bottom: 56.25%; }
-.aspect-ratio--4x3 { padding-bottom: 75%; }
-.aspect-ratio--8x5 { padding-bottom: 62.5%; }
-
-.aspect-ratio--object {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 100%;
- z-index: 100;
-}
+*/
+/* Equivalent to .overflow-y-scroll */
.overflow-container {
overflow-y: scroll;
}
@@ -45,3 +18,24 @@
margin-right: auto;
margin-left: auto;
}
+
+@media (--breakpoint-not-small){
+ .center-ns {
+ margin-right: auto;
+ margin-left: auto;
+ }
+}
+
+@media (--breakpoint-medium){
+ .center-m {
+ margin-right: auto;
+ margin-left: auto;
+ }
+}
+
+@media (--breakpoint-large){
+ .center-l {
+ margin-right: auto;
+ margin-left: auto;
+ }
+}
diff --git a/src/_widths.css b/src/_widths.css
index 684f28f0b..bfbd5163a 100644
--- a/src/_widths.css
+++ b/src/_widths.css
@@ -1,6 +1,7 @@
/*
WIDTHS
+ Docs: http://tachyons.io/docs/layout/widths/
Base:
w = width
@@ -15,16 +16,21 @@
-10 = literal value 10%
-20 = literal value 20%
-25 = literal value 25%
+ -30 = literal value 30%
-33 = literal value 33%
-34 = literal value 34%
-40 = literal value 40%
-50 = literal value 50%
-60 = literal value 60%
+ -70 = literal value 70%
-75 = literal value 75%
-80 = literal value 80%
+ -90 = literal value 90%
-100 = literal value 100%
- -auto = string value auto
+ -third = 100% / 3 (Not supported in opera mini or IE8)
+ -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8)
+ -auto = string value auto
Media Query Extensions:
@@ -45,15 +51,20 @@
.w-10 { width: 10%; }
.w-20 { width: 20%; }
.w-25 { width: 25%; }
+.w-30 { width: 30%; }
.w-33 { width: 33%; }
.w-34 { width: 34%; }
.w-40 { width: 40%; }
.w-50 { width: 50%; }
.w-60 { width: 60%; }
+.w-70 { width: 70%; }
.w-75 { width: 75%; }
.w-80 { width: 80%; }
+.w-90 { width: 90%; }
.w-100 { width: 100%; }
+.w-third { width: calc(100% / 3); }
+.w-two-thirds { width: calc(100% / 1.5); }
.w-auto { width: auto; }
@media (--breakpoint-not-small) {
@@ -65,14 +76,19 @@
.w-10-ns { width: 10%; }
.w-20-ns { width: 20%; }
.w-25-ns { width: 25%; }
+ .w-30-ns { width: 30%; }
.w-33-ns { width: 33%; }
.w-34-ns { width: 34%; }
.w-40-ns { width: 40%; }
.w-50-ns { width: 50%; }
.w-60-ns { width: 60%; }
+ .w-70-ns { width: 70%; }
.w-75-ns { width: 75%; }
.w-80-ns { width: 80%; }
+ .w-90-ns { width: 90%; }
.w-100-ns { width: 100%; }
+ .w-third-ns { width: calc(100% / 3); }
+ .w-two-thirds-ns { width: calc(100% / 1.5); }
.w-auto-ns { width: auto; }
}
@@ -85,14 +101,19 @@
.w-10-m { width: 10%; }
.w-20-m { width: 20%; }
.w-25-m { width: 25%; }
+ .w-30-m { width: 30%; }
.w-33-m { width: 33%; }
.w-34-m { width: 34%; }
.w-40-m { width: 40%; }
.w-50-m { width: 50%; }
.w-60-m { width: 60%; }
+ .w-70-m { width: 70%; }
.w-75-m { width: 75%; }
.w-80-m { width: 80%; }
+ .w-90-m { width: 90%; }
.w-100-m { width: 100%; }
+ .w-third-m { width: calc(100% / 3); }
+ .w-two-thirds-m { width: calc(100% / 1.5); }
.w-auto-m { width: auto; }
}
@@ -105,13 +126,18 @@
.w-10-l { width: 10%; }
.w-20-l { width: 20%; }
.w-25-l { width: 25%; }
+ .w-30-l { width: 30%; }
.w-33-l { width: 33%; }
.w-34-l { width: 34%; }
.w-40-l { width: 40%; }
.w-50-l { width: 50%; }
.w-60-l { width: 60%; }
+ .w-70-l { width: 70%; }
.w-75-l { width: 75%; }
.w-80-l { width: 80%; }
+ .w-90-l { width: 90%; }
.w-100-l { width: 100%; }
+ .w-third-l { width: calc(100% / 3); }
+ .w-two-thirds-l { width: calc(100% / 1.5); }
.w-auto-l { width: auto; }
}
diff --git a/src/tachyons.css b/src/tachyons.css
index eb656c817..290121dcf 100644
--- a/src/tachyons.css
+++ b/src/tachyons.css
@@ -1,4 +1,4 @@
-/* TACHYONS v4.2.1 | http://github.com/tachyons-css/tachyons */
+/*! TACHYONS v4.7.3 | http://tachyons.io */
/*
*
@@ -30,8 +30,10 @@
/* Modules */
@import './_box-sizing';
+@import './_aspect-ratios';
@import './_images';
@import './_background-size';
+@import './_background-position';
@import './_outlines';
@import './_borders';
@import './_border-colors';
@@ -59,8 +61,11 @@
@import './_overflow';
@import './_position';
@import './_opacity';
+@import './_rotations';
@import './_skins';
+@import './_skins-pseudo';
@import './_spacing';
+@import './_negative-margins';
@import './_tables';
@import './_text-decoration';
@import './_text-align';
@@ -73,6 +78,7 @@
@import './_vertical-align';
@import './_hovers';
@import './_z-index';
+@import './_nested';
@import './_styles';
/* Variables */