material-sass 4.0.0.alpha5 → 4.0.0.alpha6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/material/addons-materialise/textarea-autosize.js +7 -5
  3. data/app/assets/javascripts/material/addons-materialise/wave.js +11 -8
  4. data/app/assets/javascripts/material/src/floating-label.js +5 -5
  5. data/app/assets/javascripts/material/src/navdrawer.js +7 -7
  6. data/app/assets/javascripts/material/src/tab-switch.js +15 -18
  7. data/app/assets/javascripts/material/src/util.js +1 -1
  8. data/app/assets/javascripts/material.js +24 -27
  9. data/app/assets/stylesheets/material/_mixins.scss +2 -0
  10. data/app/assets/stylesheets/material/_utilities.scss +3 -0
  11. data/app/assets/stylesheets/material/_variables.scss +24 -2
  12. data/app/assets/stylesheets/material/base/_base.scss +5 -482
  13. data/app/assets/stylesheets/material/base/_grid.scss +11 -0
  14. data/app/assets/stylesheets/material/base/_normalize.scss +253 -0
  15. data/app/assets/stylesheets/material/base/_reboot.scss +239 -0
  16. data/app/assets/stylesheets/material/base/_typography.scss +0 -10
  17. data/app/assets/stylesheets/material/bootstrap/_alert.scss +0 -1
  18. data/app/assets/stylesheets/material/bootstrap/_breadcrumb.scss +15 -10
  19. data/app/assets/stylesheets/material/bootstrap/_button-group.scss +21 -42
  20. data/app/assets/stylesheets/material/bootstrap/_carousel.scss +81 -126
  21. data/app/assets/stylesheets/material/bootstrap/_close.scss +1 -4
  22. data/app/assets/stylesheets/material/bootstrap/_custom-form.scss +14 -16
  23. data/app/assets/stylesheets/material/bootstrap/_form.scss +95 -52
  24. data/app/assets/stylesheets/material/bootstrap/_media.scss +6 -67
  25. data/app/assets/stylesheets/material/bootstrap/_nav.scss +23 -45
  26. data/app/assets/stylesheets/material/bootstrap/_pagination.scss +4 -14
  27. data/app/assets/stylesheets/material/bootstrap/_popover.scss +7 -5
  28. data/app/assets/stylesheets/material/bootstrap/_responsive-embed.scss +18 -5
  29. data/app/assets/stylesheets/material/bootstrap/{_animation.scss → _transition.scss} +11 -2
  30. data/app/assets/stylesheets/material/material/_card.scss +185 -123
  31. data/app/assets/stylesheets/material/material/_chip.scss +12 -12
  32. data/app/assets/stylesheets/material/material/_data-table.scss +0 -2
  33. data/app/assets/stylesheets/material/material/_dialog.scss +23 -17
  34. data/app/assets/stylesheets/material/material/_expansion-panel.scss +42 -183
  35. data/app/assets/stylesheets/material/material/_menu.scss +19 -4
  36. data/app/assets/stylesheets/material/material/_navdrawer.scss +16 -12
  37. data/app/assets/stylesheets/material/material/_progress-circular.scss +2 -2
  38. data/app/assets/stylesheets/material/material/_progress.scss +68 -92
  39. data/app/assets/stylesheets/material/material/_selection-control.scss +11 -28
  40. data/app/assets/stylesheets/material/material/_tab.scss +52 -117
  41. data/app/assets/stylesheets/material/material/_text-field-floating-label.scss +9 -4
  42. data/app/assets/stylesheets/material/material/_text-field-input-group.scss +37 -35
  43. data/app/assets/stylesheets/material/material/_text-field.scss +41 -32
  44. data/app/assets/stylesheets/material/material/_toolbar.scss +192 -306
  45. data/app/assets/stylesheets/material/material/_tooltip.scss +19 -20
  46. data/app/assets/stylesheets/material/material.scss +2 -2
  47. data/app/assets/stylesheets/material/mixins/_border-radius.scss +9 -19
  48. data/app/assets/stylesheets/material/mixins/_breakpoint.scss +11 -3
  49. data/app/assets/stylesheets/material/mixins/_form.scss +15 -30
  50. data/app/assets/stylesheets/material/mixins/_grid-framework.scss +58 -0
  51. data/app/assets/stylesheets/material/mixins/_grid.scss +6 -78
  52. data/app/assets/stylesheets/material/mixins/_transform.scss +9 -0
  53. data/app/assets/stylesheets/material/utilities/_border.scss +31 -5
  54. data/app/assets/stylesheets/material/utilities/_display.scss +37 -8
  55. data/app/assets/stylesheets/material/utilities/_flex.scss +140 -0
  56. data/app/assets/stylesheets/material/utilities/_float.scss +5 -3
  57. data/app/assets/stylesheets/material/utilities/_position.scss +24 -0
  58. data/app/assets/stylesheets/material/utilities/_sizing.scss +16 -0
  59. data/app/assets/stylesheets/material/utilities/_spacing.scss +56 -46
  60. data/app/assets/stylesheets/material/utilities/_text.scss +5 -3
  61. data/app/assets/stylesheets/material/variables/_grid.scss +16 -10
  62. data/app/assets/stylesheets/material/variables/_spacer.scss +22 -3
  63. data/app/assets/stylesheets/material/variables/_typography.scss +2 -0
  64. data/app/assets/stylesheets/material/variables/_variable-bootstrap.scss +24 -17
  65. data/app/assets/stylesheets/material/variables/_variable-material.scss +47 -52
  66. data/lib/material-sass/version.rb +1 -1
  67. metadata +9 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ea9b6487d68485c36b034314a9222086fa7fffc
4
- data.tar.gz: baf020d3d9ede3fa8a1591fe3c3a798f16761c41
3
+ metadata.gz: d483594d537c65aeea1110897d892f0981aef89d
4
+ data.tar.gz: aab7bcb622b9da788abc30d3c30f2f3fd6e57484
5
5
  SHA512:
6
- metadata.gz: 6e810ba05f48528258c8f0bb972c5213a2538c368f68ff25eb28d5811a97c3a610b6a2c7b0ed001493510457a357baeca31e717114d6ff410e99b75c9aee1f7e
7
- data.tar.gz: c93998e1e0f85747b7683d0f8896a4df2dd0fbfc50da7b7bd44b33a9957e81a05089194fe255fded5f075befda9eb4aaece1f4b289e03da599efee5501140f95
6
+ metadata.gz: 3ebdfba8dc36d70472d7a866846292b8166fb9801786caec13d67fbe2a76428688bc96ed2ce367d2f93eb1d827cc1aad34aeb2f97fbb0a1772ba808566b74d31
7
+ data.tar.gz: 2cef81b3b926fb783a3bf0a64cf8b664a436c6b83e3a3b1d0f10fc7670217e0496a31c84c71f9ddc338bec89eca8bcc77988bb23ff106ab98ba982adce666bb0
@@ -2,8 +2,10 @@
2
2
  * activate textarea-autosize for material
3
3
  * requires textarea-autosize.js
4
4
  */
5
- $(function () {
6
- if ($('.textarea-autosize').length && (typeof $.fn.textareaAutoSize !== 'undefined')) {
7
- $('.textarea-autosize').textareaAutoSize();
8
- };
9
- });
5
+ (function($){
6
+ $(function () {
7
+ if ($('.textarea-autosize').length && (typeof $.fn.textareaAutoSize !== 'undefined')) {
8
+ $('.textarea-autosize').textareaAutoSize();
9
+ };
10
+ });
11
+ })(jQuery);
@@ -2,11 +2,14 @@
2
2
  * activate waves for material
3
3
  * requires waves.js
4
4
  */
5
- $(function () {
6
- if ($('.waves-attach').length && (typeof Waves !== 'undefined')) {
7
- Waves.attach('.waves-attach');
8
- Waves.init({
9
- duration: 300
10
- });
11
- };
12
- });
5
+ (function($){
6
+ $(function () {
7
+ if ($('.waves-attach').length && (typeof Waves !== 'undefined')) {
8
+ Waves.attach('.waves-attach');
9
+ Waves.init({
10
+ duration: 300
11
+ });
12
+ };
13
+ });
14
+ })(jQuery);
15
+
@@ -5,11 +5,11 @@
5
5
  */
6
6
  const FloatingLabel = (($) => {
7
7
  // constants >>>
8
- const DATA_API_KEY = '.data-api';
9
- const DATA_KEY = 'md.floatinglabel';
10
- const EVENT_KEY = `.${DATA_KEY}`;
11
- const NAME = 'floatinglabel';
12
- const NO_CONFLICT = $.fn[NAME];
8
+ const DATA_API_KEY = '.data-api';
9
+ const DATA_KEY = 'md.floatinglabel';
10
+ const EVENT_KEY = `.${DATA_KEY}`;
11
+ const NAME = 'floatinglabel';
12
+ const NO_CONFLICT = $.fn[NAME];
13
13
 
14
14
  const ClassName = {
15
15
  IS_FOCUSED : 'is-focused',
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * navigation drawer
3
- * based on bootstrap's (v4.0.0-alpha.5) modal.js
3
+ * based on bootstrap's (v4.0.0-alpha.6) modal.js
4
4
  */
5
5
  const NavDrawer = (($) => {
6
6
  // constants >>>
@@ -14,8 +14,8 @@ const NavDrawer = (($) => {
14
14
 
15
15
  const ClassName = {
16
16
  BACKDROP : 'navdrawer-backdrop',
17
- IN : 'in',
18
- OPEN : 'navdrawer-open'
17
+ OPEN : 'navdrawer-open',
18
+ SHOW : 'show'
19
19
  };
20
20
 
21
21
  const Default = {
@@ -83,7 +83,7 @@ const NavDrawer = (($) => {
83
83
 
84
84
  $(this._element)
85
85
  .off(Event.CLICK_DISMISS)
86
- .removeClass(ClassName.IN);
86
+ .removeClass(ClassName.SHOW);
87
87
 
88
88
  if (Util.supportsTransitionEnd()) {
89
89
  $(this._element)
@@ -204,7 +204,7 @@ const NavDrawer = (($) => {
204
204
  Util.reflow(this._backdrop);
205
205
  }
206
206
 
207
- $(this._backdrop).addClass(ClassName.IN);
207
+ $(this._backdrop).addClass(ClassName.SHOW);
208
208
 
209
209
  if (!callback) {
210
210
  return;
@@ -219,7 +219,7 @@ const NavDrawer = (($) => {
219
219
  .one(Util.TRANSITION_END, callback)
220
220
  .emulateTransitionEnd(TRANSITION_DURATION_BACKDROP);
221
221
  } else if (this._backdrop && !this._isShown) {
222
- $(this._backdrop).removeClass(ClassName.IN);
222
+ $(this._backdrop).removeClass(ClassName.SHOW);
223
223
 
224
224
  let callbackRemove = () => {
225
225
  this._removeBackdrop();
@@ -255,7 +255,7 @@ const NavDrawer = (($) => {
255
255
  Util.reflow(this._element);
256
256
  }
257
257
 
258
- $(this._element).addClass(ClassName.IN);
258
+ $(this._element).addClass(ClassName.SHOW);
259
259
  this._enforceFocus();
260
260
 
261
261
  let shownEvent = $.Event(Event.SHOWN, {
@@ -1,21 +1,20 @@
1
1
  /*!
2
2
  * tab indicator animation
3
- * requires bootstrap's (v4.0.0-alpha.5) tab.js
3
+ * requires bootstrap's (v4.0.0-alpha.6) tab.js
4
4
  */
5
5
  const TabSwitch = (($) => {
6
6
  // constants >>>
7
7
  const DATA_KEY = 'md.tabswitch';
8
8
  const NAME = 'tabswitch';
9
9
  const NO_CONFLICT = $.fn[NAME];
10
- const TRANSITION_DURATION = 450;
10
+ const TRANSITION_DURATION = 300;
11
11
 
12
12
  const ClassName = {
13
13
  ANIMATE : 'animate',
14
- IN : 'in',
15
14
  INDICATOR : 'nav-tabs-indicator',
16
15
  MATERIAL : 'nav-tabs-material',
17
- REVERSE : 'reverse',
18
- SCROLLABLE : 'nav-tabs-scrollable'
16
+ SCROLLABLE : 'nav-tabs-scrollable',
17
+ SHOW : 'show'
19
18
  };
20
19
 
21
20
  const Event = {
@@ -24,7 +23,8 @@ const TabSwitch = (($) => {
24
23
 
25
24
  const Selector = {
26
25
  DATA_TOGGLE : '.nav-tabs [data-toggle="tab"]',
27
- TAB_NAV : '.nav-tabs'
26
+ NAV : '.nav-tabs',
27
+ NAV_ITEM : '.nav-item'
28
28
  };
29
29
  // <<< constants
30
30
 
@@ -45,30 +45,26 @@ const TabSwitch = (($) => {
45
45
  this._createIndicator();
46
46
  }
47
47
 
48
- let elLeft = $(element).offset().left;
49
- let elWidth = $(element).outerWidth();
48
+ let elLeft = $(element).closest(Selector.NAV_ITEM).offset().left;
49
+ let elWidth = $(element).closest(Selector.NAV_ITEM).outerWidth();
50
50
  let navLeft = $(this._nav).offset().left;
51
51
  let navScrollLeft = $(this._nav).scrollLeft();
52
52
  let navWidth = $(this._nav).outerWidth();
53
53
 
54
54
  if (relatedTarget !== undefined) {
55
- let relatedLeft = $(relatedTarget).offset().left;
56
- let relatedWidth = $(relatedTarget).outerWidth();
55
+ let relatedLeft = $(relatedTarget).closest(Selector.NAV_ITEM).offset().left;
56
+ let relatedWidth = $(relatedTarget).closest(Selector.NAV_ITEM).outerWidth();
57
57
 
58
58
  $(this._navindicator).css({
59
59
  left : ((relatedLeft + navScrollLeft) - navLeft),
60
60
  right : (navWidth - ((relatedLeft + navScrollLeft) - navLeft + relatedWidth))
61
61
  });
62
62
 
63
- $(this._navindicator).addClass(ClassName.IN);
63
+ $(this._navindicator).addClass(ClassName.SHOW);
64
64
  Util.reflow(this._navindicator);
65
65
 
66
66
  if (supportsTransition) {
67
- $(this._navindicator).addClass(ClassName.ANIMATE);
68
-
69
- if (relatedLeft > elLeft) {
70
- $(this._navindicator).addClass(ClassName.REVERSE);
71
- }
67
+ $(this._nav).addClass(ClassName.ANIMATE);
72
68
  }
73
69
  }
74
70
 
@@ -78,7 +74,8 @@ const TabSwitch = (($) => {
78
74
  });
79
75
 
80
76
  let complete = () => {
81
- $(this._navindicator).removeClass(ClassName.ANIMATE).removeClass(ClassName.IN).removeClass(ClassName.REVERSE);
77
+ $(this._nav).removeClass(ClassName.ANIMATE);
78
+ $(this._navindicator).removeClass(ClassName.SHOW);
82
79
  }
83
80
 
84
81
  if (!supportsTransition) {
@@ -103,7 +100,7 @@ const TabSwitch = (($) => {
103
100
 
104
101
  static _jQueryInterface(relatedTarget) {
105
102
  return this.each(function () {
106
- let nav = $(this).closest(Selector.TAB_NAV)[0];
103
+ let nav = $(this).closest(Selector.NAV)[0];
107
104
 
108
105
  if (!nav) {
109
106
  return;
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * global util js
3
- * based on bootstrap's (v4.0.0-alpha.5) util.js
3
+ * based on bootstrap's (v4.0.0-alpha.6) util.js
4
4
  */
5
5
  const Util = (($) => {
6
6
  let transition = false;
@@ -121,7 +121,7 @@ var FloatingLabel = function ($) {
121
121
 
122
122
  /*!
123
123
  * navigation drawer
124
- * based on bootstrap's (v4.0.0-alpha.5) modal.js
124
+ * based on bootstrap's (v4.0.0-alpha.6) modal.js
125
125
  */
126
126
  var NavDrawer = function ($) {
127
127
  // constants >>>
@@ -135,8 +135,8 @@ var NavDrawer = function ($) {
135
135
 
136
136
  var ClassName = {
137
137
  BACKDROP: 'navdrawer-backdrop',
138
- IN: 'in',
139
- OPEN: 'navdrawer-open'
138
+ OPEN: 'navdrawer-open',
139
+ SHOW: 'show'
140
140
  };
141
141
 
142
142
  var Default = {
@@ -205,7 +205,7 @@ var NavDrawer = function ($) {
205
205
  $(document).off(Event.FOCUSIN);
206
206
  $(this._content).off(Event.MOUSEDOWN_DISMISS);
207
207
 
208
- $(this._element).off(Event.CLICK_DISMISS).removeClass(ClassName.IN);
208
+ $(this._element).off(Event.CLICK_DISMISS).removeClass(ClassName.SHOW);
209
209
 
210
210
  if (Util.supportsTransitionEnd()) {
211
211
  $(this._element).one(Util.TRANSITION_END, $.proxy(this._hideNavdrawer, this, hideClassName)).emulateTransitionEnd(TRANSITION_DURATION);
@@ -333,7 +333,7 @@ var NavDrawer = function ($) {
333
333
  Util.reflow(this._backdrop);
334
334
  }
335
335
 
336
- $(this._backdrop).addClass(ClassName.IN);
336
+ $(this._backdrop).addClass(ClassName.SHOW);
337
337
 
338
338
  if (!callback) {
339
339
  return;
@@ -346,7 +346,7 @@ var NavDrawer = function ($) {
346
346
 
347
347
  $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(TRANSITION_DURATION_BACKDROP);
348
348
  } else if (this._backdrop && !this._isShown) {
349
- $(this._backdrop).removeClass(ClassName.IN);
349
+ $(this._backdrop).removeClass(ClassName.SHOW);
350
350
 
351
351
  var callbackRemove = function callbackRemove() {
352
352
  _this5._removeBackdrop();
@@ -382,7 +382,7 @@ var NavDrawer = function ($) {
382
382
  Util.reflow(this._element);
383
383
  }
384
384
 
385
- $(this._element).addClass(ClassName.IN);
385
+ $(this._element).addClass(ClassName.SHOW);
386
386
  this._enforceFocus();
387
387
 
388
388
  var shownEvent = $.Event(Event.SHOWN, {
@@ -476,22 +476,21 @@ var NavDrawer = function ($) {
476
476
 
477
477
  /*!
478
478
  * tab indicator animation
479
- * requires bootstrap's (v4.0.0-alpha.5) tab.js
479
+ * requires bootstrap's (v4.0.0-alpha.6) tab.js
480
480
  */
481
481
  var TabSwitch = function ($) {
482
482
  // constants >>>
483
483
  var DATA_KEY = 'md.tabswitch';
484
484
  var NAME = 'tabswitch';
485
485
  var NO_CONFLICT = $.fn[NAME];
486
- var TRANSITION_DURATION = 450;
486
+ var TRANSITION_DURATION = 300;
487
487
 
488
488
  var ClassName = {
489
489
  ANIMATE: 'animate',
490
- IN: 'in',
491
490
  INDICATOR: 'nav-tabs-indicator',
492
491
  MATERIAL: 'nav-tabs-material',
493
- REVERSE: 'reverse',
494
- SCROLLABLE: 'nav-tabs-scrollable'
492
+ SCROLLABLE: 'nav-tabs-scrollable',
493
+ SHOW: 'show'
495
494
  };
496
495
 
497
496
  var Event = {
@@ -500,7 +499,8 @@ var TabSwitch = function ($) {
500
499
 
501
500
  var Selector = {
502
501
  DATA_TOGGLE: '.nav-tabs [data-toggle="tab"]',
503
- TAB_NAV: '.nav-tabs'
502
+ NAV: '.nav-tabs',
503
+ NAV_ITEM: '.nav-item'
504
504
  };
505
505
  // <<< constants
506
506
 
@@ -527,30 +527,26 @@ var TabSwitch = function ($) {
527
527
  this._createIndicator();
528
528
  }
529
529
 
530
- var elLeft = $(element).offset().left;
531
- var elWidth = $(element).outerWidth();
530
+ var elLeft = $(element).closest(Selector.NAV_ITEM).offset().left;
531
+ var elWidth = $(element).closest(Selector.NAV_ITEM).outerWidth();
532
532
  var navLeft = $(this._nav).offset().left;
533
533
  var navScrollLeft = $(this._nav).scrollLeft();
534
534
  var navWidth = $(this._nav).outerWidth();
535
535
 
536
536
  if (relatedTarget !== undefined) {
537
- var relatedLeft = $(relatedTarget).offset().left;
538
- var relatedWidth = $(relatedTarget).outerWidth();
537
+ var relatedLeft = $(relatedTarget).closest(Selector.NAV_ITEM).offset().left;
538
+ var relatedWidth = $(relatedTarget).closest(Selector.NAV_ITEM).outerWidth();
539
539
 
540
540
  $(this._navindicator).css({
541
541
  left: relatedLeft + navScrollLeft - navLeft,
542
542
  right: navWidth - (relatedLeft + navScrollLeft - navLeft + relatedWidth)
543
543
  });
544
544
 
545
- $(this._navindicator).addClass(ClassName.IN);
545
+ $(this._navindicator).addClass(ClassName.SHOW);
546
546
  Util.reflow(this._navindicator);
547
547
 
548
548
  if (supportsTransition) {
549
- $(this._navindicator).addClass(ClassName.ANIMATE);
550
-
551
- if (relatedLeft > elLeft) {
552
- $(this._navindicator).addClass(ClassName.REVERSE);
553
- }
549
+ $(this._nav).addClass(ClassName.ANIMATE);
554
550
  }
555
551
  }
556
552
 
@@ -560,7 +556,8 @@ var TabSwitch = function ($) {
560
556
  });
561
557
 
562
558
  var complete = function complete() {
563
- $(_this8._navindicator).removeClass(ClassName.ANIMATE).removeClass(ClassName.IN).removeClass(ClassName.REVERSE);
559
+ $(_this8._nav).removeClass(ClassName.ANIMATE);
560
+ $(_this8._navindicator).removeClass(ClassName.SHOW);
564
561
  };
565
562
 
566
563
  if (!supportsTransition) {
@@ -583,7 +580,7 @@ var TabSwitch = function ($) {
583
580
  key: '_jQueryInterface',
584
581
  value: function _jQueryInterface(relatedTarget) {
585
582
  return this.each(function () {
586
- var nav = $(this).closest(Selector.TAB_NAV)[0];
583
+ var nav = $(this).closest(Selector.NAV)[0];
587
584
 
588
585
  if (!nav) {
589
586
  return;
@@ -620,7 +617,7 @@ var TabSwitch = function ($) {
620
617
 
621
618
  /*!
622
619
  * global util js
623
- * based on bootstrap's (v4.0.0-alpha.5) util.js
620
+ * based on bootstrap's (v4.0.0-alpha.6) util.js
624
621
  */
625
622
  var Util = function ($) {
626
623
  var transition = false;
@@ -712,7 +709,7 @@ var Util = function ($) {
712
709
  },
713
710
  getUID: function getUID(prefix) {
714
711
  do {
715
- prefix += ~~(Math.random() * 1000000);
712
+ prefix += ~ ~(Math.random() * 1000000);
716
713
  } while (document.getElementById(prefix));
717
714
  return prefix;
718
715
  },
@@ -4,6 +4,7 @@
4
4
  @import "mixins/clearfix";
5
5
  @import "mixins/form";
6
6
  @import "mixins/grid";
7
+ @import "mixins/grid-framework";
7
8
  @import "mixins/hex-to-rgba";
8
9
  @import "mixins/hover";
9
10
  @import "mixins/image";
@@ -17,5 +18,6 @@
17
18
  @import "mixins/text-emphasis";
18
19
  @import "mixins/text-hide";
19
20
  @import "mixins/text-truncate";
21
+ @import "mixins/transform";
20
22
  @import "mixins/transition";
21
23
  @import "mixins/typography";
@@ -4,8 +4,11 @@
4
4
  @import "utilities/background";
5
5
  @import "utilities/clearfix";
6
6
  @import "utilities/display";
7
+ @import "utilities/flex";
7
8
  @import "utilities/float";
9
+ @import "utilities/position";
8
10
  @import "utilities/screenreader";
11
+ @import "utilities/sizing";
9
12
  @import "utilities/spacing";
10
13
  @import "utilities/text";
11
14
  @import "utilities/visibility";
@@ -4,10 +4,11 @@
4
4
 
5
5
  @each $key, $num in $map {
6
6
  @if $prev-num == null {
7
+ // do nothing
7
8
  } @else if not comparable($num, $prev-num) {
8
- @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
9
+ @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}'!";
9
10
  } @else if $num <= $prev-num {
10
- @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
11
+ @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}'!";
11
12
  }
12
13
 
13
14
  $prev-key: $key;
@@ -15,6 +16,27 @@
15
16
  }
16
17
  }
17
18
 
19
+ @mixin _assert-starts-at-zero($map) {
20
+ $first-value: nth(map-values($map), 1);
21
+
22
+ @if $first-value != 0 {
23
+ @warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.";
24
+ }
25
+ }
26
+
27
+ // sass option
28
+ $enable-grid-classes: true !default;
29
+ $enable-hover-media-query: false !default;
30
+ $enable-print-styles: true !default;
31
+
32
+ // the following bootstrap options are not supported in material
33
+ // this is because these features are required by material design guidelines
34
+
35
+ // $enable-gradients: true !default;
36
+ // $enable-rounded: true !default;
37
+ // $enable-shadows: true !default;
38
+ // $enable-transitions: true !default;
39
+
18
40
  @import "variables/animation";
19
41
  @import "variables/colour";
20
42
  @import "variables/elevation-shadow";