materialize-sass 0.97.7 → 0.97.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +23 -1
  4. data/Rakefile +112 -1
  5. data/app/assets/javascripts/materialize-sprockets.js +2 -2
  6. data/app/assets/javascripts/materialize.js +5 -7468
  7. data/app/assets/javascripts/materialize/buttons.js +182 -6
  8. data/app/assets/javascripts/materialize/cards.js +2 -2
  9. data/app/assets/javascripts/materialize/carousel.js +1 -1
  10. data/app/assets/javascripts/materialize/character_counter.js +1 -1
  11. data/app/assets/javascripts/materialize/chips.js +76 -54
  12. data/app/assets/javascripts/materialize/collapsible.js +62 -39
  13. data/app/assets/javascripts/materialize/dropdown.js +21 -21
  14. data/app/assets/javascripts/materialize/extras/nouislider.js +1 -1
  15. data/app/assets/javascripts/materialize/forms.js +5 -4
  16. data/app/assets/javascripts/materialize/global.js +56 -3
  17. data/app/assets/javascripts/materialize/init.js +3 -2
  18. data/app/assets/javascripts/materialize/materialbox.js +1 -1
  19. data/app/assets/javascripts/materialize/modal.js +184 -0
  20. data/app/assets/javascripts/materialize/parallax.js +2 -2
  21. data/app/assets/javascripts/materialize/scrollspy.js +7 -6
  22. data/app/assets/javascripts/materialize/sideNav.js +193 -175
  23. data/app/assets/javascripts/materialize/tabs.js +31 -15
  24. data/app/assets/javascripts/materialize/toasts.js +29 -28
  25. data/app/assets/javascripts/materialize/tooltip.js +7 -1
  26. data/app/assets/javascripts/materialize/transitions.js +1 -1
  27. data/app/assets/stylesheets/materialize.scss +5 -5
  28. data/app/assets/stylesheets/materialize/components/_buttons.scss +78 -8
  29. data/app/assets/stylesheets/materialize/components/_cards.scss +2 -0
  30. data/app/assets/stylesheets/materialize/components/_chips.scss +15 -6
  31. data/app/assets/stylesheets/materialize/components/_dropdown.scss +9 -1
  32. data/app/assets/stylesheets/materialize/components/_global.scss +46 -27
  33. data/app/assets/stylesheets/materialize/components/_materialbox.scss +1 -1
  34. data/app/assets/stylesheets/materialize/components/_mixins.scss +1 -1
  35. data/app/assets/stylesheets/materialize/components/_modal.scss +12 -12
  36. data/app/assets/stylesheets/materialize/components/_navbar.scss +11 -3
  37. data/app/assets/stylesheets/materialize/components/_normalize.scss +0 -0
  38. data/app/assets/stylesheets/materialize/components/_preloader.scss +1 -1
  39. data/app/assets/stylesheets/materialize/components/_roboto.scss +0 -0
  40. data/app/assets/stylesheets/materialize/components/_sideNav.scss +6 -16
  41. data/app/assets/stylesheets/materialize/components/_slider.scss +1 -1
  42. data/app/assets/stylesheets/materialize/components/_table_of_contents.scss +0 -0
  43. data/app/assets/stylesheets/materialize/components/_tabs.scss +62 -19
  44. data/app/assets/stylesheets/materialize/components/_typography.scss +1 -1
  45. data/app/assets/stylesheets/materialize/components/_variables.scss +82 -82
  46. data/app/assets/stylesheets/materialize/components/_waves.scss +2 -2
  47. data/app/assets/stylesheets/materialize/components/forms/_input-fields.scss +13 -0
  48. data/app/assets/stylesheets/materialize/components/forms/_radio-buttons.scss +0 -2
  49. data/app/assets/stylesheets/materialize/components/forms/_select.scss +6 -1
  50. data/app/assets/stylesheets/materialize/extras/nouislider.css +1 -1
  51. data/lib/materialize-sass/version.rb +1 -1
  52. metadata +4 -5
  53. data/app/assets/javascripts/materialize.min.js +0 -10
  54. data/app/assets/javascripts/materialize/leanModal.js +0 -192
@@ -14,12 +14,23 @@
14
14
  var $this = $(this),
15
15
  window_width = $(window).width();
16
16
 
17
- $this.width('100%');
18
17
  var $active, $content, $links = $this.find('li.tab a'),
19
18
  $tabs_width = $this.width(),
20
19
  $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length,
21
20
  $index = 0;
22
21
 
22
+ // Finds right attribute for indicator based on active tab.
23
+ // el: jQuery Object
24
+ var calcRightPos = function(el) {
25
+ return $tabs_width - el.position().left - el.outerWidth() - $this.scrollLeft();
26
+ };
27
+
28
+ // Finds left attribute for indicator based on active tab.
29
+ // el: jQuery Object
30
+ var calcLeftPos = function(el) {
31
+ return el.position().left + $this.scrollLeft();
32
+ };
33
+
23
34
  // If the location.hash matches one of the links, use that as the active tab.
24
35
  $active = $($links.filter('[href="'+location.hash+'"]'));
25
36
 
@@ -45,8 +56,12 @@
45
56
  $this.append('<div class="indicator"></div>');
46
57
  var $indicator = $this.find('.indicator');
47
58
  if ($this.is(":visible")) {
48
- $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)});
49
- $indicator.css({"left": $index * $tab_width});
59
+ // $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)});
60
+ // $indicator.css({"left": $index * $tab_width});
61
+ setTimeout(function() {
62
+ $indicator.css({"right": calcRightPos($active) });
63
+ $indicator.css({"left": calcLeftPos($active) });
64
+ }, 0);
50
65
  }
51
66
  $(window).resize(function () {
52
67
  $tabs_width = $this.width();
@@ -55,14 +70,14 @@
55
70
  $index = 0;
56
71
  }
57
72
  if ($tab_width !== 0 && $tabs_width !== 0) {
58
- $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)});
59
- $indicator.css({"left": $index * $tab_width});
73
+ $indicator.css({"right": calcRightPos($active) });
74
+ $indicator.css({"left": calcLeftPos($active) });
60
75
  }
61
76
  });
62
77
 
63
78
  // Hide the remaining content
64
79
  $links.not($active).each(function () {
65
- $(this.hash).hide();
80
+ $(Materialize.escapeHash(this.hash)).hide();
66
81
  });
67
82
 
68
83
 
@@ -89,8 +104,9 @@
89
104
 
90
105
  // Update the variables with the new link and content
91
106
  $active = $(this);
92
- $content = $(this.hash);
107
+ $content = $(Materialize.escapeHash(this.hash));
93
108
  $links = $this.find('li.tab a');
109
+ var activeRect = $active.position();
94
110
 
95
111
  // Make the tab active.
96
112
  $active.addClass('active');
@@ -110,14 +126,14 @@
110
126
  }
111
127
 
112
128
  // Update indicator
129
+
113
130
  if (($index - $prev_index) >= 0) {
114
- $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, { duration: 300, queue: false, easing: 'easeOutQuad'});
115
- $indicator.velocity({"left": $index * $tab_width}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90});
131
+ $indicator.velocity({"right": calcRightPos($active) }, { duration: 300, queue: false, easing: 'easeOutQuad'});
132
+ $indicator.velocity({"left": calcLeftPos($active) }, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90});
116
133
 
117
- }
118
- else {
119
- $indicator.velocity({"left": $index * $tab_width}, { duration: 300, queue: false, easing: 'easeOutQuad'});
120
- $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90});
134
+ } else {
135
+ $indicator.velocity({"left": calcLeftPos($active) }, { duration: 300, queue: false, easing: 'easeOutQuad'});
136
+ $indicator.velocity({"right": calcRightPos($active) }, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90});
121
137
  }
122
138
 
123
139
  // Prevent the anchor's default click action
@@ -138,11 +154,11 @@
138
154
  // Default to "init"
139
155
  return methods.init.apply( this, arguments );
140
156
  } else {
141
- $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' );
157
+ $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tabs' );
142
158
  }
143
159
  };
144
160
 
145
- $(document).ready(function(){
161
+ $(document).on('turbolinks:load', function(){
146
162
  $('ul.tabs').tabs();
147
163
  });
148
164
  }( jQuery ));
@@ -29,33 +29,34 @@ Materialize.toast = function (message, displayLength, className, completeCallbac
29
29
 
30
30
  // Allows timer to be pause while being panned
31
31
  var timeLeft = displayLength;
32
- var counterInterval = setInterval (function(){
33
-
34
-
35
- if (newToast.parentNode === null)
36
- window.clearInterval(counterInterval);
37
-
38
- // If toast is not being dragged, decrease its time remaining
39
- if (!newToast.classList.contains('panning')) {
40
- timeLeft -= 20;
41
- }
42
-
43
- if (timeLeft <= 0) {
44
- // Animate toast out
45
- Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375,
46
- easing: 'easeOutExpo',
47
- queue: false,
48
- complete: function(){
49
- // Call the optional callback
50
- if(typeof(completeCallback) === "function")
51
- completeCallback();
52
- // Remove toast after it times out
53
- this[0].parentNode.removeChild(this[0]);
54
- }
55
- });
56
- window.clearInterval(counterInterval);
57
- }
58
- }, 20);
32
+ var counterInterval;
33
+ if (timeLeft != null) {
34
+ counterInterval = setInterval (function(){
35
+ if (newToast.parentNode === null)
36
+ window.clearInterval(counterInterval);
37
+
38
+ // If toast is not being dragged, decrease its time remaining
39
+ if (!newToast.classList.contains('panning')) {
40
+ timeLeft -= 20;
41
+ }
42
+
43
+ if (timeLeft <= 0) {
44
+ // Animate toast out
45
+ Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375,
46
+ easing: 'easeOutExpo',
47
+ queue: false,
48
+ complete: function(){
49
+ // Call the optional callback
50
+ if(typeof(completeCallback) === "function")
51
+ completeCallback();
52
+ // Remove toast after it times out
53
+ this[0].parentNode.removeChild(this[0]);
54
+ }
55
+ });
56
+ window.clearInterval(counterInterval);
57
+ }
58
+ }, 20);
59
+ }
59
60
 
60
61
 
61
62
 
@@ -82,7 +83,7 @@ Materialize.toast = function (message, displayLength, className, completeCallbac
82
83
  }
83
84
  else {
84
85
  // Insert as text;
85
- toast.innerHTML = html;
86
+ toast.innerHTML = html;
86
87
  }
87
88
  // Bind hammer
88
89
  var hammerHandler = new Hammer(toast, {prevent_default: false});
@@ -25,6 +25,12 @@
25
25
  return this.each(function() {
26
26
  var tooltipId = Materialize.guid();
27
27
  var origin = $(this);
28
+
29
+ // Destroy old tooltip
30
+ if (origin.attr('data-tooltip-id')) {
31
+ $('#' + origin.attr('data-tooltip-id')).remove();
32
+ }
33
+
28
34
  origin.attr('data-tooltip-id', tooltipId);
29
35
 
30
36
  // Get attributes.
@@ -224,7 +230,7 @@
224
230
  return {x: newX, y: newY};
225
231
  };
226
232
 
227
- $(document).ready(function(){
233
+ $(document).on('turbolinks:load', function(){
228
234
  $('.tooltipped').tooltip();
229
235
  });
230
236
  }( jQuery ));
@@ -61,7 +61,7 @@
61
61
  };
62
62
 
63
63
 
64
- $(document).ready(function() {
64
+ $(document).on('turbolinks:load', function() {
65
65
  // Hardcoded .staggered-list scrollFire
66
66
  // var staggeredListOptions = [];
67
67
  // $('ul.staggered-list').each(function (i) {
@@ -1,11 +1,11 @@
1
1
  @charset "UTF-8";
2
2
 
3
3
  // Mixins
4
- @import "materialize/components/prefixer";
4
+ // @import "materialize/components/prefixer";
5
5
  @import "materialize/components/mixins";
6
6
  @import "materialize/components/color";
7
7
 
8
- // Variables
8
+ // Variables;
9
9
  @import "materialize/components/variables";
10
10
 
11
11
  // Reset
@@ -35,6 +35,6 @@
35
35
  @import "materialize/components/preloader";
36
36
  @import "materialize/components/slider";
37
37
  @import "materialize/components/carousel";
38
- @import "materialize/components/date_picker/default.scss";
39
- @import "materialize/components/date_picker/default.date.scss";
40
- @import "materialize/components/date_picker/default.time.scss";
38
+ @import "materialize/components/date_picker/default";
39
+ @import "materialize/components/date_picker/default.date";
40
+ @import "materialize/components/date_picker/default.time";
@@ -6,7 +6,6 @@
6
6
  display: inline-block;
7
7
  height: $button-height;
8
8
  line-height: $button-height;
9
- outline: 0;
10
9
  padding: $button-padding;
11
10
  text-transform: uppercase;
12
11
  vertical-align: middle;
@@ -18,21 +17,21 @@
18
17
  .btn.disabled,
19
18
  .btn-floating.disabled,
20
19
  .btn-large.disabled,
20
+ .btn-flat.disabled,
21
21
  .btn:disabled,
22
- .btn-large:disabled,
23
22
  .btn-floating:disabled,
23
+ .btn-large:disabled,
24
+ .btn-flat:disabled,
24
25
  .btn[disabled],
26
+ .btn-floating[disabled],
25
27
  .btn-large[disabled],
26
- .btn-floating[disabled] {
28
+ .btn-flat[disabled] {
29
+ pointer-events: none;
27
30
  background-color: $button-disabled-background !important;
28
31
  box-shadow: none;
29
32
  color: $button-disabled-color !important;
30
33
  cursor: default;
31
34
 
32
- * {
33
- pointer-events: none;
34
- }
35
-
36
35
  &:hover {
37
36
  background-color: $button-disabled-background !important;
38
37
  color: $button-disabled-color !important;
@@ -44,12 +43,23 @@
44
43
  .btn-floating,
45
44
  .btn-large,
46
45
  .btn-flat {
46
+
47
+ outline: 0;
48
+
47
49
  i {
48
50
  font-size: $button-font-size;
49
51
  line-height: inherit;
50
52
  }
51
53
  }
52
54
 
55
+ // Shared focus button style
56
+ .btn,
57
+ .btn-floating {
58
+ &:focus {
59
+ background-color: darken($button-raised-background, 10%);
60
+ }
61
+ }
62
+
53
63
  // Raised Button
54
64
  .btn {
55
65
  text-decoration: none;
@@ -144,6 +154,48 @@ button.btn-floating {
144
154
  }
145
155
  }
146
156
 
157
+ &.toolbar {
158
+ &.active {
159
+ & > a i {
160
+ opacity: 0;
161
+ }
162
+ }
163
+
164
+ padding: 0;
165
+ height: $button-floating-large-size;
166
+
167
+ ul {
168
+ display: flex;
169
+ top: 0;
170
+ bottom: 0;
171
+
172
+ li {
173
+ flex: 1;
174
+ display: inline-block;
175
+ margin: 0;
176
+ height: 100%;
177
+ transition: none;
178
+
179
+ a {
180
+ display: block;
181
+ overflow: hidden;
182
+ position: relative;
183
+ width: 100%;
184
+ height: 100%;
185
+ background-color: transparent;
186
+ box-shadow: none;
187
+ color: #fff;
188
+ line-height: $button-floating-large-size;
189
+ z-index: 1;
190
+
191
+ i {
192
+ line-height: inherit;
193
+ }
194
+ }
195
+ }
196
+ }
197
+ }
198
+
147
199
  position: fixed;
148
200
  right: 23px;
149
201
  bottom: 23px;
@@ -168,6 +220,18 @@ button.btn-floating {
168
220
  opacity: 0;
169
221
  }
170
222
  }
223
+
224
+ .fab-backdrop {
225
+ position: absolute;
226
+ top: 0;
227
+ left: 0;
228
+ z-index: -1;
229
+ width: $button-floating-size;
230
+ height: $button-floating-size;
231
+ background-color: $button-floating-background;
232
+ border-radius: $button-floating-radius;
233
+ transform: scale(0);
234
+ }
171
235
  }
172
236
 
173
237
  // Flat button
@@ -183,13 +247,19 @@ button.btn-floating {
183
247
  background-color: transparent;
184
248
  }
185
249
 
250
+ &:focus,
186
251
  &:hover {
187
252
  background-color: rgba(0,0,0,.1);
188
253
  box-shadow: none;
189
254
  }
190
255
 
256
+ &:active {
257
+ background-color: rgba(0,0,0,.2);
258
+ }
259
+
191
260
  &.disabled {
192
- color: $button-flat-disabled-color;
261
+ background-color: transparent !important;
262
+ color: $button-flat-disabled-color !important;
193
263
  cursor: default;
194
264
  }
195
265
  }
@@ -80,6 +80,7 @@
80
80
  .card-image {
81
81
  max-width: 50%;
82
82
  img {
83
+ border-radius: 2px 0 0 2px;
83
84
  max-width: 100%;
84
85
  width: auto;
85
86
  }
@@ -172,6 +173,7 @@
172
173
  background-color: $card-bg-color;
173
174
  width: 100%;
174
175
  overflow-y: auto;
176
+ left: 0;
175
177
  top: 100%;
176
178
  height: 100%;
177
179
  z-index: 3;
@@ -32,10 +32,9 @@
32
32
  border: none;
33
33
  border-bottom: 1px solid $chip-border-color;
34
34
  box-shadow: none;
35
- margin-bottom: 30px;
35
+ margin: $input-margin;
36
36
  min-height: 45px;
37
37
  outline: none;
38
- padding-bottom: $chip-margin;
39
38
  transition: all .3s;
40
39
 
41
40
  &.focus {
@@ -57,12 +56,11 @@
57
56
  border: 0;
58
57
  color: rgba(0,0,0,.6);
59
58
  display: inline-block;
60
- font-size: 13px;
61
- font-weight: 500;
62
- height: 32px;
63
- margin-right: 20px;
59
+ font-size: $input-font-size;
60
+ height: $input-height;
64
61
  line-height: 32px;
65
62
  outline: 0;
63
+ margin: 0;
66
64
  padding: 0 !important;
67
65
  width: 120px !important;
68
66
  }
@@ -72,3 +70,14 @@
72
70
  box-shadow: none !important;
73
71
  }
74
72
  }
73
+
74
+ // Form prefix
75
+ .prefix ~ .chips {
76
+ margin-left: 3rem;
77
+ width: 92%;
78
+ width: calc(100% - 3rem);
79
+ }
80
+ .chips:empty ~ label {
81
+ font-size: 0.8rem;
82
+ transform: translateY(-140%);
83
+ }
@@ -44,7 +44,7 @@
44
44
 
45
45
  & > span > label {
46
46
  top: 1px;
47
- left: 3px;
47
+ left: 0;
48
48
  height: 18px;
49
49
  }
50
50
 
@@ -55,3 +55,11 @@
55
55
  }
56
56
  }
57
57
  }
58
+
59
+ // Input field specificity bugfix
60
+ .input-field.col .dropdown-content [type="checkbox"] + label {
61
+ top: 1px;
62
+ left: 0;
63
+ height: 18px;
64
+ }
65
+