@smui/ripple
Version:
Svelte Material UI - Ripple
206 lines (202 loc) • 6.83 kB
CSS
@keyframes mdc-ripple-fg-radius-in {
from {
animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
}
to {
transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
}
@keyframes mdc-ripple-fg-opacity-in {
from {
animation-timing-function: linear;
opacity: 0;
}
to {
opacity: var(--mdc-ripple-fg-opacity, 0);
}
}
@keyframes mdc-ripple-fg-opacity-out {
from {
animation-timing-function: linear;
opacity: var(--mdc-ripple-fg-opacity, 0);
}
to {
opacity: 0;
}
}
.mdc-ripple-surface {
--mdc-ripple-fg-size: 0;
--mdc-ripple-left: 0;
--mdc-ripple-top: 0;
--mdc-ripple-fg-scale: 1;
--mdc-ripple-fg-translate-end: 0;
--mdc-ripple-fg-translate-start: 0;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
will-change: transform, opacity;
position: relative;
outline: none;
overflow: hidden;
}
.mdc-ripple-surface::before, .mdc-ripple-surface::after {
position: absolute;
border-radius: 50%;
opacity: 0;
pointer-events: none;
content: "";
}
.mdc-ripple-surface::before {
transition: opacity 15ms linear, background-color 15ms linear;
z-index: 1;
/* @alternate */
z-index: var(--mdc-ripple-z-index, 1);
}
.mdc-ripple-surface::after {
z-index: 0;
/* @alternate */
z-index: var(--mdc-ripple-z-index, 0);
}
.mdc-ripple-surface.mdc-ripple-upgraded::before {
transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-ripple-surface.mdc-ripple-upgraded::after {
top: 0;
/* @noflip */ /*rtl:ignore*/
left: 0;
transform: scale(0);
transform-origin: center center;
}
.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after {
top: var(--mdc-ripple-top, 0);
/* @noflip */ /*rtl:ignore*/
left: var(--mdc-ripple-left, 0);
}
.mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after {
animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after {
animation: mdc-ripple-fg-opacity-out 150ms;
transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-ripple-surface::before, .mdc-ripple-surface::after {
top: calc(50% - 100%);
/* @noflip */ /*rtl:ignore*/
left: calc(50% - 100%);
width: 200%;
height: 200%;
}
.mdc-ripple-surface.mdc-ripple-upgraded::after {
width: var(--mdc-ripple-fg-size, 100%);
height: var(--mdc-ripple-fg-size, 100%);
}
.mdc-ripple-surface[data-mdc-ripple-is-unbounded],
.mdc-ripple-upgraded--unbounded {
overflow: visible;
}
.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,
.mdc-ripple-upgraded--unbounded::before,
.mdc-ripple-upgraded--unbounded::after {
top: calc(50% - 50%);
/* @noflip */ /*rtl:ignore*/
left: calc(50% - 50%);
width: 100%;
height: 100%;
}
.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,
.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before,
.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after {
top: var(--mdc-ripple-top, calc(50% - 50%));
/* @noflip */ /*rtl:ignore*/
left: var(--mdc-ripple-left, calc(50% - 50%));
width: var(--mdc-ripple-fg-size, 100%);
height: var(--mdc-ripple-fg-size, 100%);
}
.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,
.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after {
width: var(--mdc-ripple-fg-size, 100%);
height: var(--mdc-ripple-fg-size, 100%);
}
.mdc-ripple-surface::before, .mdc-ripple-surface::after {
background-color: #000;
/* @alternate */
background-color: var(--mdc-ripple-color, #000);
}
.mdc-ripple-surface:hover::before, .mdc-ripple-surface.mdc-ripple-surface--hover::before {
opacity: 0.04;
/* @alternate */
opacity: var(--mdc-ripple-hover-opacity, 0.04);
}
.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before, .mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before {
transition-duration: 75ms;
opacity: 0.12;
/* @alternate */
opacity: var(--mdc-ripple-focus-opacity, 0.12);
}
.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after {
transition: opacity 150ms linear;
}
.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after {
transition-duration: 75ms;
opacity: 0.12;
/* @alternate */
opacity: var(--mdc-ripple-press-opacity, 0.12);
}
.mdc-ripple-surface.mdc-ripple-upgraded {
--mdc-ripple-fg-opacity: var(--mdc-ripple-press-opacity, 0.12);
}
.smui-ripple-surface--primary::before, .smui-ripple-surface--primary::after {
background-color: #6200ee;
/* @alternate */
background-color: var(--mdc-ripple-color, var(--mdc-theme-primary, #6200ee));
}
.smui-ripple-surface--primary:hover::before, .smui-ripple-surface--primary.mdc-ripple-surface--hover::before {
opacity: 0.04;
/* @alternate */
opacity: var(--mdc-ripple-hover-opacity, 0.04);
}
.smui-ripple-surface--primary.mdc-ripple-upgraded--background-focused::before, .smui-ripple-surface--primary:not(.mdc-ripple-upgraded):focus::before {
transition-duration: 75ms;
opacity: 0.12;
/* @alternate */
opacity: var(--mdc-ripple-focus-opacity, 0.12);
}
.smui-ripple-surface--primary:not(.mdc-ripple-upgraded)::after {
transition: opacity 150ms linear;
}
.smui-ripple-surface--primary:not(.mdc-ripple-upgraded):active::after {
transition-duration: 75ms;
opacity: 0.12;
/* @alternate */
opacity: var(--mdc-ripple-press-opacity, 0.12);
}
.smui-ripple-surface--primary.mdc-ripple-upgraded {
--mdc-ripple-fg-opacity: var(--mdc-ripple-press-opacity, 0.12);
}
.smui-ripple-surface--secondary::before, .smui-ripple-surface--secondary::after {
background-color: #018786;
/* @alternate */
background-color: var(--mdc-ripple-color, var(--mdc-theme-secondary, #018786));
}
.smui-ripple-surface--secondary:hover::before, .smui-ripple-surface--secondary.mdc-ripple-surface--hover::before {
opacity: 0.04;
/* @alternate */
opacity: var(--mdc-ripple-hover-opacity, 0.04);
}
.smui-ripple-surface--secondary.mdc-ripple-upgraded--background-focused::before, .smui-ripple-surface--secondary:not(.mdc-ripple-upgraded):focus::before {
transition-duration: 75ms;
opacity: 0.12;
/* @alternate */
opacity: var(--mdc-ripple-focus-opacity, 0.12);
}
.smui-ripple-surface--secondary:not(.mdc-ripple-upgraded)::after {
transition: opacity 150ms linear;
}
.smui-ripple-surface--secondary:not(.mdc-ripple-upgraded):active::after {
transition-duration: 75ms;
opacity: 0.12;
/* @alternate */
opacity: var(--mdc-ripple-press-opacity, 0.12);
}
.smui-ripple-surface--secondary.mdc-ripple-upgraded {
--mdc-ripple-fg-opacity: var(--mdc-ripple-press-opacity, 0.12);
}