mui-sass 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
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