diff --git a/node_modules/material-design-lite/src/shadow/README.md b/node_modules/material-design-lite/src/shadow/README.md
new file mode 100644
index 0000000..58b558f
--- /dev/null
+++ b/node_modules/material-design-lite/src/shadow/README.md
@@ -0,0 +1,51 @@
+## Introduction
+
+The Material Design Lite (MDL) **shadow** is not a component in the same sense as an MDL card, menu, or textbox; it is a visual effect that can be assigned to a user interface element. The effect simulates a three-dimensional positioning of the element, as though it is slightly raised above the surface it rests upon &mdash; a positive *z-axis* value, in user interface terms. The shadow starts at the edges of the element and gradually fades outward, providing a realistic 3-D effect.
+
+Shadows are a convenient and intuitive means of distinguishing an element from its surroundings. A shadow can draw the user's eye to an object and emphasize the object's importance, uniqueness, or immediacy.
+
+Shadows are a well-established feature in user interfaces, and provide users with a visual clue to an object's intended use or value. Their design and use is an important factor in the overall user experience.
+
+### To include an MDL **shadow** effect:
+
+&nbsp;1. Code an element, such as a `<div>`, that is to receive the shadow effect; size and style it as desired, and add any required content.
+```html
+<div>
+Some content
+</div>
+```
+&nbsp;2. Add an MDL shadow class to the element using the `class` attribute.
+```html
+<div class="mdl-shadow--4dp">
+Some content
+</div>
+```
+
+The shadowed component is ready for use.
+
+#### Examples
+
+A div with a user-specified class and a small shadow.
+
+```html
+<div class="my-shadow-card mdl-shadow--2dp">Small shadow</div>
+```
+
+A div with a user-specified class and a medium-large shadow.
+
+```html
+<div class="my-shadow-card mdl-shadow--6dp">Medium-large shadow</div>
+```
+
+## Configuration options
+
+The MDL CSS classes apply various predefined visual shadows to the element. The table below lists the available classes and their effects.
+
+| MDL class | Effect | Remarks |
+|-----------|--------|---------|
+| `mdl-shadow--2dp` | Assigns a small shadow to the object | Optional; if omitted, no shadow is present |
+| `mdl-shadow--3dp` | Assigns a medium-small shadow to the object | Optional; if omitted, no shadow is present |
+| `mdl-shadow--4dp` | Assigns a medium shadow to the object | Optional; if omitted, no shadow is present |
+| `mdl-shadow--6dp` | Assigns a medium-large shadow to the object | Optional; if omitted, no shadow is present |
+| `mdl-shadow--8dp` | Assigns a large shadow to the object | Optional; if omitted, no shadow is present |
+| `mdl-shadow--16dp` | Assigns an extra-large shadow to the object | Optional; if omitted, no shadow is present|
diff --git a/node_modules/material-design-lite/src/shadow/_shadow.scss b/node_modules/material-design-lite/src/shadow/_shadow.scss
new file mode 100644
index 0000000..708f921
--- /dev/null
+++ b/node_modules/material-design-lite/src/shadow/_shadow.scss
@@ -0,0 +1,46 @@
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@import "../variables";
+@import "../mixins";
+
+.mdl-shadow--2dp {
+  @include shadow-2dp();
+}
+
+.mdl-shadow--3dp {
+  @include shadow-3dp();
+}
+
+.mdl-shadow--4dp {
+  @include shadow-4dp();
+}
+
+.mdl-shadow--6dp {
+  @include shadow-6dp();
+}
+
+.mdl-shadow--8dp {
+  @include shadow-8dp();
+}
+
+.mdl-shadow--16dp {
+  @include shadow-16dp();
+}
+
+.mdl-shadow--24dp {
+  @include shadow-24dp();
+}
diff --git a/node_modules/material-design-lite/src/shadow/demo.css b/node_modules/material-design-lite/src/shadow/demo.css
new file mode 100644
index 0000000..6addeed
--- /dev/null
+++ b/node_modules/material-design-lite/src/shadow/demo.css
@@ -0,0 +1,43 @@
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.demo-page--shadow .demo-preview-block {
+  height: 100px;
+}
+
+.demo-shadow-card {
+  background-color: #fff;
+  border-radius: 2px;
+  display: block;
+  height: 72px;
+  margin-bottom: 20px;
+  margin-right: 32px;
+  padding: 10px;
+  text-align: center;
+  float: left;
+  color: #9E9E9E;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  transition-property: opacity, transform;
+  width: 72px;
+}
+
+@media screen and (max-width: 360px ) {
+  .demo-shadow-card {
+    width: 27px;
+  }
+}
diff --git a/node_modules/material-design-lite/src/shadow/demo.html b/node_modules/material-design-lite/src/shadow/demo.html
new file mode 100644
index 0000000..2b09571
--- /dev/null
+++ b/node_modules/material-design-lite/src/shadow/demo.html
@@ -0,0 +1,8 @@
+  <div class="demo-preview-block demo-page--shadow">
+    <div class="demo-shadow-card mdl-shadow--2dp">2dp</div>
+    <div class="demo-shadow-card mdl-shadow--3dp">3dp</div>
+    <div class="demo-shadow-card mdl-shadow--4dp">4dp</div>
+    <div class="demo-shadow-card mdl-shadow--6dp">6dp</div>
+    <div class="demo-shadow-card mdl-shadow--8dp">8dp</div>
+    <div class="demo-shadow-card mdl-shadow--16dp">16dp</div>
+  </div>
