diff --git a/src/lib/components/home/StageAmbience.svelte b/src/lib/components/home/StageAmbience.svelte index 386de94..f7fcac0 100644 --- a/src/lib/components/home/StageAmbience.svelte +++ b/src/lib/components/home/StageAmbience.svelte @@ -4,7 +4,8 @@ import Cloud from '../svg/Cloud.svelte'; import Moon from '../svg/Moon.svelte'; import Star from '../svg/Star.svelte'; - import Ground from '../svg/Ground.svelte'; + import Meadow from '../svg/Meadow.svelte'; + import Butterfly from '../svg/Butterfly.svelte'; let { stage }: { stage: Stage } = $props(); @@ -57,15 +58,6 @@ { l: 93, t: 61, s: 30, sc: 3, rot: 10, d: 2.5, dl: 0.2 }, ]; - const grass: Deco[] = [ - { l: 5, b: 1, s: 66, d: 2.4, dl: 0 }, - { l: 19, b: 2, s: 48, flip: true, d: 2.8, dl: 0.4 }, - { l: 33, b: 1, s: 56, d: 2.2, dl: 0.7 }, - { l: 63, b: 2, s: 50, flip: true, d: 2.6, dl: 0.2 }, - { l: 78, b: 1, s: 70, d: 2.3, dl: 0.9 }, - { l: 90, b: 2, s: 46, flip: true, d: 2.7, dl: 0.5 }, - ]; - function baseStyle(d: Deco): string { const vert = d.b != null ? `bottom:${d.b}%` : `top:${d.t}%`; return `left:${d.l}%; ${vert}; transform: scaleX(${d.flip ? -1 : 1}) rotate(${d.rot ?? 0}deg);`; @@ -98,11 +90,10 @@ {/each} {:else} - {#each grass as d, i (i)} - - - - {/each} + + + + {/if} @@ -139,10 +130,22 @@ 50% { opacity: 1; transform: scale(1.35); } } - .sway { animation: sway var(--dur, 2.5s) ease-in-out infinite alternate; transform-origin: bottom center; } - @keyframes sway { - from { transform: rotate(-12deg); } - to { transform: rotate(12deg); } + .butterfly { position: absolute; } + .b1 { animation: fly1 9s ease-in-out infinite; } + .b2 { animation: fly2 11s ease-in-out infinite; } + @keyframes fly1 { + 0% { left: 12%; top: 62%; } + 25% { left: 24%; top: 44%; } + 50% { left: 35%; top: 56%; } + 75% { left: 20%; top: 50%; } + 100% { left: 12%; top: 62%; } + } + @keyframes fly2 { + 0% { left: 64%; top: 42%; } + 25% { left: 80%; top: 58%; } + 50% { left: 88%; top: 46%; } + 75% { left: 72%; top: 38%; } + 100% { left: 64%; top: 42%; } } .moon { @@ -179,6 +182,6 @@ } @media (prefers-reduced-motion: reduce) { - .anim, .moon { animation: none; } + .anim, .moon, .butterfly { animation: none; } } diff --git a/src/lib/components/svg/Butterfly.svelte b/src/lib/components/svg/Butterfly.svelte new file mode 100644 index 0000000..d70c402 --- /dev/null +++ b/src/lib/components/svg/Butterfly.svelte @@ -0,0 +1,46 @@ + + + + + diff --git a/src/lib/components/svg/Meadow.svelte b/src/lib/components/svg/Meadow.svelte new file mode 100644 index 0000000..5b7fe93 --- /dev/null +++ b/src/lib/components/svg/Meadow.svelte @@ -0,0 +1,95 @@ + + + + +