From bb5dd838bcdd548c7da36b6b9cdff35fc4f8bd19 Mon Sep 17 00:00:00 2001 From: Ewan Croft Date: Sun, 7 Sep 2025 11:45:26 +0100 Subject: [PATCH] feat: add scroll-to-top button in bottom left corner --- .../components/layout/main/ScrollToTop.svelte | 118 ++++++++++++++++++ src/lib/components/layout/main/index.ts | 3 +- src/routes/+layout.svelte | 6 +- 3 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 src/lib/components/layout/main/ScrollToTop.svelte diff --git a/src/lib/components/layout/main/ScrollToTop.svelte b/src/lib/components/layout/main/ScrollToTop.svelte new file mode 100644 index 0000000..fa18d3e --- /dev/null +++ b/src/lib/components/layout/main/ScrollToTop.svelte @@ -0,0 +1,118 @@ + + + + +{#if isVisible} + +{/if} + + \ No newline at end of file diff --git a/src/lib/components/layout/main/index.ts b/src/lib/components/layout/main/index.ts index abc178b..3fa71bf 100644 --- a/src/lib/components/layout/main/index.ts +++ b/src/lib/components/layout/main/index.ts @@ -1,2 +1,3 @@ export { default as DynamicLinks } from "./DynamicLinks.svelte"; -export { default as LatestBlogPost } from "./LatestBlogPost.svelte"; \ No newline at end of file +export { default as LatestBlogPost } from "./LatestBlogPost.svelte"; +export { default as ScrollToTop } from "./ScrollToTop.svelte"; \ No newline at end of file diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 3195acb..7b112eb 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -5,6 +5,7 @@ const { page } = getStores(); import Profile from "$components/profile/Profile.svelte"; import { Footer, HeaderMain } from "$components/layout"; + import { ScrollToTop } from "$components/layout/main"; import { NoScriptMessage } from "$components/shared"; import { measurePerformance, logPerformanceMetrics } from "$utils/performance"; @@ -48,4 +49,7 @@ {@render children()}