Index: frontend/node_modules/postcss-flexbugs-fixes/bugs/bug4.js
===================================================================
--- frontend/node_modules/postcss-flexbugs-fixes/bugs/bug4.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-flexbugs-fixes/bugs/bug4.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,44 @@
+var postcss = require('postcss');
+
+function shouldSetZeroBasis(basisValue) {
+  if (!basisValue) {
+    return false;
+  }
+  return basisValue === '0' || basisValue.replace(/\s/g, '') === '0px';
+}
+
+function properBasis(basis) {
+  if (shouldSetZeroBasis(basis)) {
+    return '0%';
+  }
+  return basis;
+}
+
+module.exports = function(decl) {
+  if (decl.prop === 'flex') {
+    var values = postcss.list.space(decl.value);
+
+    // set default values
+    var flexGrow = '0';
+    var flexShrink = '1';
+    var flexBasis = '0%';
+
+    if (values[0]) {
+      flexGrow = values[0];
+    }
+
+    if (values[1]) {
+      if (!isNaN(values[1])) {
+        flexShrink = values[1];
+      } else {
+        flexBasis = values[1];
+      }
+    }
+
+    if (values[2]) {
+      flexBasis = values[2];
+    }
+
+    decl.value = flexGrow + ' ' + flexShrink + ' ' + properBasis(flexBasis);
+  }
+};
Index: frontend/node_modules/postcss-flexbugs-fixes/bugs/bug6.js
===================================================================
--- frontend/node_modules/postcss-flexbugs-fixes/bugs/bug6.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-flexbugs-fixes/bugs/bug6.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,16 @@
+var postcss = require('postcss');
+
+module.exports = function(decl) {
+  if (decl.prop === 'flex') {
+    var values = postcss.list.space(decl.value);
+    var flexGrow = values[0];
+    var flexShrink = values[1] || '1';
+    var flexBasis = values[2] || '0%';
+    // Safari seems to hate '0%' and the others seems to make do with a nice value when basis is missing,
+    // so if we see a '0%', just remove it.  This way it'll get adjusted for any other cases where '0%' is
+    // already defined somewhere else.
+    if (flexBasis === '0%') flexBasis = null;
+    decl.value =
+      flexGrow + ' ' + flexShrink + (flexBasis ? ' ' + flexBasis : '');
+  }
+};
Index: frontend/node_modules/postcss-flexbugs-fixes/bugs/bug81a.js
===================================================================
--- frontend/node_modules/postcss-flexbugs-fixes/bugs/bug81a.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-flexbugs-fixes/bugs/bug81a.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,27 @@
+var postcss = require('postcss');
+
+module.exports = function(decl) {
+  var regex = /(\d{1,}) (\d{1,}) (calc\(.*\))/g;
+  var matches = regex.exec(decl.value);
+  if (decl.prop === 'flex' && matches) {
+    var grow = postcss.decl({
+      prop: 'flex-grow',
+      value: matches[1],
+      source: decl.source
+    });
+    var shrink = postcss.decl({
+      prop: 'flex-shrink',
+      value: matches[2],
+      source: decl.source
+    });
+    var basis = postcss.decl({
+      prop: 'flex-basis',
+      value: matches[3],
+      source: decl.source
+    });
+    decl.parent.insertBefore(decl, grow);
+    decl.parent.insertBefore(decl, shrink);
+    decl.parent.insertBefore(decl, basis);
+    decl.remove();
+  }
+};
