mui-sass 0.9.4 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab361c87f2d3ec404384499236a6062b65bb7c9d
4
- data.tar.gz: 5f25d80b37069977bc955845b133f74523300349
3
+ metadata.gz: 1e8e62f5ff04b21df0e6f087d297dd159ed2fae0
4
+ data.tar.gz: cc1cae909d8f80063160bd99771d8d6a4674fc64
5
5
  SHA512:
6
- metadata.gz: 13d84b75a7e37065b9ce382dae493f7f4464e33b47fea687b4364f3eaef41acfcf7bd51ff05dab37c419945f4b9a4f49e399f7718728d1f4b070edb16303d282
7
- data.tar.gz: f0afc01eabe69d1133faf4c582e6fe2c6ffb189bb5b0c2f6959428836055856ba8c211c99f757dbede95a67c8b6003cbb721b264932f35f26f9607573b3b1302
6
+ metadata.gz: 57cab389871e9dc3797e5035806066e8817addfbfdaf183b3f8bd6142073abf924a2bd3df35acee6e0006d4c164a6fdaa983f819a63db9537d98fd82e7c6c0bb
7
+ data.tar.gz: c7782a0a9813545e20c0ccfe45440c8d973656d1daca5146f3060873ac5c45fad0982e4064caee37799870defd8436c78e986c5bb65d0673c961fc4be50654b0
data/.travis.yml CHANGED
@@ -1,8 +1,9 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.2.5
5
- - 2.3.1
4
+ - 2.2.6
5
+ - 2.3.3
6
+ - 2.4.0-preview3
6
7
 
7
8
  before_install: gem install bundler
8
9
 
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.9.5 (2016-11-29)
2
+
3
+ - Update assets to match upstream version
4
+
1
5
  ## 0.9.4 (2016-11-09)
2
6
 
3
7
  - Update assets to match upstream version
@@ -1,5 +1,5 @@
1
1
  module Mui
2
2
  module Sass
3
- VERSION = '0.9.4'
3
+ VERSION = '0.9.5'
4
4
  end
5
5
  end
data/mui-sass.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_runtime_dependency 'sass', '~> 3.3'
25
25
 
26
- spec.add_development_dependency 'rspec', '~> 3.3'
27
- spec.add_development_dependency 'rails', '~> 5.0'
26
+ spec.add_development_dependency 'railties', '~> 5.0'
27
+ spec.add_development_dependency 'rspec', '~> 3.5'
28
+ spec.add_development_dependency 'sprockets-rails', '~> 3.0'
28
29
  end
@@ -1217,13 +1217,9 @@ module.exports = overlayFn;
1217
1217
  var jqLite = require('./lib/jqLite'),
1218
1218
  util = require('./lib/util'),
1219
1219
  animationHelpers = require('./lib/animationHelpers'),
1220
- btnClass = 'mui-btn',
1221
- btnFABClass = 'mui-btn--fab',
1222
- rippleClass = 'mui-ripple-effect',
1223
1220
  supportsTouch = 'ontouchstart' in document.documentElement,
1224
1221
  mouseDownEvents = (supportsTouch) ? 'touchstart' : 'mousedown',
1225
- mouseUpEvents = (supportsTouch) ? 'touchend' : 'mouseup mouseleave',
1226
- animationDuration = 600;
1222
+ mouseUpEvents = (supportsTouch) ? 'touchend' : 'mouseup mouseleave';
1227
1223
 
1228
1224
 
1229
1225
  /**
@@ -1238,6 +1234,15 @@ function initialize(buttonEl) {
1238
1234
  // exit if element is INPUT (doesn't support absolute positioned children)
1239
1235
  if (buttonEl.tagName === 'INPUT') return;
1240
1236
 
1237
+ // add ripple container (to avoid https://github.com/muicss/mui/issues/169)
1238
+ var el = document.createElement('span');
1239
+ el.className = 'mui-btn__ripple-container';
1240
+ el.innerHTML = '<span class="mui-ripple"></span>';
1241
+ buttonEl.appendChild(el);
1242
+
1243
+ // cache reference to ripple element
1244
+ buttonEl._rippleEl = el.children[0];
1245
+
1241
1246
  // attach event handler
1242
1247
  jqLite.on(buttonEl, mouseDownEvents, mouseDownHandler);
1243
1248
  }
@@ -1251,25 +1256,54 @@ function mouseDownHandler(ev) {
1251
1256
  // only left clicks
1252
1257
  if (ev.type === 'mousedown' && ev.button !== 0) return;
1253
1258
 
1254
- var buttonEl = this;
1259
+ var buttonEl = this,
1260
+ rippleEl = buttonEl._rippleEl;
1255
1261
 
1256
1262
  // exit if button is disabled
1257
- if (buttonEl.disabled === true) return;
1263
+ if (buttonEl.disabled) return;
1258
1264
 
1259
- // add mouseup event to button once
1260
- if (!buttonEl.muiMouseUp) {
1265
+ // add mouseup handler on first-click
1266
+ if (!rippleEl._init) {
1261
1267
  jqLite.on(buttonEl, mouseUpEvents, mouseUpHandler);
1262
- buttonEl.muiMouseUp = true;
1268
+ rippleEl._init = true;
1263
1269
  }
1264
1270
 
1265
- // create ripple element
1266
- var rippleEl = createRippleEl(ev, buttonEl);
1271
+ // get ripple element offset values and (x, y) position of click
1272
+ var offset = jqLite.offset(buttonEl),
1273
+ clickEv = (ev.type === 'touchstart') ? ev.touches[0] : ev,
1274
+ xPos = Math.round(clickEv.pageX - offset.left),
1275
+ yPos = Math.round(clickEv.pageY - offset.top),
1276
+ diameter;
1277
+
1278
+ // calculate diameter
1279
+ diameter = Math.sqrt(offset.height * offset.height +
1280
+ offset.width * offset.width) * 2 + 2 + 'px';
1281
+
1282
+ // css transform
1283
+ var tEnd = 'translate(-50%, -50%) translate(' + xPos + 'px,' + yPos + 'px)',
1284
+ tStart = tEnd + ' scale(0.0001, 0.0001)';
1285
+
1286
+ // set position and initial scale
1287
+ jqLite.css(rippleEl, {
1288
+ width: diameter,
1289
+ height: diameter,
1290
+ webkitTransform: tStart,
1291
+ msTransform: tStart,
1292
+ transform: tStart
1293
+ });
1267
1294
 
1268
- buttonEl.appendChild(rippleEl);
1295
+ jqLite.addClass(rippleEl, 'mui--is-visible');
1296
+ jqLite.removeClass(rippleEl, 'mui--is-animating');
1269
1297
 
1270
- // animate in
1298
+ // start animation
1271
1299
  util.requestAnimationFrame(function() {
1272
- jqLite.addClass(rippleEl, 'mui--animate-in mui--active');
1300
+ jqLite.css(rippleEl, {
1301
+ webkitTransform: tEnd,
1302
+ msTransform: tEnd,
1303
+ transform: tEnd
1304
+ });
1305
+
1306
+ jqLite.addClass(rippleEl, 'mui--is-animating');
1273
1307
  });
1274
1308
  }
1275
1309
 
@@ -1279,70 +1313,14 @@ function mouseDownHandler(ev) {
1279
1313
  * @param {Event} ev - The DOM event
1280
1314
  */
1281
1315
  function mouseUpHandler(ev) {
1282
- var children = this.children,
1283
- i = children.length,
1284
- rippleEls = [],
1285
- el;
1286
-
1287
- // animate out ripples
1288
- while (i--) {
1289
- el = children[i];
1290
- if (jqLite.hasClass(el, rippleClass)) {
1291
- jqLite.addClass(el, 'mui--animate-out');
1292
- rippleEls.push(el);
1293
- }
1294
- }
1295
-
1296
- // remove ripples after animation
1297
- if (rippleEls.length) {
1298
- setTimeout(function() {
1299
- var i = rippleEls.length,
1300
- el,
1301
- parentNode;
1302
-
1303
- // remove elements
1304
- while (i--) {
1305
- el = rippleEls[i];
1306
- parentNode = el.parentNode;
1307
- if (parentNode) parentNode.removeChild(el);
1308
- }
1309
- }, animationDuration);
1310
- }
1311
- }
1312
-
1313
-
1314
- /**
1315
- * Create ripple element
1316
- * @param {Element} - buttonEl - The button element.
1317
- */
1318
- function createRippleEl(ev, buttonEl) {
1319
- // get (x, y) position of click
1320
- var offset = jqLite.offset(buttonEl),
1321
- clickEv = (ev.type === 'touchstart') ? ev.touches[0] : ev,
1322
- xPos = clickEv.pageX - offset.left,
1323
- yPos = clickEv.pageY - offset.top,
1324
- diameter,
1325
- radius,
1326
- rippleEl;
1327
-
1328
- // calculate diameter
1329
- diameter = Math.sqrt(offset.width * offset.width +
1330
- offset.height * offset.height) * 2;
1331
-
1332
- // create element
1333
- rippleEl = document.createElement('div'),
1334
- rippleEl.className = rippleClass;
1316
+ // get ripple element
1317
+ var rippleEl = this._rippleEl;
1335
1318
 
1336
- radius = diameter / 2;
1337
-
1338
- jqLite.css(rippleEl, {
1339
- height: diameter + 'px',
1340
- width: diameter + 'px',
1341
- top: yPos - radius + 'px',
1342
- left: xPos - radius + 'px'
1319
+ // allow a repaint to occur before removing class so animation shows for
1320
+ // tap events
1321
+ util.requestAnimationFrame(function() {
1322
+ jqLite.removeClass(rippleEl, 'mui--is-visible');
1343
1323
  });
1344
-
1345
- return rippleEl;
1346
1324
  }
1347
1325
 
1348
1326
 
@@ -1351,7 +1329,7 @@ module.exports = {
1351
1329
  /** Initialize module listeners */
1352
1330
  initListeners: function() {
1353
1331
  // markup elements available when method is called
1354
- var elList = document.getElementsByClassName(btnClass),
1332
+ var elList = document.getElementsByClassName('mui-btn'),
1355
1333
  i = elList.length;
1356
1334
  while (i--) initialize(elList[i]);
1357
1335
 
@@ -16,15 +16,15 @@
16
16
  }
17
17
 
18
18
  @mixin x-btn-box-shadow-active() {
19
- box-shadow: 0 10px 20px rgba(mui-color('black'), 0.19),
20
- 0 6px 6px rgba(mui-color('black'), 0.23);
21
-
19
+ box-shadow: 0 0px 4px rgba(mui-color('black'), 0.12),
20
+ 1px 3px 4px rgba(mui-color('black'), 0.20);
21
+
22
22
  // IE10+
23
23
  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
24
24
  box-shadow: 0 -1px 2px rgba(mui-color('black'), 0.12),
25
25
  -1px 0px 2px rgba(mui-color('black'), 0.12),
26
- 0 10px 20px rgba(mui-color('black'), 0.19),
27
- 0 6px 6px rgba(mui-color('black'), 0.23);
26
+ 0 0px 4px rgba(mui-color('black'), 0.12),
27
+ 1px 3px 4px rgba(mui-color('black'), 0.20);
28
28
  }
29
29
  }
30
30
 
@@ -83,13 +83,12 @@
83
83
  &:hover,
84
84
  &:focus {
85
85
  @include x-btn-box-shadow-raised();
86
-
87
86
  }
88
87
 
89
88
  &:active:hover {
90
89
  @include x-btn-box-shadow-active();
91
90
  }
92
-
91
+
93
92
  &:disabled,
94
93
  &.mui--is-disabled {
95
94
  cursor: $mui-cursor-disabled;
@@ -2,60 +2,57 @@
2
2
  * MUI Ripple module
3
3
  */
4
4
 
5
- // ============================================================================
6
- // RIPPLE
7
- // ============================================================================
8
- .mui-ripple-effect {
5
+ .mui-btn__ripple-container {
9
6
  position: absolute;
7
+ top: 0;
8
+ left: 0;
9
+ display: block;
10
+ height: 100%;
11
+ width: 100%;
12
+ overflow: hidden;
13
+ z-index: 0;
14
+ }
15
+
16
+ .mui-ripple {
17
+ position: absolute;
18
+ top: 0;
19
+ left: 0;
10
20
  border-radius: 50%;
21
+ opacity: 0;
11
22
  pointer-events: none;
12
23
 
13
- // initial properties
14
- opacity: 0.4;
15
- transform: scale(0.0001);
16
-
17
- &.mui--animate-in {
18
- opacity: 0;
19
- transform: scale(1);
24
+ &.mui--is-animating {
20
25
  transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1),
21
- opacity 0.6s cubic-bezier(0, 0, 0.2, 1);
26
+ width 0.3s cubic-bezier(0, 0, 0.2, 1),
27
+ height 0.3s cubic-bezier(0, 0, 0.2, 1),
28
+ opacity 0.3s cubic-bezier(0, 0, 0.2, 1);
22
29
  }
23
30
 
24
- &.mui--active {
31
+ &.mui--is-visible {
25
32
  opacity: 0.3;
26
33
  }
27
-
28
- &.mui--animate-out {
29
- opacity: 0;
30
- transition: opacity 0.6s cubic-bezier(0, 0, 0.2, 1);
31
- }
32
34
  }
33
35
 
34
-
35
-
36
- // ============================================================================
37
- // BUTTON-SPECIFIC STYLES
38
- // ============================================================================
39
- .mui-btn > .mui-ripple-effect {
36
+ .mui-btn .mui-ripple {
40
37
  background-color: $mui-btn-default-ripple-color;
41
38
  }
42
39
 
43
- .mui-btn--primary > .mui-ripple-effect {
40
+ .mui-btn--primary .mui-ripple {
44
41
  background-color: $mui-btn-primary-ripple-color;
45
42
  }
46
43
 
47
- .mui-btn--dark > .mui-ripple-effect {
44
+ .mui-btn--dark .mui-ripple {
48
45
  background-color: $mui-btn-dark-ripple-color;
49
46
  }
50
47
 
51
- .mui-btn--danger > .mui-ripple-effect {
48
+ .mui-btn--danger .mui-ripple {
52
49
  background-color: $mui-btn-danger-ripple-color;
53
50
  }
54
51
 
55
- .mui-btn--accent > .mui-ripple-effect {
52
+ .mui-btn--accent .mui-ripple {
56
53
  background-color: $mui-btn-accent-ripple-color;
57
54
  }
58
55
 
59
- .mui-btn--flat > .mui-ripple-effect {
56
+ .mui-btn--flat .mui-ripple {
60
57
  background-color: $mui-btn-flat-ripple-color;
61
58
  }
@@ -77,7 +77,7 @@ $mui-base-font-family: Arial, Verdana, Tahoma !default;
77
77
  $mui-base-font-size: 14px !default;
78
78
  $mui-base-font-weight: 400 !default;
79
79
  $mui-base-line-height: 1.429 !default;
80
- $mui-base-font-smoothing: false;
80
+ $mui-base-font-smoothing: false !default;
81
81
 
82
82
 
83
83
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mui-sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitriy Tarasov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-09 00:00:00.000000000 Z
11
+ date: 2016-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -24,34 +24,48 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: railties
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rspec
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '3.3'
47
+ version: '3.5'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '3.3'
54
+ version: '3.5'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rails
56
+ name: sprockets-rails
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '5.0'
61
+ version: '3.0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '5.0'
68
+ version: '3.0'
55
69
  description: MUI is a lightweight framework that follows Google's Material Design
56
70
  guidelines
57
71
  email:
@@ -123,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
137
  version: '0'
124
138
  requirements: []
125
139
  rubyforge_project:
126
- rubygems_version: 2.5.1
140
+ rubygems_version: 2.5.2
127
141
  signing_key:
128
142
  specification_version: 4
129
143
  summary: MUI is a lightweight framework that follows Google's Material Design guidelines