From e41649e395a1f8713cee6d0c7ea1fefab73e6d7c Mon Sep 17 00:00:00 2001 From: Christian Beutel <> Date: Thu, 22 Feb 2024 02:53:06 +0100 Subject: [PATCH] adds dark mode --- web/src/css/components.css | 8 +-- web/src/css/theme.css | 4 +- web/src/lib/components/base/datepicker.svelte | 2 +- web/src/lib/components/base/modal.svelte | 10 +-- .../lib/components/base/radio_group.svelte | 2 +- web/src/lib/components/base/toggle.svelte | 2 +- web/src/lib/components/earth.svelte | 14 ++--- web/src/lib/components/nav_bar.svelte | 62 +++++++++++++------ web/src/lib/components/scene.svelte | 26 +++++++- .../summit_log/summit_log_card.svelte | 2 +- web/src/lib/components/tabs.svelte | 2 +- .../components/waypoint/waypoint_card.svelte | 2 +- web/src/lib/stores/theme_store.ts | 12 ++-- web/src/routes/+page.svelte | 7 ++- web/src/routes/map/+page.svelte | 2 +- web/src/routes/trail/edit/[id]/+page.svelte | 6 +- web/src/routes/trails/+page.svelte | 2 +- web/tailwind.config.js | 4 ++ 18 files changed, 113 insertions(+), 56 deletions(-) diff --git a/web/src/css/components.css b/web/src/css/components.css index f8e18032..9f009483 100644 --- a/web/src/css/components.css +++ b/web/src/css/components.css @@ -3,7 +3,7 @@ @import 'tailwindcss/components'; .btn-primary { - @apply h-10 text-white rounded-lg px-4 py-2 bg-primary font-semibold transition-all hover:bg-primary-hover focus:ring-4 ring-input-border-focus + @apply h-10 text-white rounded-lg px-4 py-2 bg-primary font-semibold transition-all hover:bg-primary-hover focus:ring-4 ring-input-ring } .btn-large { @@ -11,7 +11,7 @@ } .btn-secondary { - @apply rounded-lg px-4 py-2 border border-input-border-focus font-medium transition-all hover:bg-secondary-hover focus:ring-4 ring-input-border-focus + @apply rounded-lg px-4 py-2 border border-input-border-focus font-medium transition-all hover:bg-secondary-hover focus:ring-4 ring-input-ring } .btn-danger { @@ -23,7 +23,7 @@ } .btn-icon { - @apply rounded-full aspect-square h-7 hover:bg-secondary-hover focus:ring-4 ring-input-border-focus transition-colors; + @apply rounded-full aspect-square h-7 hover:bg-secondary-hover focus:ring-4 ring-input-ring transition-colors; } .tab { @@ -31,7 +31,7 @@ } .tab:hover { - @apply bg-gray-100 + @apply bg-menu-item-background-hover } .tab-active { diff --git a/web/src/css/theme.css b/web/src/css/theme.css index e6e4e5d0..96288479 100644 --- a/web/src/css/theme.css +++ b/web/src/css/theme.css @@ -9,6 +9,7 @@ --input-background: 249, 250, 251; --input-border: 209, 213, 219; --input-border-focus: 36, 39, 52; + --input-ring: 148, 163, 184; --menu-background: 255, 255, 255; --menu-item-background-hover: 243, 244, 246; @@ -16,7 +17,7 @@ --footer-background: 36, 39, 52; - --separator: 17, 24, 39; + --separator: 148, 163, 184; background: rgba(var(--background)); color: rgba(var(--content)); @@ -33,6 +34,7 @@ --input-background: 36, 39, 52; --input-border: 43, 46, 61; --input-border-focus: 108, 115, 150; + --input-ring: 108, 115, 150; --menu-background: 33, 36, 54; --menu-item-background-hover: 43, 46, 69; diff --git a/web/src/lib/components/base/datepicker.svelte b/web/src/lib/components/base/datepicker.svelte index e48ebd13..16cef10e 100644 --- a/web/src/lib/components/base/datepicker.svelte +++ b/web/src/lib/components/base/datepicker.svelte @@ -14,7 +14,7 @@
0} class:bg-red-50={error.length > 0} type="date" diff --git a/web/src/lib/components/base/modal.svelte b/web/src/lib/components/base/modal.svelte index 014add4e..f6e6767e 100644 --- a/web/src/lib/components/base/modal.svelte +++ b/web/src/lib/components/base/modal.svelte @@ -15,15 +15,15 @@ {id} tabindex="-1" aria-hidden="true" - class="relative w-full max-w-2xl max-h-full rounded-xl" + class="relative w-full max-w-2xl max-h-full rounded-xl text-content" > -
+
-

+

{title}

{/each} diff --git a/web/src/lib/components/waypoint/waypoint_card.svelte b/web/src/lib/components/waypoint/waypoint_card.svelte index 08507771..22d1bfb9 100644 --- a/web/src/lib/components/waypoint/waypoint_card.svelte +++ b/web/src/lib/components/waypoint/waypoint_card.svelte @@ -11,7 +11,7 @@ ]; -
+
{waypoint.name} diff --git a/web/src/lib/stores/theme_store.ts b/web/src/lib/stores/theme_store.ts index e1e41c21..46c0936e 100644 --- a/web/src/lib/stores/theme_store.ts +++ b/web/src/lib/stores/theme_store.ts @@ -1,14 +1,12 @@ +import { browser } from "$app/environment"; import { get, writable, type Writable } from "svelte/store"; type Theme = "dark" | "light" -export const theme: Writable = writable("light"); - +export const theme: Writable = writable(browser && localStorage.getItem("theme") as Theme || "light" ); export function toggleTheme() { - if (get(theme) === "light") { - theme.set("dark") - } else { - theme.set("light"); - } + const newTheme = get(theme) === "light" ? "dark" : "light"; + theme.set(newTheme) + localStorage.setItem("theme", newTheme); } \ No newline at end of file diff --git a/web/src/routes/+page.svelte b/web/src/routes/+page.svelte index 56f764b3..e0084473 100644 --- a/web/src/routes/+page.svelte +++ b/web/src/routes/+page.svelte @@ -42,7 +42,7 @@ description: `City | ${ country_codes[t["country code"] as keyof typeof country_codes] }`, - value: t.id, + value: t, icon: "city", })); @@ -50,7 +50,10 @@ } function handleSearchClick(item: SearchItem) { - if (item.icon == "route") { + + if(item.icon == "city") { + goto(`/map/?lat=${item.value._geo.lat}&lon=${item.value._geo.lng}`); + } if (item.icon == "route") { goto(`/trail/view/${item.value}`); } } diff --git a/web/src/routes/map/+page.svelte b/web/src/routes/map/+page.svelte index a5cf159b..0df81d2c 100644 --- a/web/src/routes/map/+page.svelte +++ b/web/src/routes/map/+page.svelte @@ -216,7 +216,7 @@

Pick a trail

@@ -435,9 +435,9 @@ >

Photos

-
+
diff --git a/web/src/routes/trails/+page.svelte b/web/src/routes/trails/+page.svelte index 1576631e..85f0b450 100644 --- a/web/src/routes/trails/+page.svelte +++ b/web/src/routes/trails/+page.svelte @@ -195,7 +195,7 @@ id="{category.name}-checkbox" type="checkbox" value={category.id} - class="w-4 h-4 accent-input-background border-input-border focus:ring-input-border-focus focus:ring-2" + class="w-4 h-4 accent-input-background border-input-border focus:ring-input-ring focus:ring-2" on:change={() => setCategoryFilter(category)} />