From 72e85b99eeebd892b9c1f3c5f93fdd88547cbb05 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 11 Feb 2026 18:47:13 +0100 Subject: [PATCH] perf: site-wide performance optimizations including image delivery and hero overhaul --- app/[locale]/blog/page.tsx | 5 +- app/[locale]/products/[...slug]/page.tsx | 1 + app/[locale]/products/page.tsx | 3 +- app/[locale]/team/page.tsx | 1 + components/Footer.tsx | 139 ++- components/Header.tsx | 1 - components/home/Experience.tsx | 32 +- components/home/GallerySection.tsx | 2 +- components/home/Hero.tsx | 60 +- components/home/HeroIllustration.tsx | 1077 ++-------------------- components/home/MeetTheTeam.tsx | 30 +- components/home/ProductCategories.tsx | 52 +- components/home/RecentPosts.tsx | 2 +- 13 files changed, 300 insertions(+), 1105 deletions(-) diff --git a/app/[locale]/blog/page.tsx b/app/[locale]/blog/page.tsx index 8c9d3b95..5e7bf31f 100644 --- a/app/[locale]/blog/page.tsx +++ b/app/[locale]/blog/page.tsx @@ -66,7 +66,8 @@ export default async function BlogIndex({ params }: BlogIndexProps) { alt={featuredPost.frontmatter.title} fill className="absolute inset-0 w-full h-full object-cover scale-105 animate-slow-zoom opacity-40 md:opacity-60" - unoptimized + sizes="100vw" + priority />
@@ -153,7 +154,7 @@ export default async function BlogIndex({ params }: BlogIndexProps) { alt={post.frontmatter.title} fill className="w-full h-full object-cover transition-transform duration-1000 group-hover:scale-110" - unoptimized + sizes="(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw" />
{post.frontmatter.category && ( diff --git a/app/[locale]/products/[...slug]/page.tsx b/app/[locale]/products/[...slug]/page.tsx index 0c14f441..5cb062f3 100644 --- a/app/[locale]/products/[...slug]/page.tsx +++ b/app/[locale]/products/[...slug]/page.tsx @@ -243,6 +243,7 @@ export default async function ProductPage({ params }: ProductPageProps) { alt={product.frontmatter.title} fill className="object-contain p-8 transition-transform duration-700 group-hover:scale-110 z-10" + sizes="(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw" /> {/* Subtle reflection/shadow effect */}
diff --git a/app/[locale]/products/page.tsx b/app/[locale]/products/page.tsx index 6ee10753..d77ec214 100644 --- a/app/[locale]/products/page.tsx +++ b/app/[locale]/products/page.tsx @@ -143,8 +143,7 @@ export default async function ProductsPage({ params }: ProductsPageProps) { alt={category.title} fill className="object-cover transition-transform duration-1000 group-hover:scale-105" - sizes="(max-width: 768px) 100vw, 50vw" - unoptimized + sizes="(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw" />
diff --git a/app/[locale]/team/page.tsx b/app/[locale]/team/page.tsx index 172e4e5b..d4dd5366 100644 --- a/app/[locale]/team/page.tsx +++ b/app/[locale]/team/page.tsx @@ -94,6 +94,7 @@ export default async function TeamPage({ params }: TeamPageProps) { alt="KLZ Team" fill className="object-cover scale-105 animate-slow-zoom opacity-30 md:opacity-40" + sizes="100vw" priority />
diff --git a/components/Footer.tsx b/components/Footer.tsx index 713beee4..ffdb5337 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -12,29 +12,33 @@ export default function Footer() { return (