34 lines
898 B
Svelte
34 lines
898 B
Svelte
<script lang="ts">
|
|
import TopPattern from './svgs/TopPattern.svelte';
|
|
import BottomPattern from './svgs/BottomPattern.svelte';
|
|
import { getTheme, PATTERN_OPACITY } from '$lib/utils/themes';
|
|
import { themeStore } from '$lib/stores/theme.svelte';
|
|
|
|
let {
|
|
themeName,
|
|
showTop = true,
|
|
showBottom = true,
|
|
color
|
|
}: {
|
|
themeName?: string | null;
|
|
showTop?: boolean;
|
|
showBottom?: boolean;
|
|
color?: string;
|
|
} = $props();
|
|
|
|
const theme = $derived(getTheme(themeName));
|
|
const patternColor = $derived.by(() => {
|
|
const isDark = themeStore.getResolvedTheme() === 'dark';
|
|
return isDark ? '#FFFFFF' : '#000000';
|
|
});
|
|
</script>
|
|
|
|
{#if theme.pattern !== 'none'}
|
|
{#if showTop}
|
|
<TopPattern pattern={theme.pattern} color={patternColor} opacity={PATTERN_OPACITY} />
|
|
{/if}
|
|
{#if showBottom}
|
|
<BottomPattern pattern={theme.pattern} color={patternColor} opacity={PATTERN_OPACITY} />
|
|
{/if}
|
|
{/if}
|