@skeletonlabs/skeleton
Version:
A SvelteKit component library.
22 lines (21 loc) • 754 B
JavaScript
import { cubicInOut } from 'svelte/easing';
import { crossfade } from 'svelte/transition';
// TODO: convert to js transitions on revisit.
// eslint-disable-next-line @typescript-eslint/no-unused-vars
function swoop(duration, x, y) {
return crossfade({
duration: (d) => Math.sqrt(d * duration),
fallback(node) {
const style = getComputedStyle(node);
const transform = style.transform === 'none' ? '' : style.transform;
return {
duration,
easing: cubicInOut,
css: (t, u) => `
transform: ${transform} scale(${t}) translate(${u * x}%, ${u * y}%);
opacity: ${t}
`
};
}
});
}