diff --git a/src/core/components/mdInkRipple/index.js b/src/core/components/mdInkRipple/index.js
index 0f754e0..0746349 100644
--- a/src/core/components/mdInkRipple/index.js
+++ b/src/core/components/mdInkRipple/index.js
@@ -1,5 +1,5 @@
import 'scopedQuerySelectorShim/dist/scopedQuerySelectorShim';
-import './mdInkRipple.vue';
+import mdInkRipple from './mdInkRipple.vue';
export default function install(Vue) {
let rippleParentClass = 'md-ink-ripple';
@@ -116,31 +116,5 @@ export default function install(Vue) {
});
});
- Vue.component('md-ink-ripple', {
- props: {
- mdDisabled: Boolean
- },
- render(createElement) {
- return createElement('div', {
- staticClass: 'md-ink-ripple'
- });
- },
- watch: {
- mdDisabled() {
- if (this.mdDisabled) {
- unregisterMouseEvent(this.$el.parentNode);
- } else {
- createRipple(this.$el.parentNode, this.$el);
- }
- }
- },
- mounted() {
- if (!this.mdDisabled) {
- createRipple(this.$el.parentNode, this.$el);
- }
- },
- destroyed() {
- unregisterMouseEvent(this.$el.parentNode);
- }
- });
+ Vue.component('md-ink-ripple', Vue.extend(mdInkRipple));
}
diff --git a/src/core/components/mdInkRipple/mdInkRipple.scss b/src/core/components/mdInkRipple/mdInkRipple.scss
index a7bf4e4..9891b0b 100644
--- a/src/core/components/mdInkRipple/mdInkRipple.scss
+++ b/src/core/components/mdInkRipple/mdInkRipple.scss
@@ -8,25 +8,32 @@
right: 0;
bottom: 0;
left: 0;
- mask-image: radial-gradient(circle, white 100%, black 100%);
+ -webkit-mask-image: radial-gradient(circle, white 100%, black 100%);
transition: $swift-ease-in;
}
.md-ripple {
position: absolute;
- transform: scale(0);
background-color: currentColor;
- opacity: .26;
border-radius: 50%;
+ opacity: .2;
+ transform: scale(0) translateZ(0);
+ transition: none;
+ will-change: background-color, opacity, transform, width, height, top, left;
+
+ &.md-fadeout {
+ opacity: 0;
+ transition: $swift-ease-out;
+ transition-duration: .6s;
+ }
&.md-active {
- animation: ripple 1s $swift-ease-out-timing-function;
+ animation: ripple 1s $swift-ease-out-timing-function forwards;
}
}
@keyframes ripple {
to {
- transform: scale(1.5);
- opacity: 0;
+ transform: scale(2.2) translateZ(0);
}
}
diff --git a/src/core/components/mdInkRipple/mdInkRipple.vue b/src/core/components/mdInkRipple/mdInkRipple.vue
index 2932212..f8e5c2e 100644
--- a/src/core/components/mdInkRipple/mdInkRipple.vue
+++ b/src/core/components/mdInkRipple/mdInkRipple.vue
@@ -1 +1,179 @@
+
+
+
+
+
+
diff --git a/src/core/components/mdTheme/index.js b/src/core/components/mdTheme/index.js
index 212b3bd..8279483 100644
--- a/src/core/components/mdTheme/index.js
+++ b/src/core/components/mdTheme/index.js
@@ -121,7 +121,8 @@ export default function install(Vue) {
Vue.material = new Vue({
data: () => ({
styles: [],
- currentTheme: null
+ currentTheme: null,
+ inkRipple: true
}),
methods: {
registerTheme(name, spec) {