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 +4 -4
- data/.travis.yml +3 -2
- data/CHANGELOG.md +4 -0
- data/lib/mui/sass/version.rb +1 -1
- data/mui-sass.gemspec +3 -2
- data/vendor/assets/javascripts/mui.js +56 -78
- data/vendor/assets/stylesheets/mui/_buttons.scss +6 -7
- data/vendor/assets/stylesheets/mui/_ripple.scss +26 -29
- data/vendor/assets/stylesheets/mui/_variables.scss +1 -1
- metadata +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e8e62f5ff04b21df0e6f087d297dd159ed2fae0
|
4
|
+
data.tar.gz: cc1cae909d8f80063160bd99771d8d6a4674fc64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57cab389871e9dc3797e5035806066e8817addfbfdaf183b3f8bd6142073abf924a2bd3df35acee6e0006d4c164a6fdaa983f819a63db9537d98fd82e7c6c0bb
|
7
|
+
data.tar.gz: c7782a0a9813545e20c0ccfe45440c8d973656d1daca5146f3060873ac5c45fad0982e4064caee37799870defd8436c78e986c5bb65d0673c961fc4be50654b0
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/lib/mui/sass/version.rb
CHANGED
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 '
|
27
|
-
spec.add_development_dependency '
|
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
|
1263
|
+
if (buttonEl.disabled) return;
|
1258
1264
|
|
1259
|
-
// add mouseup
|
1260
|
-
if (!
|
1265
|
+
// add mouseup handler on first-click
|
1266
|
+
if (!rippleEl._init) {
|
1261
1267
|
jqLite.on(buttonEl, mouseUpEvents, mouseUpHandler);
|
1262
|
-
|
1268
|
+
rippleEl._init = true;
|
1263
1269
|
}
|
1264
1270
|
|
1265
|
-
//
|
1266
|
-
var
|
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
|
-
|
1295
|
+
jqLite.addClass(rippleEl, 'mui--is-visible');
|
1296
|
+
jqLite.removeClass(rippleEl, 'mui--is-animating');
|
1269
1297
|
|
1270
|
-
//
|
1298
|
+
// start animation
|
1271
1299
|
util.requestAnimationFrame(function() {
|
1272
|
-
jqLite.
|
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
|
-
|
1283
|
-
|
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
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
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(
|
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
|
20
|
-
|
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
|
27
|
-
|
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
|
-
|
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
|
-
|
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--
|
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
|
40
|
+
.mui-btn--primary .mui-ripple {
|
44
41
|
background-color: $mui-btn-primary-ripple-color;
|
45
42
|
}
|
46
43
|
|
47
|
-
.mui-btn--dark
|
44
|
+
.mui-btn--dark .mui-ripple {
|
48
45
|
background-color: $mui-btn-dark-ripple-color;
|
49
46
|
}
|
50
47
|
|
51
|
-
.mui-btn--danger
|
48
|
+
.mui-btn--danger .mui-ripple {
|
52
49
|
background-color: $mui-btn-danger-ripple-color;
|
53
50
|
}
|
54
51
|
|
55
|
-
.mui-btn--accent
|
52
|
+
.mui-btn--accent .mui-ripple {
|
56
53
|
background-color: $mui-btn-accent-ripple-color;
|
57
54
|
}
|
58
55
|
|
59
|
-
.mui-btn--flat
|
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
|
+
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-
|
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.
|
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.
|
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: '
|
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: '
|
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.
|
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
|