Skip to main content

Examples

App.svelte
<script>
import { fade } from 'svelte/transition';
import { elasticOut } from 'svelte/easing';

let visible = true;

function spin(node, { duration }) {
return {
duration,
css: (t) => {
const eased = elasticOut(t);

return `
transform: scale(${eased}) rotate(${eased * 1080}deg);
color: hsl(
${~~(t * 360)},
${Math.min(100, 1000 - 1000 * t)}%,
${Math.min(50, 500 - 500 * t)}%
);`;
}
};
}
</script>

<label>
<input type="checkbox" bind:checked={visible} />
visible
</label>

{#if visible}
<div class="centered" in:spin={{ duration: 8000 }} out:fade>
<span>transitions!</span>
</div>
{/if}

<style>
.centered {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}

span {
position: absolute;
transform: translate(-50%, -50%);
font-size: 4em;
}
</style>

loading Svelte compiler...

result = svelte.compile(source, {
generate:
css:
});