2024-06-24 15:42:31 +02:00
|
|
|
<script lang="ts">
|
2024-07-07 17:51:46 +02:00
|
|
|
import { page } from "$app/stores";
|
|
|
|
|
2024-07-07 15:14:49 +02:00
|
|
|
export let sectionId: string;
|
2024-06-24 19:05:51 +02:00
|
|
|
export let title: string;
|
2024-07-07 17:51:46 +02:00
|
|
|
|
|
|
|
let animate = false;
|
|
|
|
|
|
|
|
$: hash = $page.url.hash.replace("#", "");
|
|
|
|
|
|
|
|
$: if (hash === sectionId) {
|
|
|
|
animate = true;
|
|
|
|
}
|
2024-06-24 15:42:31 +02:00
|
|
|
</script>
|
|
|
|
|
2024-07-07 17:51:46 +02:00
|
|
|
<section
|
|
|
|
id={sectionId}
|
|
|
|
class="settings-content"
|
|
|
|
class:animate
|
|
|
|
>
|
2024-06-24 19:05:51 +02:00
|
|
|
<h3 class="settings-content-title">{title}</h3>
|
|
|
|
<slot></slot>
|
2024-07-07 15:14:49 +02:00
|
|
|
</section>
|
2024-06-24 15:42:31 +02:00
|
|
|
|
2024-06-24 19:05:51 +02:00
|
|
|
<style>
|
|
|
|
.settings-content {
|
2024-06-24 15:42:31 +02:00
|
|
|
display: flex;
|
2024-06-24 19:05:51 +02:00
|
|
|
flex-direction: column;
|
2024-07-10 15:35:23 +02:00
|
|
|
gap: var(--padding);
|
2024-07-07 17:51:46 +02:00
|
|
|
padding: calc(var(--settings-padding) / 2);
|
|
|
|
border-radius: 18px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.settings-content.animate {
|
|
|
|
animation: highlight 2s;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes highlight {
|
|
|
|
0% {
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
|
|
|
10% {
|
|
|
|
box-shadow: 0 0 0 3.5px var(--blue) inset;
|
|
|
|
}
|
|
|
|
20%, 50% {
|
|
|
|
box-shadow: 0 0 0 3px var(--blue) inset;
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@media screen and (max-width: 750px) {
|
|
|
|
.settings-content {
|
|
|
|
padding: var(--padding);
|
|
|
|
}
|
2024-06-24 15:42:31 +02:00
|
|
|
}
|
|
|
|
</style>
|