Project import generated by Copybara.
GitOrigin-RevId: 63746295f1a5ab5a619056791995793d65529e62
diff --git a/node_modules/mdl-ext/src/grid/_grid-eqjs.scss b/node_modules/mdl-ext/src/grid/_grid-eqjs.scss
new file mode 100644
index 0000000..8068b79
--- /dev/null
+++ b/node_modules/mdl-ext/src/grid/_grid-eqjs.scss
@@ -0,0 +1,321 @@
+@charset "UTF-8";
+
+/**
+ * This code is modified from Material Design Lite _grid.sass,
+ * which is Licensed under the Apache License, Version 2.0
+ * 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.
+ *
+ */
+
+//////////////////////////////////////////////////////////////////////////////////
+//
+// Element queries for _grid.scss, based on: https://github.com/Snugug/eq.js
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+// Use of this module requires the user to include variables from material-design-lite in hers/his main SASS module
+//@import "../../node_modules/material-design-lite/src/variables";
+.mdlext-grid {
+ display: flex;
+ flex-flow: row wrap;
+ margin: 0 auto;
+ align-items: stretch;
+
+ &.mdlext-grid--no-spacing {
+ padding: 0;
+ }
+
+ & > .mdlext-cell {
+ box-sizing: border-box;
+ }
+
+ & > .mdlext-cell--top {
+ align-self: flex-start;
+ }
+
+ & > .mdlext-cell--middle {
+ align-self: center;
+ }
+
+ & > .mdlext-cell--bottom {
+ align-self: flex-end;
+ }
+
+ & > .mdlext-cell--stretch {
+ align-self: stretch;
+ }
+
+ .mdlext-grid--no-spacing > .mdlext-cell {
+ margin: 0;
+ }
+
+ // Define order override classes.
+ @for $i from 1 through $grid-max-columns {
+ & > .mdlext-cell--order-#{$i} {
+ order: $i;
+ }
+ }
+}
+
+// Mixins for width calculation.
+@mixin _partial-size($size, $columns, $gutter) {
+ width: calc(#{(($size / $columns) * 100) + "%"} - #{$gutter});
+}
+@mixin _full-size($gutter) {
+ @include _partial-size(1, 1, $gutter);
+}
+@mixin _offset-size($size, $columns, $gutter) {
+ margin-left: calc(#{(($size / $columns) * 100) + "%"} + #{$gutter / 2});
+}
+
+@mixin _partial-size-no-spacing($size, $columns) {
+ width: #{(($size / $columns) * 100) + "%"};
+}
+@mixin _full-size-no-spacing() {
+ @include _partial-size-no-spacing(1, 1);
+}
+@mixin _offset-size-no-spacing($size, $columns) {
+ margin-left: #{(($size / $columns) * 100) + "%"};
+}
+
+
+.mdlext-grid {
+
+ @include eq-pts((
+ grid_phone: 0,
+ grid_tablet: strip-unit($grid-tablet-breakpoint),
+ grid_desktop: strip-unit($grid-desktop-breakpoint)
+ ));
+
+ ////////// Phone //////////
+ @include eq('grid_phone') {
+ padding: $grid-phone-margin - ($grid-phone-gutter / 2);
+
+ & > .mdlext-cell {
+ margin: $grid-phone-gutter / 2;
+ @include _partial-size($grid-cell-default-columns, $grid-phone-columns, $grid-phone-gutter);
+ }
+
+ & > .mdlext-cell--hide-phone {
+ display: none !important;
+ }
+
+ // Define order override classes.
+ @for $i from 1 through $grid-max-columns {
+ & > .mdlext-cell--order-#{$i}-phone.mdlext-cell--order-#{$i}-phone {
+ order: $i;
+ }
+ }
+
+ // Define partial sizes for columnNumber < totalColumns.
+ @for $i from 1 through ($grid-phone-columns - 1) {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {
+ @include _partial-size($i, $grid-phone-columns, $grid-phone-gutter);
+ }
+ }
+
+ // Define 100% for everything else.
+ @for $i from $grid-phone-columns through $grid-desktop-columns {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {
+ @include _full-size($grid-phone-gutter);
+ }
+ }
+
+ // Define valid phone offsets.
+ @for $i from 1 through ($grid-phone-columns - 1) {
+ & > .mdlext-cell--#{$i}-offset,
+ & > .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {
+ @include _offset-size($i, $grid-phone-columns, $grid-phone-gutter);
+ }
+ }
+
+ &.mdlext-grid--no-spacing {
+ padding: 0;
+
+ & > .mdlext-cell {
+ margin: 0;
+ @include _partial-size-no-spacing($grid-cell-default-columns, $grid-phone-columns);
+ }
+
+ // Define partial sizes for columnNumber < totalColumns.
+ @for $i from 1 through ($grid-phone-columns - 1) {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {
+ @include _partial-size-no-spacing($i, $grid-phone-columns);
+ }
+ }
+
+ // Define 100% for everything else.
+ @for $i from $grid-phone-columns through $grid-desktop-columns {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {
+ @include _full-size-no-spacing();
+ }
+ }
+
+ // Define valid phone offsets.
+ @for $i from 1 through ($grid-phone-columns - 1) {
+ & > .mdlext-cell--#{$i}-offset,
+ & > .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {
+ @include _offset-size-no-spacing($i, $grid-phone-columns);
+ }
+ }
+ }
+ }
+
+ ////////// Tablet //////////
+ @include eq('grid_tablet') {
+ padding: $grid-tablet-margin - ($grid-tablet-gutter / 2);
+
+ & > .mdlext-cell {
+ margin: $grid-tablet-gutter / 2;
+ @include _partial-size($grid-cell-default-columns, $grid-tablet-columns, $grid-tablet-gutter);
+ }
+
+ & > .mdlext-cell--hide-tablet {
+ display: none !important;
+ }
+
+ // Define order override classes.
+ @for $i from 1 through $grid-max-columns {
+ & > .mdlext-cell--order-#{$i}-tablet.mdlext-cell--order-#{$i}-tablet {
+ order: $i;
+ }
+ }
+
+ // Define partial sizes for columnNumber < totalColumns.
+ @for $i from 1 through ($grid-tablet-columns - 1) {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {
+ @include _partial-size($i, $grid-tablet-columns, $grid-tablet-gutter);
+ }
+ }
+
+ // Define 100% for everything else.
+ @for $i from $grid-tablet-columns through $grid-desktop-columns {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {
+ @include _full-size($grid-tablet-gutter);
+ }
+ }
+
+ // Define valid tablet offsets.
+ @for $i from 1 through ($grid-tablet-columns - 1) {
+ & > .mdlext-cell--#{$i}-offset,
+ & > .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {
+ @include _offset-size($i, $grid-tablet-columns, $grid-tablet-gutter);
+ }
+ }
+
+ &.mdlext-grid--no-spacing {
+ padding: 0;
+
+ & > .mdlext-cell {
+ margin: 0;
+ @include _partial-size-no-spacing($grid-cell-default-columns, $grid-tablet-columns);
+ }
+
+ // Define partial sizes for columnNumber < totalColumns.
+ @for $i from 1 through ($grid-tablet-columns - 1) {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {
+ @include _partial-size-no-spacing($i, $grid-tablet-columns);
+ }
+ }
+
+ // Define 100% for everything else.
+ @for $i from $grid-tablet-columns through $grid-desktop-columns {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {
+ @include _full-size-no-spacing();
+ }
+ }
+
+ // Define valid tablet offsets.
+ @for $i from 1 through ($grid-tablet-columns - 1) {
+ & > .mdlext-cell--#{$i}-offset,
+ & > .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {
+ @include _offset-size-no-spacing($i, $grid-tablet-columns);
+ }
+ }
+ }
+ }
+
+ ////////// Desktop //////////
+ @include eq('grid_desktop') {
+ padding: $grid-desktop-margin - ($grid-desktop-gutter / 2);
+
+ & > .mdlext-cell {
+ margin: $grid-desktop-gutter / 2;
+ @include _partial-size($grid-cell-default-columns, $grid-desktop-columns, $grid-desktop-gutter);
+ }
+
+ & > .mdlext-cell--hide-desktop {
+ display: none !important;
+ }
+
+ // Define order override classes.
+ @for $i from 1 through $grid-max-columns {
+ & > .mdlext-cell--order-#{$i}-desktop.mdlext-cell--order-#{$i}-desktop {
+ order: $i;
+ }
+ }
+
+ // Define partial sizes for all numbers of columns.
+ @for $i from 1 through $grid-desktop-columns {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {
+ @include _partial-size($i, $grid-desktop-columns, $grid-desktop-gutter);
+ }
+ }
+
+ // Define valid desktop offsets.
+ @for $i from 1 through ($grid-desktop-columns - 1) {
+ & > .mdlext-cell--#{$i}-offset,
+ & > .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {
+ @include _offset-size($i, $grid-desktop-columns, $grid-desktop-gutter);
+ }
+ }
+
+ &.mdlext-grid--no-spacing {
+ padding: 0;
+
+ & > .mdlext-cell {
+ margin: 0;
+ @include _partial-size-no-spacing($grid-cell-default-columns, $grid-desktop-columns);
+ }
+
+ // Define partial sizes for all numbers of columns.
+ @for $i from 1 through $grid-desktop-columns {
+ & > .mdlext-cell--#{$i}-col,
+ & > .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {
+ @include _partial-size-no-spacing($i, $grid-desktop-columns);
+ }
+ }
+
+ // Define valid desktop offsets.
+ @for $i from 1 through ($grid-desktop-columns - 1) {
+ & > .mdlext-cell--#{$i}-offset,
+ & > .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {
+ @include _offset-size-no-spacing($i, $grid-desktop-columns);
+ }
+ }
+ }
+ }
+}
+
+@include eq-selectors;
diff --git a/node_modules/mdl-ext/src/grid/_grid-media-queries.scss b/node_modules/mdl-ext/src/grid/_grid-media-queries.scss
new file mode 100644
index 0000000..c942ff1
--- /dev/null
+++ b/node_modules/mdl-ext/src/grid/_grid-media-queries.scss
@@ -0,0 +1,238 @@
+@charset "UTF-8";
+
+/**
+ * This code is modified from Material Design Lite _grid.sass,
+ * which is Licensed under the Apache License, Version 2.0
+ * 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.
+ *
+ */
+
+///////////////////////////////////////////////////////////////////////
+//
+// Grid media queries, modified from Material Design Lite _grid.sass
+//
+///////////////////////////////////////////////////////////////////////
+// Use of this module requires the user to include variables from material-design-lite in hers/his main SASS module
+//@import "../../node_modules/material-design-lite/src/variables";
+
+
+.mdlext-grid {
+ display: flex;
+ flex-flow: row wrap;
+ margin: 0 auto;
+ align-items: stretch;
+
+ &.mdlext-grid--no-spacing {
+ padding: 0;
+ }
+}
+
+.mdlext-cell {
+ box-sizing: border-box;
+}
+
+
+.mdlext-cell--top {
+ align-self: flex-start;
+}
+
+.mdlext-cell--middle {
+ align-self: center;
+}
+
+.mdlext-cell--bottom {
+ align-self: flex-end;
+}
+
+.mdlext-cell--stretch {
+ align-self: stretch;
+}
+
+.mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell {
+ margin: 0;
+}
+
+// Define order override classes.
+@for $i from 1 through $grid-max-columns {
+ .mdlext-cell--order-#{$i} {
+ order: $i;
+ }
+}
+
+
+// Mixins for width calculation.
+@mixin partial-size($size, $columns, $gutter) {
+ width: calc(#{(($size / $columns) * 100) + "%"} - #{$gutter});
+
+ .mdlext-grid--no-spacing > & {
+ width: #{(($size / $columns) * 100) + "%"};
+ }
+}
+
+@mixin full-size($gutter) {
+ @include partial-size(1, 1, $gutter);
+}
+
+@mixin offset-size($size, $columns, $gutter) {
+ margin-left: calc(#{(($size / $columns) * 100) + "%"} + #{$gutter / 2});
+
+ .mdlext-grid.mdlext-grid--no-spacing > & {
+ margin-left: #{(($size / $columns) * 100) + "%"};
+ }
+}
+
+
+
+////////// Phone //////////
+
+/* stylelint-disable */
+@media (max-width: $grid-tablet-breakpoint - 1) {
+/* stylelint-enable */
+ .mdlext-grid {
+ padding: $grid-phone-margin - ($grid-phone-gutter / 2);
+ }
+
+ .mdlext-cell {
+ margin: $grid-phone-gutter / 2;
+ @include partial-size($grid-cell-default-columns, $grid-phone-columns, $grid-phone-gutter);
+ }
+
+ .mdlext-cell--hide-phone {
+ display: none !important;
+ }
+
+ // Define order override classes.
+ @for $i from 1 through $grid-max-columns {
+ .mdlext-cell--order-#{$i}-phone.mdlext-cell--order-#{$i}-phone {
+ order: $i;
+ }
+ }
+
+ // Define partial sizes for columnNumber < totalColumns.
+ @for $i from 1 through ($grid-phone-columns - 1) {
+ .mdlext-cell--#{$i}-col,
+ .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {
+ @include partial-size($i, $grid-phone-columns, $grid-phone-gutter);
+ }
+ }
+
+ // Define 100% for everything else.
+ @for $i from $grid-phone-columns through $grid-desktop-columns {
+ .mdlext-cell--#{$i}-col,
+ .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {
+ @include full-size($grid-phone-gutter);
+ }
+ }
+
+ // Define valid phone offsets.
+ @for $i from 1 through ($grid-phone-columns - 1) {
+ .mdlext-cell--#{$i}-offset,
+ .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {
+ @include offset-size($i, $grid-phone-columns, $grid-phone-gutter);
+ }
+ }
+}
+
+
+////////// Tablet //////////
+
+/* stylelint-disable */
+@media (min-width: $grid-tablet-breakpoint) and (max-width: $grid-desktop-breakpoint - 1) { /* stylelint-enable */
+ .mdlext-grid {
+ padding: $grid-tablet-margin - ($grid-tablet-gutter / 2);
+ }
+
+ .mdlext-cell {
+ margin: $grid-tablet-gutter / 2;
+ @include partial-size($grid-cell-default-columns, $grid-tablet-columns, $grid-tablet-gutter);
+ }
+
+ .mdlext-cell--hide-tablet {
+ display: none !important;
+ }
+
+ // Define order override classes.
+ @for $i from 1 through $grid-max-columns {
+ .mdlext-cell--order-#{$i}-tablet.mdlext-cell--order-#{$i}-tablet {
+ order: $i;
+ }
+ }
+
+ // Define partial sizes for columnNumber < totalColumns.
+ @for $i from 1 through ($grid-tablet-columns - 1) {
+ .mdlext-cell--#{$i}-col,
+ .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {
+ @include partial-size($i, $grid-tablet-columns, $grid-tablet-gutter);
+ }
+ }
+
+ // Define 100% for everything else.
+ @for $i from $grid-tablet-columns through $grid-desktop-columns {
+ .mdlext-cell--#{$i}-col,
+ .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {
+ @include full-size($grid-tablet-gutter);
+ }
+ }
+
+ // Define valid tablet offsets.
+ @for $i from 1 through ($grid-tablet-columns - 1) {
+ .mdlext-cell--#{$i}-offset,
+ .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {
+ @include offset-size($i, $grid-tablet-columns, $grid-tablet-gutter);
+ }
+ }
+}
+
+
+////////// Desktop //////////
+
+@media (min-width: $grid-desktop-breakpoint) {
+ .mdlext-grid {
+ padding: $grid-desktop-margin - ($grid-desktop-gutter / 2);
+ }
+
+ .mdlext-cell {
+ margin: $grid-desktop-gutter / 2;
+ @include partial-size($grid-cell-default-columns, $grid-desktop-columns, $grid-desktop-gutter);
+ }
+
+ .mdlext-cell--hide-desktop {
+ display: none !important;
+ }
+
+ // Define order override classes.
+ @for $i from 1 through $grid-max-columns {
+ .mdlext-cell--order-#{$i}-desktop.mdlext-cell--order-#{$i}-desktop {
+ order: $i;
+ }
+ }
+
+ // Define partial sizes for all numbers of columns.
+ @for $i from 1 through $grid-desktop-columns {
+ .mdlext-cell--#{$i}-col,
+ .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {
+ @include partial-size($i, $grid-desktop-columns, $grid-desktop-gutter);
+ }
+ }
+
+ // Define valid desktop offsets.
+ @for $i from 1 through ($grid-desktop-columns - 1) {
+ .mdlext-cell--#{$i}-offset,
+ .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {
+ @include offset-size($i, $grid-desktop-columns, $grid-desktop-gutter);
+ }
+ }
+}
+
diff --git a/node_modules/mdl-ext/src/grid/readme.md b/node_modules/mdl-ext/src/grid/readme.md
new file mode 100644
index 0000000..569e7c8
--- /dev/null
+++ b/node_modules/mdl-ext/src/grid/readme.md
@@ -0,0 +1,52 @@
+# Grid
+
+![Grid](../../etc/grid.png)
+
+A responsive **grid** based on **element queries** in favour of media queries.
+
+## Introduction
+Grids provide users with a way to view content in an organized manner that might otherwise be difficult to
+understand or retain. Their design and use is an important factor in the overall user experience.
+
+The Material Design Lite Ext (MDLEXT) grid has two versions; one version based on media queries and one version
+based on **element queries**. The MDLEXT grid is a copy of the
+[Material Design Lite grid](https://github.com/google/material-design-lite/tree/master/src/grid) - with additional
+element queries support to distribute grid cells in a more responsive fashion.
+
+### How to use the eq.js version of MDLEXT grid
+
+ 1. Install [eq.js](https://github.com/Snugug/eq.js).
+```sh
+$ npm install --save eq.js
+```
+
+ 2. Import `mdl-ext-eqjs.scss` in your main SASS file. Remove `mdl-ext.scss` - they can not co exist.
+```css
+@import '../node_modules/mdl-ext/src/mdl-ext-eqjs';
+```
+
+ 3. Import or Require `eq.js`.
+```javascript
+const eqjs = require('eq.js'); // ... or: import eqjs from 'eq.js';
+```
+
+ 4. Optionally trigger `eq.js`<br/>
+If you're loading html fragments using e.g. Ajax, then trigger `eq.js` after page load.
+
+```javascript
+window.fetch(href, {method: 'get'})
+ .then(response => response.text())
+ .then(text => {
+ contentPanelEl.insertAdjacentHTML('afterbegin', text);
+
+ // Trigger eq.js
+ eqjs.refreshNodes();
+ eqjs.query(undefined, true);
+})
+.catch(err => console.error(err));
+```
+
+An example of how to use `eq.js` in a SPA can be found [here](https://github.com/leifoolsen/mdl-webpack).
+
+## To include a MDLEXT **grid** component:
+Folow the documention for the [original mdl-grid](https://github.com/google/material-design-lite/blob/master/src/grid/README.md#to-include-an-mdl-grid-component). Just replace `mdl-` with `mdlext-`, and you're good to go.
diff --git a/node_modules/mdl-ext/src/grid/snippets/grid.html b/node_modules/mdl-ext/src/grid/snippets/grid.html
new file mode 100644
index 0000000..26e6b11
--- /dev/null
+++ b/node_modules/mdl-ext/src/grid/snippets/grid.html
@@ -0,0 +1,121 @@
+<p>Element queries vs Media Queries. Drag the slider to see the effect</p>
+
+<style>
+
+ .demo-grid {
+ margin-bottom: 16px;
+ }
+ .demo-grid .mdl-grid,
+ .demo-grid .mdlext-grid {
+ /*padding: 0;*/
+ }
+ .demo-grid .mdl-cell,
+ .demo-grid .mdlext-cell {
+ background: rgb(63,81,181);
+ text-align: center;
+ color: white;
+ padding: 10px;
+ border: 1px solid #aaaaaa;
+ }
+ .demo-grid .mdl-cell:nth-child(odd),
+ .demo-grid .mdlext-cell:nth-child(odd) {
+ background: rgb(33,150,243);
+ }
+ .demo-grid-c .mdl-cell,
+ .demo-grid-c .mdlext-cell {
+ background: rgb(255,213,79);
+ color: #000;
+ border: 0;
+ }
+ .demo-grid-c .mdl-cell:nth-child(odd),
+ .demo-grid-c .mdlext-cell:nth-child(odd) {
+ background: rgb(165,214,167);
+ color: #000;
+ }
+</style>
+
+
+<p id="grid-container-width" style="text-align: center;">
+ <strong>100</strong>%
+ <input class="mdl-slider mdl-js-slider" type="range" min="50" max="100" value="100" step="10" tabindex="0">
+</p>
+
+<div style="border: 1px solid #dddddd;">
+ <div id="grid-container" style="margin: 0 auto;">
+
+ <h5>mdlext-grid, using element queries</h5>
+ <div class="demo-grid">
+ <div class="mdlext-grid mdlext-grid--no-spacing">
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ <div class="mdlext-cell mdlext-cell--1-col">1</div>
+ </div>
+ </div>
+
+ <div class="demo-grid demo-grid-c">
+ <div class="mdlext-grid mdlext-grid--no-spacing">
+ <div class="mdlext-cell mdlext-cell--4-col mdlext-cell--2-col-tablet mdlext-cell--1-col-phone">4 (2 tablet, 1 phone)</div>
+ <div class="mdlext-cell mdlext-cell--6-col mdlext-cell--4-col-tablet mdlext-cell--3-col-phone">6 (4 tablet, 3 phone)</div>
+ <div class="mdlext-cell mdlext-cell--2-col mdlext-cell--2-col-tablet mdlext-cell--hide-phone">2 (2 tablet, hide phone)</div>
+ </div>
+ </div>
+
+
+ <h5>mdl-grid, using media queries</h5>
+ <div class="demo-grid">
+ <div class="mdl-grid mdl-grid--no-spacing">
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ <div class="mdl-cell mdl-cell--1-col">1</div>
+ </div>
+ </div>
+
+ <div class="demo-grid demo-grid-c">
+ <div class="mdl-grid mdl-grid--no-spacing">
+ <div class="mdl-cell mdl-cell--4-col mdl-cell--2-col-tablet mdl-cell--1-col-phone">4 (2 tablet, 1 phone)</div>
+ <div class="mdl-cell mdl-cell--6-col mdl-cell--4-col-tablet mdl-cell--3-col-phone">6 (4 tablet, 3 phone)</div>
+ <div class="mdl-cell mdl-cell--2-col mdl-cell--2-col-tablet mdl-cell--hide-phone">2 (2 tablet, hide phone)</div>
+ </div>
+ </div>
+ </div>
+</div>
+
+<script>
+ 'use strict';
+ window.addEventListener('load', function() {
+ (function() {
+ 'use strict';
+ var widthLabel = document.querySelector('#grid-container-width strong');
+ var slider = document.querySelector('#grid-container-width input');
+
+ slider.addEventListener('input', function(e) {
+ setWidth(this.value);
+ }.bind(slider));
+
+ function setWidth(value) {
+ widthLabel.innerText = value;
+ document.querySelector('#grid-container').style.width = value + '%';
+ eqjs.refreshNodes();
+ eqjs.query(undefined, true);
+ }
+ }());
+ });
+</script>