2024-03-17 09:37:49 +00:00
|
|
|
<script lang="ts">
|
2024-03-17 09:33:22 +00:00
|
|
|
import "../styles/thomaswilson.css";
|
2024-03-17 22:01:32 +00:00
|
|
|
import {
|
|
|
|
|
colourSchemeStore,
|
|
|
|
|
colourSchemes,
|
|
|
|
|
darkColourScheme,
|
|
|
|
|
lightColourScheme,
|
|
|
|
|
} from "../stores/colourSchemeStore.ts";
|
2024-03-17 09:33:22 +00:00
|
|
|
import { browser } from "$app/environment";
|
2024-03-17 22:01:32 +00:00
|
|
|
import { onMount } from "svelte";
|
2025-01-04 15:35:07 +00:00
|
|
|
interface Props {
|
|
|
|
|
children?: import('svelte').Snippet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let { children }: Props = $props();
|
2024-03-17 09:33:22 +00:00
|
|
|
|
2024-03-17 22:01:32 +00:00
|
|
|
onMount(() => {
|
|
|
|
|
const prefersDarkmode: boolean = window.matchMedia(
|
|
|
|
|
"(prefers-color-scheme: dark)"
|
|
|
|
|
).matches;
|
|
|
|
|
|
|
|
|
|
const colourSchemeName: string | null =
|
|
|
|
|
localStorage.getItem("colourScheme");
|
|
|
|
|
const colourScheme = colourSchemes?.[colourSchemeName];
|
2024-03-17 09:33:22 +00:00
|
|
|
|
2024-03-17 22:01:32 +00:00
|
|
|
if (colourScheme) {
|
|
|
|
|
colourSchemeStore.set(colourScheme);
|
|
|
|
|
} else if (prefersDarkmode) {
|
|
|
|
|
colourSchemeStore.set(darkColourScheme);
|
|
|
|
|
} else {
|
|
|
|
|
colourSchemeStore.set(lightColourScheme);
|
2024-03-17 09:33:22 +00:00
|
|
|
}
|
|
|
|
|
});
|
2024-03-17 22:01:32 +00:00
|
|
|
|
|
|
|
|
colourSchemeStore.subscribe((value) => {
|
|
|
|
|
if (!browser) return;
|
2024-09-28 15:07:16 +00:00
|
|
|
|
2024-03-17 22:01:32 +00:00
|
|
|
document.documentElement.style.setProperty(
|
|
|
|
|
"--colour-scheme-background",
|
|
|
|
|
value.background
|
|
|
|
|
);
|
|
|
|
|
|
2024-09-28 15:07:16 +00:00
|
|
|
// document.documentElement.style.setProperty(
|
|
|
|
|
// "--colour-scheme-back""
|
|
|
|
|
// )
|
|
|
|
|
|
2024-03-17 22:01:32 +00:00
|
|
|
document.documentElement.style.setProperty(
|
|
|
|
|
"--colour-scheme-text",
|
|
|
|
|
value.text
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
document.documentElement.style.setProperty(
|
|
|
|
|
"--colour-scheme-background-accent",
|
|
|
|
|
value.backgroundAccent
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
document.documentElement.style.setProperty(
|
|
|
|
|
"--colour-scheme-text-accent",
|
|
|
|
|
value.textAccent
|
|
|
|
|
);
|
|
|
|
|
});
|
2022-04-17 06:23:44 +00:00
|
|
|
</script>
|
|
|
|
|
|
2022-05-27 19:35:55 +00:00
|
|
|
<svelte:head>
|
2024-03-17 09:33:22 +00:00
|
|
|
<title>Thomas Wilson</title>
|
2022-05-27 19:35:55 +00:00
|
|
|
</svelte:head>
|
|
|
|
|
|
2025-01-04 15:35:07 +00:00
|
|
|
{@render children?.()}
|