From f6caaab8a355c909fea5f8b3d8b3ab950f06a36e Mon Sep 17 00:00:00 2001 From: Stephen Adamson Date: Thu, 30 Jul 2026 20:49:11 +0100 Subject: [PATCH] feat: redesign homepage, add global footer, fix carousel font Homepage: restored original v0 design, replaced lorem ipsum with real service descriptions, added BusinessHours (Opening Hours) section, alternating bg-gray-50 section backgrounds. Layout: added global sticky footer (hidden on /admin/schedule, /account, and ?format=pdf pages), wrapped content in min-h-screen flex layout. PortfolioCarousel: set heading to Playfair Display. --- .../layout/PortfolioCarousel.svelte | 2 +- frontend/src/routes/+layout.svelte | 49 ++++++++++++------- frontend/src/routes/+page.svelte | 44 +++++++---------- 3 files changed, 52 insertions(+), 43 deletions(-) diff --git a/frontend/src/lib/components/layout/PortfolioCarousel.svelte b/frontend/src/lib/components/layout/PortfolioCarousel.svelte index a9f0986..6ec473e 100644 --- a/frontend/src/lib/components/layout/PortfolioCarousel.svelte +++ b/frontend/src/lib/components/layout/PortfolioCarousel.svelte @@ -38,7 +38,7 @@
-

Our Portfolio

+

Our Portfolio

diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index 964ac40..11ad8af 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -6,9 +6,16 @@ import { toast } from 'svelte-sonner'; import { authStore } from '$lib/stores/auth.svelte'; import { onMount } from 'svelte'; + import { page } from '$app/stores'; const { children } = $props(); + let hideFooter = $derived( + $page.url.pathname === '/admin/schedule' || + $page.url.pathname === '/account' || + $page.url.searchParams.get('format') === 'pdf' + ); + // Default to 'top-center' (mobile-first approach) let toasterPosition = $state<'top-center' | 'bottom-center'>('top-center'); @@ -59,25 +66,33 @@ /> - - +
+ + -
- {#if authStore.currentUser?.role === 'unverified_email'} -
- Please verify your email address to continue. Didn't recieve the email? Check your spam - folder, or - to resend it. -
+
+ {#if authStore.currentUser?.role === 'unverified_email'} +
+ Please verify your email address to continue. Didn't recieve the email? Check your spam + folder, or + to resend it. +
+ {/if} + {@render children?.()} +
+ + {#if !hideFooter} +
+ © {new Date().getFullYear()} Crussell Nails. All rights reserved. +
{/if} - {@render children?.()} -
+