@universal-material/web
Version:
Material web components
74 lines (69 loc) • 2.2 kB
JavaScript
import { css } from 'lit';
export const styles = css `
:host,
.ripple-container::before {
--_ripple-hover-color: var(--u-ripple-hover-color, var(--u-ripple-color, var(--u-state-layer-color, currentColor)));
--_ripple-pressed-color: var(--u-ripple-pressed-color, var(--u-ripple-color, var(--u-state-layer-color, currentColor)));
--_ripple-hover-opacity: var(--u-ripple-pressed-opacity, var(--u-state-hover-opacity, 0.08));
--_ripple-pressed-opacity: var(--u-ripple-pressed-opacity, .2);
display: block;
inset: 0;
isolation: isolate;
}
.ripple-container {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
border-radius: var(--u-ripple-border-radius, inherit);
}
.ripple-container::before {
content: "";
background: var(--_ripple-hover-color);
opacity: 0;
transition: opacity 200ms;
}
@media (hover: hover) {
:host(:not([disabled]):hover) .ripple-container::before {
content: "";
background: var(--_ripple-hover-color);
opacity: var(--_ripple-hover-opacity);
}
}
:host,
.ripple-container::before,
.ripple {
position: absolute;
border-radius: inherit;
}
.ripple {
top: 50%;
left: 50%;
background: var(--_ripple-pressed-color);
border-radius: 50%;
box-shadow: 0 0 64px 64px var(--_ripple-pressed-color);
opacity: var(--_ripple-pressed-opacity);
transform: scale3d(0, 0, 1);
pointer-events: none;
will-change: transform;
}
.ripple.show {
transition: transform calc(var(--_ripple-transition-duration) / var(--u-ripple-speed, 1)) cubic-bezier(0.19, 1, 0.22, 1), opacity calc(750ms / var(--u-ripple-speed, 1));
transform: scale3d(1, 1, 1);
}
.ripple.show-forced {
transition: transform calc(var(--_ripple-transition-duration) / var(--u-ripple-speed, 1)) cubic-bezier(0.19, 1, 0.22, 1), opacity calc(200ms / var(--u-ripple-speed, 1)) 300ms;
transform: scale3d(2, 2, 1);
opacity: 0;
}
.ripple.dismiss {
opacity: 0;
transform: scale3d(2, 2, 1);
}
::slotted(*) {
position: absolute !important;
inset: 0;
border-radius: inherit;
}
`;
//# sourceMappingURL=ripple.styles.js.map