m3-ripple 1.1.0 → 1.1.2
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.
- package/CHANGELOG.md +11 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +111 -108
- package/dist/ripple.css +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
# 1.1.2 - 2 Jan 2026
|
|
2
|
+
Improvement:
|
|
3
|
+
- add `--ripple-color` to set default ripple color
|
|
4
|
+
|
|
5
|
+
Fix:
|
|
6
|
+
- default ripple to center when using keyboard event
|
|
7
|
+
|
|
8
|
+
# 1.1.1 - 30 Dec 2025
|
|
9
|
+
Fix:
|
|
10
|
+
- ripple sharing element
|
|
11
|
+
|
|
1
12
|
# 1.1.0 - 30 Dec 2025
|
|
2
13
|
Improvement:
|
|
3
14
|
- add `pointer-events: none` to ripple element to prevent blocking pointer events on parent elements
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react/jsx-runtime"),n=require("react"),U=.2,Z=12,J=75,K=.35,Q="forwards",V=({hoverOpacity:P,pressedOpacity:k,disabled:a=!1,className:w="",style:X,easing:E,duration:f=150,minimumPressDuration:C=225,touchDelay:g=150})=>{const[Y,A]=n.useState(!1),[D,I]=n.useState(!1),u=n.useRef(null),x=n.useRef(null),m=n.useRef(""),M=n.useRef(""),S=n.useRef(0),y=n.useRef(void 0),s=n.useRef(0),R=n.useRef(void 0),T=n.useRef(!1);n.useEffect(()=>{if(!x.current)return;const e=x.current.style;P!==void 0&&e.setProperty("--ripple-hover-opacity",P+""),k!==void 0&&e.setProperty("--ripple-pressed-opacity",k+""),f!==void 0&&f!==150&&e.setProperty("--ripple-duration",f+"ms")},[P,k,f]),n.useEffect(()=>{var c;const e=(c=u.current)==null?void 0:c.parentElement;if(!e)return;const t=(r,o)=>e.addEventListener(r,o,!0);return t("click",G),t("contextmenu",F),t("pointercancel",q),t("pointerdown",j),t("pointerenter",v),t("pointerleave",B),t("pointerup",L),()=>{const r=(o,d)=>e.removeEventListener(o,d,!0);r("click",G),r("contextmenu",F),r("pointercancel",q),r("pointerdown",j),r("pointerenter",v),r("pointerleave",B),r("pointerup",L)}},[a,E,f,C,g]);const h=n.useCallback(({pointerType:e})=>e==="touch",[]),i=n.useCallback(e=>{var c,r;if(a||(r=(c=u.current)==null?void 0:c.parentElement)!=null&&r.disabled||!e.isPrimary||R.current&&R.current.pointerId!==e.pointerId)return!1;if(e.type==="pointerenter"||e.type==="pointerleave")return!h(e);const t=e.buttons===1;return h(e)||t},[a,h]),$=n.useCallback(({x:e,y:t})=>{const c=u.current;if(!c)return!1;const r=c.getBoundingClientRect();return e>=r.left&&e<=r.right&&t>=r.top&&t<=r.bottom},[u]),v=n.useCallback(e=>{i(e)&&A(!0)},[i]),N=n.useCallback(()=>{const e=u.current;if(!e)return;const{height:t,width:c}=e.getBoundingClientRect(),r=Math.max(t,c),o=Math.max(K*r,J),d=Math.floor(r*U),H=Math.sqrt(c**2+t**2)+Z;S.current=d,M.current=(H+o)/d+"",m.current=d+"px"},[u]),_=n.useCallback(e=>{const t=u.current;if(!t)return{x:0,y:0};const c=t.getBoundingClientRect(),r=window.scrollX+c.left,o=window.scrollY+c.top;return{x:e.pageX-r,y:e.pageY-o}},[u]),z=n.useCallback(e=>{var o;const t=(o=u.current)==null?void 0:o.parentElement;if(!t)return{startPoint:{x:0,y:0},endPoint:{x:0,y:0}};const c=t.getBoundingClientRect(),r={x:(c.width-S.current)/2,y:(c.height-S.current)/2};return{startPoint:e?_(e):r,endPoint:r}},[u,_]),p=n.useCallback(e=>{var b;const t=x.current;if(!t)return;I(!0),(b=y.current)==null||b.cancel(),N();const{startPoint:c,endPoint:r}=z(e),o=`${c.x}px, ${c.y}px`,d=`${r.x}px, ${r.y}px`;y.current=t.animate({height:[m.current,m.current],width:[m.current,m.current],transform:[`translate(${o}) scale(1)`,`translate(${d}) scale(${M.current})`]},{pseudoElement:"::after",duration:f,easing:E,fill:Q})},[N,f,E,z]),l=n.useCallback(()=>{R.current=void 0,s.current=0;const e=y.current;let t=1/0;if(typeof(e==null?void 0:e.currentTime)=="number"?t=e.currentTime:e!=null&&e.currentTime&&(t=e.currentTime.to("ms").value),t>=C)return void I(!1);setTimeout(()=>{y.current===e&&I(!1)},C-t)},[C]),B=n.useCallback(e=>{i(e)&&(A(!1),s.current!==0&&l())},[l,i]),L=n.useCallback(e=>{if(i(e)){if(s.current===2){s.current=3;return}if(s.current===1){s.current=3,p(R.current);return}}},[i,p]),j=n.useCallback(async e=>{if(i(e)){if(R.current=e,!h(e)){s.current=3,p(e);return}T.current&&!$(e)||(T.current=!1,s.current=1,await new Promise(t=>{setTimeout(t,g)}),s.current===1&&(s.current=2,p(e)))}},[i,h,$,p,g]),G=n.useCallback(()=>{if(!a){if(s.current===3){l();return}s.current===0&&(p(),l())}},[a,l,p]),q=n.useCallback(e=>{i(e)&&l()},[l,i]),F=n.useCallback(()=>{a||(T.current=!0,l())},[a,l]);return O.jsx("div",{ref:u,className:`salty-ripple${w?` ${w}`:""}`,style:X,"aria-hidden":"true",children:O.jsx("div",{ref:x,className:`salty-ripple-surface${Y?" --hover":""}${D?" --press":""}`})})};exports.Ripple=V;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,4BAA4B,CAAA;IAErC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AA+CD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,kHAUpB,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,4BAA4B,CAAA;IAErC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AA+CD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,kHAUpB,WAAW,4CAwVb,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,41 +1,42 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
3
|
-
const
|
|
4
|
-
hoverOpacity:
|
|
5
|
-
pressedOpacity:
|
|
1
|
+
import { jsx as q } from "react/jsx-runtime";
|
|
2
|
+
import { useState as D, useRef as f, useEffect as H, useCallback as o } from "react";
|
|
3
|
+
const Q = 0.2, V = 12, W = 75, b = 0.35, ee = "forwards", ne = ({
|
|
4
|
+
hoverOpacity: I,
|
|
5
|
+
pressedOpacity: g,
|
|
6
6
|
disabled: a = !1,
|
|
7
|
-
className:
|
|
8
|
-
style:
|
|
9
|
-
easing:
|
|
10
|
-
duration:
|
|
11
|
-
minimumPressDuration:
|
|
12
|
-
touchDelay:
|
|
7
|
+
className: M = "",
|
|
8
|
+
style: U,
|
|
9
|
+
easing: T,
|
|
10
|
+
duration: p = 150,
|
|
11
|
+
minimumPressDuration: P = 225,
|
|
12
|
+
touchDelay: w = 150
|
|
13
13
|
}) => {
|
|
14
|
-
const [
|
|
14
|
+
const [Z, N] = D(!1), [J, S] = D(!1), i = f(null), y = f(null), h = f(""), v = f(""), C = f(0), E = f(void 0), c = f(
|
|
15
15
|
0
|
|
16
16
|
/* INACTIVE */
|
|
17
|
-
), x =
|
|
18
|
-
|
|
19
|
-
if (!
|
|
20
|
-
const e =
|
|
21
|
-
|
|
22
|
-
}, [
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
17
|
+
), x = f(void 0), A = f(!1);
|
|
18
|
+
H(() => {
|
|
19
|
+
if (!y.current) return;
|
|
20
|
+
const e = y.current.style;
|
|
21
|
+
I !== void 0 && e.setProperty("--ripple-hover-opacity", I + ""), g !== void 0 && e.setProperty("--ripple-pressed-opacity", g + ""), p !== void 0 && p !== 150 && e.setProperty("--ripple-duration", p + "ms");
|
|
22
|
+
}, [I, g, p]), H(() => {
|
|
23
|
+
var n;
|
|
24
|
+
const e = (n = i.current) == null ? void 0 : n.parentElement;
|
|
25
|
+
if (!e) return;
|
|
26
|
+
const t = (r, s) => e.addEventListener(r, s, !0);
|
|
27
|
+
return t("click", Y), t("contextmenu", j), t("pointercancel", O), t("pointerdown", X), t("pointerenter", z), t("pointerleave", G), t("pointerup", F), () => {
|
|
28
|
+
const r = (s, m) => e.removeEventListener(s, m, !0);
|
|
29
|
+
r("click", Y), r("contextmenu", j), r("pointercancel", O), r("pointerdown", X), r("pointerenter", z), r("pointerleave", G), r("pointerup", F);
|
|
30
|
+
};
|
|
31
|
+
}, [a, T, p, P, w]);
|
|
31
32
|
const R = o(
|
|
32
33
|
({ pointerType: e }) => e === "touch",
|
|
33
34
|
[]
|
|
34
|
-
),
|
|
35
|
+
), u = o(
|
|
35
36
|
(e) => {
|
|
36
|
-
var
|
|
37
|
+
var n, r;
|
|
37
38
|
if (a || // @ts-ignore
|
|
38
|
-
(
|
|
39
|
+
(r = (n = i.current) == null ? void 0 : n.parentElement) != null && r.disabled || !e.isPrimary || x.current && x.current.pointerId !== e.pointerId)
|
|
39
40
|
return !1;
|
|
40
41
|
if (e.type === "pointerenter" || e.type === "pointerleave")
|
|
41
42
|
return !R(e);
|
|
@@ -43,153 +44,155 @@ const W = 0.2, b = 12, ee = 75, te = 0.35, re = "forwards", ce = ({
|
|
|
43
44
|
return R(e) || t;
|
|
44
45
|
},
|
|
45
46
|
[a, R]
|
|
46
|
-
),
|
|
47
|
+
), _ = o(
|
|
47
48
|
// @ts-ignore
|
|
48
49
|
({ x: e, y: t }) => {
|
|
49
|
-
const
|
|
50
|
-
if (!
|
|
51
|
-
const
|
|
52
|
-
return e >=
|
|
50
|
+
const n = i.current;
|
|
51
|
+
if (!n) return !1;
|
|
52
|
+
const r = n.getBoundingClientRect();
|
|
53
|
+
return e >= r.left && e <= r.right && t >= r.top && t <= r.bottom;
|
|
53
54
|
},
|
|
54
|
-
[
|
|
55
|
-
),
|
|
55
|
+
[i]
|
|
56
|
+
), z = o(
|
|
56
57
|
(e) => {
|
|
57
|
-
|
|
58
|
+
u(e) && N(!0);
|
|
58
59
|
},
|
|
59
|
-
[
|
|
60
|
-
),
|
|
61
|
-
const e =
|
|
60
|
+
[u]
|
|
61
|
+
), B = o(() => {
|
|
62
|
+
const e = i.current;
|
|
62
63
|
if (!e) return;
|
|
63
|
-
const { height: t, width:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
),
|
|
67
|
-
|
|
68
|
-
}, [
|
|
64
|
+
const { height: t, width: n } = e.getBoundingClientRect(), r = Math.max(t, n), s = Math.max(
|
|
65
|
+
b * r,
|
|
66
|
+
W
|
|
67
|
+
), m = Math.floor(r * Q), K = Math.sqrt(n ** 2 + t ** 2) + V;
|
|
68
|
+
C.current = m, v.current = (K + s) / m + "", h.current = m + "px";
|
|
69
|
+
}, [i]), L = o(
|
|
69
70
|
(e) => {
|
|
70
|
-
const t =
|
|
71
|
+
const t = i.current;
|
|
71
72
|
if (!t) return { x: 0, y: 0 };
|
|
72
|
-
const
|
|
73
|
+
const n = t.getBoundingClientRect(), r = window.scrollX + n.left, s = window.scrollY + n.top;
|
|
73
74
|
return {
|
|
74
|
-
x: e.pageX -
|
|
75
|
-
y: e.pageY -
|
|
75
|
+
x: e.pageX - r,
|
|
76
|
+
y: e.pageY - s
|
|
76
77
|
};
|
|
77
78
|
},
|
|
78
|
-
[
|
|
79
|
-
),
|
|
79
|
+
[i]
|
|
80
|
+
), k = o(
|
|
80
81
|
(e) => {
|
|
81
|
-
|
|
82
|
+
var s;
|
|
83
|
+
const t = (s = i.current) == null ? void 0 : s.parentElement;
|
|
82
84
|
if (!t)
|
|
83
85
|
return { startPoint: { x: 0, y: 0 }, endPoint: { x: 0, y: 0 } };
|
|
84
|
-
const
|
|
85
|
-
x: (
|
|
86
|
-
y: (
|
|
86
|
+
const n = t.getBoundingClientRect(), r = {
|
|
87
|
+
x: (n.width - C.current) / 2,
|
|
88
|
+
y: (n.height - C.current) / 2
|
|
87
89
|
};
|
|
88
90
|
return {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
+
// If using keyboard, start in the center
|
|
92
|
+
startPoint: e ? L(e) : r,
|
|
93
|
+
endPoint: r
|
|
91
94
|
};
|
|
92
95
|
},
|
|
93
|
-
[
|
|
94
|
-
),
|
|
96
|
+
[i, L]
|
|
97
|
+
), d = o(
|
|
95
98
|
(e) => {
|
|
96
|
-
var
|
|
97
|
-
const t =
|
|
99
|
+
var $;
|
|
100
|
+
const t = y.current;
|
|
98
101
|
if (!t) return;
|
|
99
|
-
|
|
100
|
-
const { startPoint:
|
|
101
|
-
|
|
102
|
+
S(!0), ($ = E.current) == null || $.cancel(), B();
|
|
103
|
+
const { startPoint: n, endPoint: r } = k(e), s = `${n.x}px, ${n.y}px`, m = `${r.x}px, ${r.y}px`;
|
|
104
|
+
E.current = t.animate(
|
|
102
105
|
{
|
|
103
106
|
height: [h.current, h.current],
|
|
104
107
|
width: [h.current, h.current],
|
|
105
108
|
transform: [
|
|
106
|
-
`translate(${
|
|
107
|
-
`translate(${
|
|
109
|
+
`translate(${s}) scale(1)`,
|
|
110
|
+
`translate(${m}) scale(${v.current})`
|
|
108
111
|
]
|
|
109
112
|
},
|
|
110
113
|
{
|
|
111
114
|
pseudoElement: "::after",
|
|
112
|
-
duration:
|
|
113
|
-
easing:
|
|
114
|
-
fill:
|
|
115
|
+
duration: p,
|
|
116
|
+
easing: T,
|
|
117
|
+
fill: ee
|
|
115
118
|
}
|
|
116
119
|
);
|
|
117
120
|
},
|
|
118
|
-
[
|
|
119
|
-
),
|
|
121
|
+
[B, p, T, k]
|
|
122
|
+
), l = o(() => {
|
|
120
123
|
x.current = void 0, c.current = 0;
|
|
121
|
-
const e =
|
|
124
|
+
const e = E.current;
|
|
122
125
|
let t = 1 / 0;
|
|
123
|
-
if (typeof (e == null ? void 0 : e.currentTime) == "number" ? t = e.currentTime : e != null && e.currentTime && (t = e.currentTime.to("ms").value), t >=
|
|
124
|
-
return void
|
|
126
|
+
if (typeof (e == null ? void 0 : e.currentTime) == "number" ? t = e.currentTime : e != null && e.currentTime && (t = e.currentTime.to("ms").value), t >= P)
|
|
127
|
+
return void S(!1);
|
|
125
128
|
setTimeout(() => {
|
|
126
|
-
|
|
127
|
-
},
|
|
128
|
-
}, [
|
|
129
|
+
E.current === e && S(!1);
|
|
130
|
+
}, P - t);
|
|
131
|
+
}, [P]), G = o(
|
|
129
132
|
(e) => {
|
|
130
|
-
|
|
133
|
+
u(e) && (N(!1), c.current !== 0 && l());
|
|
131
134
|
},
|
|
132
|
-
[
|
|
133
|
-
),
|
|
135
|
+
[l, u]
|
|
136
|
+
), F = o(
|
|
134
137
|
(e) => {
|
|
135
|
-
if (
|
|
138
|
+
if (u(e)) {
|
|
136
139
|
if (c.current === 2) {
|
|
137
140
|
c.current = 3;
|
|
138
141
|
return;
|
|
139
142
|
}
|
|
140
143
|
if (c.current === 1) {
|
|
141
|
-
c.current = 3,
|
|
144
|
+
c.current = 3, d(x.current);
|
|
142
145
|
return;
|
|
143
146
|
}
|
|
144
147
|
}
|
|
145
148
|
},
|
|
146
|
-
[
|
|
147
|
-
),
|
|
149
|
+
[u, d]
|
|
150
|
+
), X = o(
|
|
148
151
|
async (e) => {
|
|
149
|
-
if (
|
|
152
|
+
if (u(e)) {
|
|
150
153
|
if (x.current = e, !R(e)) {
|
|
151
|
-
c.current = 3,
|
|
154
|
+
c.current = 3, d(e);
|
|
152
155
|
return;
|
|
153
156
|
}
|
|
154
|
-
|
|
155
|
-
setTimeout(t,
|
|
156
|
-
}), c.current === 1 && (c.current = 2,
|
|
157
|
+
A.current && !_(e) || (A.current = !1, c.current = 1, await new Promise((t) => {
|
|
158
|
+
setTimeout(t, w);
|
|
159
|
+
}), c.current === 1 && (c.current = 2, d(e)));
|
|
157
160
|
}
|
|
158
161
|
},
|
|
159
|
-
[
|
|
160
|
-
),
|
|
162
|
+
[u, R, _, d, w]
|
|
163
|
+
), Y = o(() => {
|
|
161
164
|
if (!a) {
|
|
162
165
|
if (c.current === 3) {
|
|
163
|
-
|
|
166
|
+
l();
|
|
164
167
|
return;
|
|
165
168
|
}
|
|
166
|
-
c.current === 0 && (
|
|
169
|
+
c.current === 0 && (d(), l());
|
|
167
170
|
}
|
|
168
|
-
}, [a,
|
|
171
|
+
}, [a, l, d]), O = o(
|
|
169
172
|
(e) => {
|
|
170
|
-
|
|
173
|
+
u(e) && l();
|
|
171
174
|
},
|
|
172
|
-
[
|
|
173
|
-
),
|
|
174
|
-
a || (
|
|
175
|
-
}, [a,
|
|
176
|
-
return /* @__PURE__ */
|
|
175
|
+
[l, u]
|
|
176
|
+
), j = o(() => {
|
|
177
|
+
a || (A.current = !0, l());
|
|
178
|
+
}, [a, l]);
|
|
179
|
+
return /* @__PURE__ */ q(
|
|
177
180
|
"div",
|
|
178
181
|
{
|
|
179
|
-
ref:
|
|
180
|
-
className: `salty-ripple${
|
|
181
|
-
style:
|
|
182
|
+
ref: i,
|
|
183
|
+
className: `salty-ripple${M ? ` ${M}` : ""}`,
|
|
184
|
+
style: U,
|
|
182
185
|
"aria-hidden": "true",
|
|
183
|
-
children: /* @__PURE__ */
|
|
186
|
+
children: /* @__PURE__ */ q(
|
|
184
187
|
"div",
|
|
185
188
|
{
|
|
186
|
-
ref:
|
|
187
|
-
className: `salty-ripple-surface${
|
|
189
|
+
ref: y,
|
|
190
|
+
className: `salty-ripple-surface${Z ? " --hover" : ""}${J ? " --press" : ""}`
|
|
188
191
|
}
|
|
189
192
|
)
|
|
190
193
|
}
|
|
191
194
|
);
|
|
192
195
|
};
|
|
193
196
|
export {
|
|
194
|
-
|
|
197
|
+
ne as Ripple
|
|
195
198
|
};
|
package/dist/ripple.css
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
.salty-ripple .salty-ripple-surface::before {
|
|
38
38
|
width: 100%;
|
|
39
39
|
height: 100%;
|
|
40
|
-
background-color: currentColor;
|
|
40
|
+
background-color: var(--ripple-color, currentColor);
|
|
41
41
|
inset: 0;
|
|
42
42
|
transition:
|
|
43
43
|
opacity var(--ripple-duration, 150ms),
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
inset: 0;
|
|
49
49
|
background: radial-gradient(
|
|
50
50
|
closest-side,
|
|
51
|
-
currentColor max(100% - 70px, 65%),
|
|
51
|
+
var(--ripple-color, currentColor) max(100% - 70px, 65%),
|
|
52
52
|
transparent 100%
|
|
53
53
|
);
|
|
54
54
|
transform-origin: center center;
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
.salty-ripple .salty-ripple-surface.--hover::before {
|
|
59
|
-
background-color: currentColor;
|
|
59
|
+
background-color: var(--ripple-color, currentColor);
|
|
60
60
|
opacity: var(--ripple-hover-opacity, 0.08);
|
|
61
61
|
}
|
|
62
62
|
|