From 8ad6fda412e820f7751fdb247144225fe616c943 Mon Sep 17 00:00:00 2001 From: nub31 Date: Mon, 16 Mar 2026 23:35:26 +0100 Subject: [PATCH] ... --- public/map_marker.png | Bin 0 -> 28166 bytes src/Navigation.svelte | 2 +- src/app.css | 121 +++++++++++-------- src/lib/components/ContactForm.svelte | 2 +- src/lib/stores/{theme.svelte.ts => theme.ts} | 8 +- 5 files changed, 79 insertions(+), 54 deletions(-) create mode 100644 public/map_marker.png rename src/lib/stores/{theme.svelte.ts => theme.ts} (74%) diff --git a/public/map_marker.png b/public/map_marker.png new file mode 100644 index 0000000000000000000000000000000000000000..41c4215e793cba3f788bc9cf57e4274f25cc9a6a GIT binary patch literal 28166 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 H7x4c8yNN3P literal 0 HcmV?d00001 diff --git a/src/Navigation.svelte b/src/Navigation.svelte index 5d35adc..a56b4ab 100644 --- a/src/Navigation.svelte +++ b/src/Navigation.svelte @@ -4,7 +4,7 @@ import moonIcon from "./assets/icons/moon.svg"; import { slide } from "svelte/transition"; import Toggle from "./lib/components/Toggle.svelte"; - import { darkTheme } from "./lib/stores/theme.svelte"; + import { darkTheme } from "./lib/stores/theme"; import { Routes } from "./lib/global/routes"; import { isCurrentPath } from "./lib/components/Router.svelte"; diff --git a/src/app.css b/src/app.css index 3036628..e6679af 100644 --- a/src/app.css +++ b/src/app.css @@ -1,5 +1,77 @@ @import "tailwindcss"; +@custom-variant dark (&:where([data-theme='dark'], [data-theme='dark'] *)); + +:root { + --mb-color-primary-100: rgb(250 250 250); + --mb-color-primary-200: rgb(240 240 240); + --mb-color-primary-300: rgb(230 230 230); + --mb-color-primary-400: rgb(220 220 220); + --mb-color-primary-500: rgb(210 210 210); + --mb-color-primary-600: rgb(200 200 200); + --mb-color-primary-700: rgb(190 190 190); + --mb-color-primary-800: rgb(180 180 180); + --mb-color-primary-900: rgb(170 170 170); + + --mb-color-contrast-100: rgb(220 220 220); + --mb-color-contrast-200: rgb(200 200 200); + --mb-color-contrast-300: rgb(180 180 180); + --mb-color-contrast-400: rgb(160 160 160); + --mb-color-contrast-500: rgb(140 140 140); + --mb-color-contrast-600: rgb(110 110 110); + --mb-color-contrast-700: rgb(80 80 80); + --mb-color-contrast-800: rgb(60 60 60); + --mb-color-contrast-900: rgb(30 30 30); +} + +[data-theme="dark"] { + --mb-color-primary-100: rgb(28 28 28); + --mb-color-primary-200: rgb(32 32 32); + --mb-color-primary-300: rgb(38 38 38); + --mb-color-primary-400: rgb(44 44 44); + --mb-color-primary-500: rgb(50 50 50); + --mb-color-primary-600: rgb(56 56 56); + --mb-color-primary-700: rgb(62 62 62); + --mb-color-primary-800: rgb(68 68 68); + --mb-color-primary-900: rgb(74 74 74); + + --mb-color-contrast-100: rgb(25 25 25); + --mb-color-contrast-200: rgb(50 50 50); + --mb-color-contrast-300: rgb(80 80 80); + --mb-color-contrast-400: rgb(110 110 110); + --mb-color-contrast-500: rgb(140 140 140); + --mb-color-contrast-600: rgb(160 160 160); + --mb-color-contrast-700: rgb(180 180 180); + --mb-color-contrast-800: rgb(200 200 200); + --mb-color-contrast-900: rgb(220 220 220); +} + +@theme inline { + --color-accent: rgb(255 29 37); + + --color-primary-100: var(--mb-color-primary-100); + --color-primary-200: var(--mb-color-primary-200); + --color-primary-300: var(--mb-color-primary-300); + --color-primary-400: var(--mb-color-primary-400); + --color-primary-500: var(--mb-color-primary-500); + --color-primary-600: var(--mb-color-primary-600); + --color-primary-700: var(--mb-color-primary-700); + --color-primary-800: var(--mb-color-primary-800); + --color-primary-900: var(--mb-color-primary-900); + + --color-contrast-100: var(--mb-color-contrast-100); + --color-contrast-200: var(--mb-color-contrast-200); + --color-contrast-300: var(--mb-color-contrast-300); + --color-contrast-400: var(--mb-color-contrast-400); + --color-contrast-500: var(--mb-color-contrast-500); + --color-contrast-600: var(--mb-color-contrast-600); + --color-contrast-700: var(--mb-color-contrast-700); + --color-contrast-800: var(--mb-color-contrast-800); + --color-contrast-900: var(--mb-color-contrast-900); + + --shadow-t-lg: 0px -4px 6px -1px rgba(0, 0, 0, 0.1); +} + @layer base { *, *::before, @@ -19,29 +91,8 @@ serif; } - body, - h1, - h2, - h3, - h4, - p, - figure, - blockquote, - dl, - dd { - margin: 0; - } - - html, - body { - background-color: rgb(var(--primary-100)); - } - - html:focus-within { - scroll-behavior: smooth; - } - body { + @apply bg-primary-100; text-rendering: optimizeSpeed; line-height: 1.5; } @@ -97,29 +148,3 @@ @apply text-base text-contrast-800 md:text-lg; } } - -@theme { - --color-accent: rgb(255 29 37); - - --color-primary-100: light-dark(rgb(250 250 250), rgb(28 28 28)); - --color-primary-200: light-dark(rgb(240 240 240), rgb(32 32 32)); - --color-primary-300: light-dark(rgb(230 230 230), rgb(38 38 38)); - --color-primary-400: light-dark(rgb(220 220 220), rgb(44 44 44)); - --color-primary-500: light-dark(rgb(210 210 210), rgb(50 50 50)); - --color-primary-600: light-dark(rgb(200 200 200), rgb(56 56 56)); - --color-primary-700: light-dark(rgb(190 190 190), rgb(62 62 62)); - --color-primary-800: light-dark(rgb(180 180 180), rgb(68 68 68)); - --color-primary-900: light-dark(rgb(170 170 170), rgb(74 74 74)); - - --color-contrast-100: light-dark(rgb(220 220 220), rgb(25 25 25)); - --color-contrast-200: light-dark(rgb(200 200 200), rgb(50 50 50)); - --color-contrast-300: light-dark(rgb(180 180 180), rgb(80 80 80)); - --color-contrast-400: light-dark(rgb(160 160 160), rgb(110 110 110)); - --color-contrast-500: light-dark(rgb(140 140 140), rgb(140 140 140)); - --color-contrast-600: light-dark(rgb(110 110 110), rgb(160 160 160)); - --color-contrast-700: light-dark(rgb(80 80 80), rgb(180 180 180)); - --color-contrast-800: light-dark(rgb(60 60 60), rgb(200 200 200)); - --color-contrast-900: light-dark(rgb(30 30 30), rgb(220 220 220)); - - --shadow-t-lg: 0px -4px 6px -1px rgba(0, 0, 0, 0.1); -} diff --git a/src/lib/components/ContactForm.svelte b/src/lib/components/ContactForm.svelte index 285de50..3bec996 100644 --- a/src/lib/components/ContactForm.svelte +++ b/src/lib/components/ContactForm.svelte @@ -26,7 +26,7 @@ { update(() => value); if (value) { - document.documentElement.style.colorScheme = "dark"; + document.body.dataset.theme = "dark"; } else { - document.documentElement.style.colorScheme = "light"; + document.body.dataset.theme = "light"; } localStorage.setItem("dark_theme", JSON.stringify(value));