From 6e72435b29d7b75be91e7ea5c256efc126392b7f Mon Sep 17 00:00:00 2001
From: Nicolas Coden <nicolas@ncoden.fr>
Date: Fri, 23 Mar 2018 23:14:36 +0100
Subject: [PATCH] chore: drop `normalize-scss` and upgrade to normalize.css
 v8.0.0

`normalize-scss` is not maintained and actually pollute the Sass namespace. Move back to a as-hard-to-maintain approach with a Sass mixin hosting the normalize.css code.

Note: `/* */` comments where replaced by `//` comments to not being output.
---
 .gitignore                                    |   2 +-
 _vendor/normalize-scss/sass/_normalize.scss   |   3 -
 .../sass/normalize/_import-now.scss           |  11 -
 .../sass/normalize/_normalize-mixin.scss      | 676 ------------------
 .../sass/normalize/_variables.scss            |  36 -
 .../sass/normalize/_vertical-rhythm.scss      |  61 --
 gulp/config.js                                |   1 -
 gulp/tasks/customizer.js                      |   1 -
 package.json                                  |   1 -
 scss/_global.scss                             |   8 +-
 scss/foundation.scss                          |   2 +-
 scss/vendor/normalize.scss                    | 281 ++++++++
 12 files changed, 284 insertions(+), 799 deletions(-)
 delete mode 100644 _vendor/normalize-scss/sass/_normalize.scss
 delete mode 100644 _vendor/normalize-scss/sass/normalize/_import-now.scss
 delete mode 100644 _vendor/normalize-scss/sass/normalize/_normalize-mixin.scss
 delete mode 100644 _vendor/normalize-scss/sass/normalize/_variables.scss
 delete mode 100644 _vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss
 create mode 100644 scss/vendor/normalize.scss

diff --git a/.gitignore b/.gitignore
index 1c23ecef2b..3cd765410f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,4 +54,4 @@ pizza/
 data.json
 npm-debug.log
 foundation-docs
-vendor
+./vendor
diff --git a/_vendor/normalize-scss/sass/_normalize.scss b/_vendor/normalize-scss/sass/_normalize.scss
deleted file mode 100644
index fd669eb9bc..0000000000
--- a/_vendor/normalize-scss/sass/_normalize.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-@import 'normalize/variables';
-@import 'normalize/vertical-rhythm';
-@import 'normalize/normalize-mixin';
diff --git a/_vendor/normalize-scss/sass/normalize/_import-now.scss b/_vendor/normalize-scss/sass/normalize/_import-now.scss
deleted file mode 100644
index aac5d2b698..0000000000
--- a/_vendor/normalize-scss/sass/normalize/_import-now.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// Import Now
-//
-// If you import this module directly, it will immediately output all the CSS
-// needed to normalize default HTML elements across all browsers.
-//
-// ```
-// @import "normalize/import-now";
-// ```
-
-@import '../normalize';
-@include normalize();
diff --git a/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss b/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss
deleted file mode 100644
index 70a8d3d371..0000000000
--- a/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss
+++ /dev/null
@@ -1,676 +0,0 @@
-// Helper function for the normalize() mixin.
-@function _normalize-include($section, $exclude: null) {
-  // Initialize the global variables needed by this function.
-  @if not global_variable_exists(_normalize-include) {
-    $_normalize-include: () !global;
-    $_normalize-exclude: () !global;
-  }
-  // Since we are given 2 parameters, set the global variables.
-  @if $exclude != null {
-    $include: $section;
-    // Sass doesn't have static variables, so the work-around is to stuff these
-    // values into global variables so we can access them in future calls.
-    $_normalize-include: if(type-of($include) == 'list', $include, ($include)) !global;
-    $_normalize-exclude: if(type-of($exclude) == 'list', $exclude, ($exclude)) !global;
-    @return true;
-  }
-
-  // Check if $section is in the $include list.
-  @if index($_normalize-include, $section) {
-    @return true;
-  }
-  // If $include is set to (all), make sure $section is not in $exclude.
-  @else if not index($_normalize-exclude, $section) and index($_normalize-include, all) {
-    @return true;
-  }
-  @return false;
-}
-
-@mixin normalize($include: (all), $exclude: ()) {
-  // Initialize the helper function by passing it this mixin's parameters.
-  $init: _normalize-include($include, $exclude);
-
-  // If we've customized any font variables, we'll need extra properties.
-  @if $base-font-size != 16px
-    or $base-line-height != 24px
-    or $base-unit != 'em'
-    or $h1-font-size != 2    * $base-font-size
-    or $h2-font-size != 1.5  * $base-font-size
-    or $h3-font-size != 1.17 * $base-font-size
-    or $h4-font-size != 1    * $base-font-size
-    or $h5-font-size != 0.83 * $base-font-size
-    or $h6-font-size != 0.67 * $base-font-size {
-    $normalize-vertical-rhythm: true !global;
-  }
-
-  /*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
-
-  @if _normalize-include(document) {
-    /* 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 on Windows Phone and in iOS.
-     */
-
-    html {
-      font-family: $base-font-family; /* 1 */
-      @if $normalize-vertical-rhythm {
-        // Correct old browser bug that prevented accessible resizing of text
-        // when root font-size is set with px or em.
-        font-size: ($base-font-size / 16px) * 100%;
-        line-height: ($base-line-height / $base-font-size) * 1em; /* 2 */
-      }
-      @else {
-        line-height: 1.15; /* 2 */
-      }
-      -ms-text-size-adjust: 100%; /* 3 */
-      -webkit-text-size-adjust: 100%; /* 3 */
-    }
-  }
-
-  @if _normalize-include(sections) {
-    /* Sections
-       ========================================================================== */
-
-    /**
-     * Remove the margin in all browsers (opinionated).
-     */
-
-    body {
-      margin: 0;
-    }
-
-    /**
-     * Add the correct display in IE 9-.
-     */
-
-    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 {
-      @include normalize-font-size($h1-font-size);
-      @if $normalize-vertical-rhythm {
-        @include normalize-line-height($h1-font-size);
-      }
-
-      @if $normalize-vertical-rhythm {
-        /* Set 1 unit of vertical rhythm on the top and bottom margins. */
-        @include normalize-margin(1 0, $h1-font-size);
-      }
-      @else {
-        margin: 0.67em 0;
-      }
-    }
-
-    @if $normalize-vertical-rhythm {
-      h2 {
-        @include normalize-font-size($h2-font-size);
-        @include normalize-line-height($h2-font-size);
-        @include normalize-margin(1 0, $h2-font-size);
-      }
-
-      h3 {
-        @include normalize-font-size($h3-font-size);
-        @include normalize-line-height($h3-font-size);
-        @include normalize-margin(1 0, $h3-font-size);
-      }
-
-      h4 {
-        @include normalize-font-size($h4-font-size);
-        @include normalize-line-height($h4-font-size);
-        @include normalize-margin(1 0, $h4-font-size);
-      }
-
-      h5 {
-        @include normalize-font-size($h5-font-size);
-        @include normalize-line-height($h5-font-size);
-        @include normalize-margin(1 0, $h5-font-size);
-      }
-
-      h6 {
-        @include normalize-font-size($h6-font-size);
-        @include normalize-line-height($h6-font-size);
-        @include normalize-margin(1 0, $h6-font-size);
-      }
-    }
-  }
-
-  @if _normalize-include(grouping) {
-    /* Grouping content
-       ========================================================================== */
-
-    @if $normalize-vertical-rhythm {
-      /**
-       * Set 1 unit of vertical rhythm on the top and bottom margin.
-       */
-
-      blockquote {
-        @include normalize-margin(1 $indent-amount);
-      }
-
-      dl,
-      ol,
-      ul {
-        @include normalize-margin(1 0);
-      }
-
-      /**
-       * Turn off margins on nested lists.
-       */
-
-      ol,
-      ul {
-        ol,
-        ul {
-          margin: 0;
-        }
-      }
-
-      dd {
-        margin: 0 0 0 $indent-amount;
-      }
-
-      ol,
-      ul {
-        padding: 0 0 0 $indent-amount;
-      }
-    }
-
-    /**
-     * Add the correct display in IE 9-.
-     */
-
-    figcaption,
-    figure {
-      display: block;
-    }
-
-    /**
-     * Add the correct margin in IE 8.
-     */
-
-    figure {
-      @if $normalize-vertical-rhythm {
-        @include normalize-margin(1 $indent-amount);
-      }
-      @else {
-        margin: 1em $indent-amount;
-      }
-    }
-
-    /**
-     * 1. Add the correct box sizing in Firefox.
-     * 2. Show the overflow in Edge and IE.
-     */
-
-    hr {
-      box-sizing: content-box; /* 1 */
-      height: 0; /* 1 */
-      overflow: visible; /* 2 */
-    }
-
-    /**
-     * Add the correct display in IE.
-     */
-
-    main {
-      display: block;
-    }
-
-    @if $normalize-vertical-rhythm {
-      /**
-       * Set 1 unit of vertical rhythm on the top and bottom margin.
-       */
-
-      p,
-      pre {
-        @include normalize-margin(1 0);
-      }
-    }
-
-    /**
-     * 1. Correct the inheritance and scaling of font size in all browsers.
-     * 2. Correct the odd `em` font sizing in all browsers.
-     */
-
-    pre {
-      font-family: monospace, monospace; /* 1 */
-      font-size: 1em; /* 2 */
-    }
-  }
-
-  @if _normalize-include(links) {
-    /* Links
-       ========================================================================== */
-
-    /**
-     * 1. Remove the gray background on active links in IE 10.
-     * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
-     */
-
-    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;
-    }
-  }
-
-  @if _normalize-include(text) {
-    /* Text-level semantics
-       ========================================================================== */
-
-    /**
-     * 1. Remove the bottom border in 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 */
-    }
-
-    /**
-     * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
-     */
-
-    b,
-    strong {
-      font-weight: inherit;
-    }
-
-    /**
-     * Add the correct font weight in Chrome, Edge, and Safari.
-     */
-
-    b,
-    strong {
-      font-weight: bolder;
-    }
-
-    /**
-     * 1. Correct the inheritance and scaling of font size in all browsers.
-     * 2. Correct the odd `em` font sizing in all browsers.
-     */
-
-    code,
-    kbd,
-    samp {
-      font-family: monospace, monospace; /* 1 */
-      font-size: 1em; /* 2 */
-    }
-
-    /**
-     * Add the correct font style in Android 4.3-.
-     */
-
-    dfn {
-      font-style: italic;
-    }
-
-    /**
-     * Add the correct background and color in IE 9-.
-     */
-
-    mark {
-      background-color: #ff0;
-      color: #000;
-    }
-
-    /**
-     * Add the correct font size in all browsers.
-     */
-
-    small {
-      font-size: 80%;
-    }
-
-    /**
-     * Prevent `sub` and `sup` elements from affecting the line height in
-     * all browsers.
-     */
-
-    sub,
-    sup {
-      font-size: 75%;
-      line-height: 0;
-      position: relative;
-      vertical-align: baseline;
-    }
-
-    sub {
-      bottom: -0.25em;
-    }
-
-    sup {
-      top: -0.5em;
-    }
-  }
-
-  @if _normalize-include(embedded) {
-    /* Embedded content
-       ========================================================================== */
-
-    /**
-     * Add the correct display in IE 9-.
-     */
-
-    audio,
-    video {
-      display: inline-block;
-    }
-
-    /**
-     * Add the correct display in iOS 4-7.
-     */
-
-    audio:not([controls]) {
-      display: none;
-      height: 0;
-    }
-
-    /**
-     * Remove the border on images inside links in IE 10-.
-     */
-
-    img {
-      border-style: none;
-    }
-
-    /**
-     * Hide the overflow in IE.
-     */
-
-    svg:not(:root) {
-      overflow: hidden;
-    }
-  }
-
-  @if _normalize-include(forms) {
-    /* Forms
-       ========================================================================== */
-
-    /**
-     * 1. Change the font styles in all browsers (opinionated).
-     * 2. Remove the margin in Firefox and Safari.
-     */
-
-    button,
-    input,
-    optgroup,
-    select,
-    textarea {
-      font-family: $base-font-family; /* 1 */
-      font-size: 100%; /* 1 */
-      @if $normalize-vertical-rhythm {
-        line-height: ($base-line-height / $base-font-size) * 1em; /* 1 */
-      }
-      @else {
-        line-height: 1.15; /* 1 */
-      }
-      margin: 0; /* 2 */
-    }
-
-    /**
-     * Show the overflow in IE.
-     */
-
-    button {
-      overflow: visible;
-    }
-
-    /**
-     * Remove the inheritance of text transform in Edge, Firefox, and IE.
-     * 1. Remove the inheritance of text transform in Firefox.
-     */
-
-    button,
-    select { /* 1 */
-      text-transform: none;
-    }
-
-    /**
-     * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
-     *    controls in Android 4.
-     * 2. Correct the inability to style clickable types in iOS and Safari.
-     */
-
-    button,
-    html [type="button"], /* 1 */
-    [type="reset"],
-    [type="submit"] {
-      -webkit-appearance: button; /* 2 */
-    }
-
-    button,
-    [type="button"],
-    [type="reset"],
-    [type="submit"] {
-
-      /**
-       * Remove the inner border and padding in Firefox.
-       */
-
-      &::-moz-focus-inner {
-        border-style: none;
-        padding: 0;
-      }
-
-      /**
-       * Restore the focus styles unset by the previous rule.
-       */
-
-      &:-moz-focusring {
-        outline: 1px dotted ButtonText;
-      }
-    }
-
-    /**
-     * Show the overflow in Edge.
-     */
-
-    input {
-      overflow: visible;
-    }
-
-    /**
-     * 1. Add the correct box sizing in IE 10-.
-     * 2. Remove the padding in IE 10-.
-     */
-
-    [type="checkbox"],
-    [type="radio"] {
-      box-sizing: border-box; /* 1 */
-      padding: 0; /* 2 */
-    }
-
-    /**
-     * Correct the cursor style of increment and decrement buttons in Chrome.
-     */
-
-    [type="number"]::-webkit-inner-spin-button,
-    [type="number"]::-webkit-outer-spin-button {
-      height: auto;
-    }
-
-    /**
-     * 1. Correct the odd appearance in Chrome and Safari.
-     * 2. Correct the outline style in Safari.
-     */
-
-    [type="search"] {
-      -webkit-appearance: textfield; /* 1 */
-      outline-offset: -2px; /* 2 */
-
-      /**
-       * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
-       */
-
-      &::-webkit-search-cancel-button,
-      &::-webkit-search-decoration {
-        -webkit-appearance: none;
-      }
-    }
-
-    /**
-     * 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 */
-    }
-
-    /**
-     * Change the border, margin, and padding in all browsers (opinionated).
-     */
-
-    fieldset {
-      border: 1px solid #c0c0c0;
-      margin: 0 2px;
-      padding: 0.35em 0.625em 0.75em;
-    }
-
-    /**
-     * 1. Correct the text wrapping in Edge and IE.
-     * 2. Correct the color inheritance from `fieldset` elements in IE.
-     * 3. Remove the padding so developers are not caught out when they zero out
-     *    `fieldset` elements in all browsers.
-     */
-
-    legend {
-      box-sizing: border-box; /* 1 */
-      display: table; /* 1 */
-      max-width: 100%; /* 1 */
-      padding: 0; /* 3 */
-      color: inherit; /* 2 */
-      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.
-     */
-
-    textarea {
-      overflow: auto;
-    }
-  }
-
-  @if _normalize-include(interactive) {
-    /* Interactive
-       ========================================================================== */
-
-    /*
-     * Add the correct display in Edge, IE, and Firefox.
-     */
-
-    details {
-      display: block;
-    }
-
-    /*
-     * Add the correct display in all browsers.
-     */
-
-    summary {
-      display: list-item;
-    }
-
-    /*
-     * Add the correct display in IE 9-.
-     */
-
-    menu {
-      display: block;
-
-      @if $normalize-vertical-rhythm {
-        /*
-         * 1. Set 1 unit of vertical rhythm on the top and bottom margin.
-         * 2. Set consistent space for the list style image.
-         */
-
-        @include normalize-margin(1 0); /* 1 */
-        padding: 0 0 0 $indent-amount; /* 2 */
-
-        /**
-         * Turn off margins on nested lists.
-         */
-
-        menu &,
-        ol &,
-        ul & {
-          margin: 0;
-        }
-      }
-    }
-  }
-
-  @if _normalize-include(scripting) {
-    /* Scripting
-       ========================================================================== */
-
-    /**
-     * Add the correct display in IE 9-.
-     */
-
-    canvas {
-      display: inline-block;
-    }
-
-    /**
-     * Add the correct display in IE.
-     */
-
-    template {
-      display: none;
-    }
-  }
-
-  @if _normalize-include(hidden) {
-    /* Hidden
-       ========================================================================== */
-
-    /**
-     * Add the correct display in IE 10-.
-     */
-
-    [hidden] {
-      display: none;
-    }
-  }
-}
diff --git a/_vendor/normalize-scss/sass/normalize/_variables.scss b/_vendor/normalize-scss/sass/normalize/_variables.scss
deleted file mode 100644
index 2f06b25388..0000000000
--- a/_vendor/normalize-scss/sass/normalize/_variables.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// Variables
-//
-// You can override the default values by setting the variables in your Sass
-// before importing the normalize-scss library.
-
-// The font size set on the root html element.
-$base-font-size: 16px !default;
-
-// The base line height determines the basic unit of vertical rhythm.
-$base-line-height: 24px !default;
-
-// The length unit in which to output vertical rhythm values.
-// Supported values: px, em, rem.
-$base-unit: 'em' !default;
-
-// The default font family.
-$base-font-family: sans-serif !default;
-
-// The font sizes for h1-h6.
-$h1-font-size: 2    * $base-font-size !default;
-$h2-font-size: 1.5  * $base-font-size !default;
-$h3-font-size: 1.17 * $base-font-size !default;
-$h4-font-size: 1    * $base-font-size !default;
-$h5-font-size: 0.83 * $base-font-size !default;
-$h6-font-size: 0.67 * $base-font-size !default;
-
-// The amount lists and blockquotes are indented.
-$indent-amount: 40px !default;
-
-// The following variable controls whether normalize-scss will output
-// font-sizes, line-heights and block-level top/bottom margins that form a basic
-// vertical rhythm on the page, which differs from the original Normalize.css.
-// However, changing any of the variables above will cause
-// $normalize-vertical-rhythm to be automatically set to true.
-$normalize-vertical-rhythm: false !default;
diff --git a/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss b/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss
deleted file mode 100644
index 4f53647ca0..0000000000
--- a/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// Vertical Rhythm
-//
-// This is the minimal amount of code needed to create vertical rhythm in our
-// CSS. If you are looking for a robust solution, look at the excellent Typey
-// library. @see https://github.com/jptaranto/typey
-
-@function normalize-rhythm($value, $relative-to: $base-font-size, $unit: $base-unit) {
-  @if unit($value) != px {
-    @error "The normalize vertical-rhythm module only supports px inputs. The typey library is better.";
-  }
-  @if $unit == rem {
-    @return ($value / $base-font-size) * 1rem;
-  }
-  @else if $unit == em {
-    @return ($value / $relative-to) * 1em;
-  }
-  @else { // $unit == px
-    @return $value;
-  }
-}
-
-@mixin normalize-font-size($value, $relative-to: $base-font-size) {
-  @if unit($value) != 'px' {
-    @error "normalize-font-size() only supports px inputs. The typey library is better.";
-  }
-  font-size: normalize-rhythm($value, $relative-to);
-}
-
-@mixin normalize-rhythm($property, $values, $relative-to: $base-font-size) {
-  $value-list: $values;
-  $sep: space;
-  @if type-of($values) == 'list' {
-    $sep: list-separator($values);
-  }
-  @else {
-    $value-list: append((), $values);
-  }
-
-  $normalized-values: ();
-  @each $value in $value-list {
-    @if unitless($value) and $value != 0 {
-      $value: $value * normalize-rhythm($base-line-height, $relative-to);
-    }
-    $normalized-values: append($normalized-values, $value, $sep);
-  }
-  #{$property}: $normalized-values;
-}
-
-@mixin normalize-margin($values, $relative-to: $base-font-size) {
-  @include normalize-rhythm(margin, $values, $relative-to);
-}
-
-@mixin normalize-line-height($font-size, $min-line-padding: 2px) {
-  $lines: ceil($font-size / $base-line-height);
-  // If lines are cramped include some extra leading.
-  @if ($lines * $base-line-height - $font-size) < ($min-line-padding * 2) {
-    $lines: $lines + 1;
-  }
-  @include normalize-rhythm(line-height, $lines, $font-size);
-}
diff --git a/gulp/config.js b/gulp/config.js
index 4716f81d64..333b062c32 100644
--- a/gulp/config.js
+++ b/gulp/config.js
@@ -24,7 +24,6 @@ module.exports = {
 
   // Sass
   SASS_DEPS_FILES: [
-    'node_modules/@(normalize-scss)/sass/**/*.scss',
     'node_modules/@(sassy-lists)/stylesheets/helpers/_missing-dependencies.scss',
     'node_modules/@(sassy-lists)/stylesheets/helpers/_true.scss',
     'node_modules/@(sassy-lists)/stylesheets/functions/_contain.scss',
diff --git a/gulp/tasks/customizer.js b/gulp/tasks/customizer.js
index 4d41800f1a..82e55fe607 100644
--- a/gulp/tasks/customizer.js
+++ b/gulp/tasks/customizer.js
@@ -67,7 +67,6 @@ gulp.task('customizer:loadConfig', function(done) {
 // Prepare dependencies
 gulp.task('customizer:prepareSassDeps', function() {
   return gulp.src([
-      'node_modules/@(normalize-scss)/sass/**/*.scss',
       'node_modules/@(sassy-lists)/stylesheets/helpers/missing-dependencies',
       'node_modules/@(sassy-lists)/stylesheets/helpers/true',
       'node_modules/@(sassy-lists)/stylesheets/functions/contain',
diff --git a/package.json b/package.json
index 2e58a47daf..d1f44b97c0 100644
--- a/package.json
+++ b/package.json
@@ -83,7 +83,6 @@
     "mocha-headless-chrome": "^1.8.2",
     "motion-ui": "^1.1.0",
     "multiline": "^1.0.2",
-    "normalize-scss": "6.0.0",
     "octophant": "^1.0.0",
     "opener": "^1.4.3",
     "panini": "^1.6.2",
diff --git a/scss/_global.scss b/scss/_global.scss
index c7fbbc221f..78ee3112ab 100644
--- a/scss/_global.scss
+++ b/scss/_global.scss
@@ -134,7 +134,7 @@ $global-color-pick-contrast-tolerance: 0 !default;
 @include add-foundation-colors;
 
 @mixin foundation-global-styles {
-  @include -zf-normalize;
+  @include foundation-normalize;
 
   // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript
   .foundation-mq {
@@ -242,9 +242,3 @@ $global-color-pick-contrast-tolerance: 0 !default;
     display: none !important;
   }
 }
-
-/// Loads normalize.css.
-/// @access private
-@mixin -zf-normalize {
-  @include normalize();
-}
diff --git a/scss/foundation.scss b/scss/foundation.scss
index 9dd121fc25..0b3b837f10 100644
--- a/scss/foundation.scss
+++ b/scss/foundation.scss
@@ -6,7 +6,7 @@
  */
 
 // Dependencies
-@import '../_vendor/normalize-scss/sass/normalize';
+@import 'vendor/normalize';
 @import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';
 @import '../_vendor/sassy-lists/stylesheets/helpers/true';
 @import '../_vendor/sassy-lists/stylesheets/functions/contain';
diff --git a/scss/vendor/normalize.scss b/scss/vendor/normalize.scss
new file mode 100644
index 0000000000..1023303a0b
--- /dev/null
+++ b/scss/vendor/normalize.scss
@@ -0,0 +1,281 @@
+@mixin foundation-normalize() {
+  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
+
+  // Document
+  // ==========================================================================
+
+  // 1. Correct the line height in all browsers.
+  // 2. Prevent adjustments of font size after orientation changes in iOS.
+
+  html {
+    line-height: 1.15; // 1
+    -webkit-text-size-adjust: 100%; // 2
+  }
+
+  // Sections
+  // ==========================================================================
+
+  // Remove the margin in all browsers.
+
+  body {
+    margin: 0;
+  }
+
+  // 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
+  // ==========================================================================
+
+  // 1. Add the correct box sizing in Firefox.
+  // 2. Show the overflow in Edge and IE.
+
+  hr {
+    box-sizing: content-box; // 1
+    height: 0; // 1
+    overflow: visible; // 2
+  }
+
+  // 1. Correct the inheritance and scaling of font size in all browsers.
+  // 2. Correct the odd `em` font sizing in all browsers.
+
+  pre {
+    font-family: monospace, monospace; // 1
+    font-size: 1em; // 2
+  }
+
+  // Text-level semantics
+  // ==========================================================================
+
+  // Remove the gray background on active links in IE 10.
+
+  a {
+    background-color: transparent;
+  }
+
+  // 1. Remove the bottom border in Chrome 57-
+  // 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
+  }
+
+  // Add the correct font weight in Chrome, Edge, and Safari.
+
+  b,
+  strong {
+    font-weight: bolder;
+  }
+
+  // 1. Correct the inheritance and scaling of font size in all browsers.
+  // 2. Correct the odd `em` font sizing in all browsers.
+
+  code,
+  kbd,
+  samp {
+    font-family: monospace, monospace; // 1
+    font-size: 1em; // 2
+  }
+
+  // Add the correct font size in all browsers.
+
+  small {
+    font-size: 80%;
+  }
+
+  // Prevent `sub` and `sup` elements from affecting the line height in
+  // all browsers.
+
+  sub,
+  sup {
+    font-size: 75%;
+    line-height: 0;
+    position: relative;
+    vertical-align: baseline;
+  }
+
+  sub {
+    bottom: -0.25em;
+  }
+
+  sup {
+    top: -0.5em;
+  }
+
+  // Embedded content
+  // ==========================================================================
+
+  // Remove the border on images inside links in IE 10.
+
+  img {
+    border-style: none;
+  }
+
+  // Forms
+  // ==========================================================================
+
+  // 1. Change the font styles in all browsers.
+  // 2. Remove the margin in Firefox and Safari.
+
+  button,
+  input,
+  optgroup,
+  select,
+  textarea {
+    font-family: inherit; // 1
+    font-size: 100%; // 1
+    line-height: 1.15; // 1
+    margin: 0; // 2
+  }
+
+  // Show the overflow in IE.
+  // 1. Show the overflow in Edge.
+
+  button,
+  input { // 1
+    overflow: visible;
+  }
+
+  // Remove the inheritance of text transform in Edge, Firefox, and IE.
+  // 1. Remove the inheritance of text transform in Firefox.
+
+  button,
+  select { // 1
+    text-transform: none;
+  }
+
+  // Correct the inability to style clickable types in iOS and Safari.
+
+  button,
+  [type="button"],
+  [type="reset"],
+  [type="submit"] {
+    -webkit-appearance: button;
+  }
+
+  // Remove the inner border and padding in Firefox.
+
+  button::-moz-focus-inner,
+  [type="button"]::-moz-focus-inner,
+  [type="reset"]::-moz-focus-inner,
+  [type="submit"]::-moz-focus-inner {
+    border-style: none;
+    padding: 0;
+  }
+
+  // Restore the focus styles unset by the previous rule.
+
+  button:-moz-focusring,
+  [type="button"]:-moz-focusring,
+  [type="reset"]:-moz-focusring,
+  [type="submit"]:-moz-focusring {
+    outline: 1px dotted ButtonText;
+  }
+
+  // Correct the padding in Firefox.
+
+  fieldset {
+    padding: 0.35em 0.75em 0.625em;
+  }
+
+  // 1. Correct the text wrapping in Edge and IE.
+  // 2. Correct the color inheritance from `fieldset` elements in IE.
+  // 3. Remove the padding so developers are not caught out when they zero out
+  //    `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
+  }
+
+  // Add the correct vertical alignment in Chrome, Firefox, and Opera.
+
+  progress {
+    vertical-align: baseline;
+  }
+
+  // Remove the default vertical scrollbar in IE 10+.
+
+  textarea {
+    overflow: auto;
+  }
+
+  // 1. Add the correct box sizing in IE 10.
+  // 2. Remove the padding in IE 10.
+
+  [type="checkbox"],
+  [type="radio"] {
+    box-sizing: border-box; // 1
+    padding: 0; // 2
+  }
+
+  // Correct the cursor style of increment and decrement buttons in Chrome.
+
+  [type="number"]::-webkit-inner-spin-button,
+  [type="number"]::-webkit-outer-spin-button {
+    height: auto;
+  }
+
+  // 1. Correct the odd appearance in Chrome and Safari.
+  // 2. Correct the outline style in Safari.
+
+  [type="search"] {
+    -webkit-appearance: textfield; // 1
+    outline-offset: -2px; // 2
+  }
+
+  // Remove the inner padding in Chrome and Safari on macOS.
+
+  [type="search"]::-webkit-search-decoration {
+    -webkit-appearance: none;
+  }
+
+  // 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 Edge, IE 10+, and Firefox.
+
+  details {
+    display: block;
+  }
+
+  // Add the correct display in all browsers.
+
+  summary {
+    display: list-item;
+  }
+
+  // Misc
+  // ==========================================================================
+
+  // Add the correct display in IE 10+.
+
+  template {
+    display: none;
+  }
+
+  // Add the correct display in IE 10.
+
+  [hidden] {
+    display: none;
+  }
+}