From a111851176f5a8bec5992203772430c077a38779 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 18 Feb 2026 19:26:15 +0100 Subject: [PATCH] chore: deep semantic HTML audit and improvements across all pages --- app/[locale]/blog/page.tsx | 9 +- app/[locale]/contact/page.tsx | 4 +- app/[locale]/products/[...slug]/page.tsx | 102 ++++++++++++----------- app/[locale]/team/page.tsx | 16 ++-- components/Footer.tsx | 12 +-- components/Header.tsx | 4 +- components/ProductSidebar.tsx | 33 ++++---- components/home/Experience.tsx | 20 ++--- components/home/RecentPosts.tsx | 17 ++-- components/home/WhyChooseUs.tsx | 8 +- components/ui/Card.tsx | 10 ++- 11 files changed, 126 insertions(+), 109 deletions(-) diff --git a/app/[locale]/blog/page.tsx b/app/[locale]/blog/page.tsx index dd38e012..eaf9a659 100644 --- a/app/[locale]/blog/page.tsx +++ b/app/[locale]/blog/page.tsx @@ -58,7 +58,7 @@ export default async function BlogIndex({ params }: BlogIndexProps) {
{/* Hero Section - Immersive Magazine Feel */} -
+
{featuredPost && featuredPost.frontmatter.featuredImage && ( <> -
+
@@ -146,7 +146,10 @@ export default async function BlogIndex({ params }: BlogIndexProps) { {remainingPosts.map((post, idx) => ( - + {post.frontmatter.featuredImage && (
{t('info.howToReachUs')} -
+
-
+
diff --git a/app/[locale]/products/[...slug]/page.tsx b/app/[locale]/products/[...slug]/page.tsx index c9ba3d34..8f932d9a 100644 --- a/app/[locale]/products/[...slug]/page.tsx +++ b/app/[locale]/products/[...slug]/page.tsx @@ -5,7 +5,7 @@ import ProductTabs from '@/components/ProductTabs'; import ProductTechnicalData from '@/components/ProductTechnicalData'; import RelatedProducts from '@/components/RelatedProducts'; import DatasheetDownload from '@/components/DatasheetDownload'; -import { Badge, Container, Heading, Section } from '@/components/ui'; +import { Badge, Card, Container, Heading, Section } from '@/components/ui'; import { getDatasheetPath } from '@/lib/datasheets'; import { getAllProducts, getProductBySlug } from '@/lib/mdx'; import { mapFileSlugToTranslated, mapSlugToFileSlug } from '@/lib/slugs'; @@ -239,57 +239,59 @@ export default async function ProductPage({ params }: ProductPageProps) { href={`/${locale}/products/${productSlug}/${product.translatedSlug}`} className="group block bg-white rounded-[32px] overflow-hidden shadow-sm hover:shadow-2xl transition-all duration-500 border border-neutral-dark/5" > -
- {product.frontmatter.images?.[0] && ( - <> - {product.frontmatter.title} - {/* Subtle reflection/shadow effect */} -
- - )} -
-
-
- {product.frontmatter.categories.map((cat, i) => ( - - {cat} + +
+ {product.frontmatter.images?.[0] && ( + <> + {product.frontmatter.title} + {/* Subtle reflection/shadow effect */} +
+ + )} +
+
+
+ {product.frontmatter.categories.map((cat, i) => ( + + {cat} + + ))} +
+

+ {product.frontmatter.title} +

+

+ {product.frontmatter.description} +

+
+ + {t('details')} - ))} + + + +
-

- {product.frontmatter.title} -

-

- {product.frontmatter.description} -

-
- - {t('details')} - - - - -
-
+
))}
diff --git a/app/[locale]/team/page.tsx b/app/[locale]/team/page.tsx index 3d15b346..69ae418d 100644 --- a/app/[locale]/team/page.tsx +++ b/app/[locale]/team/page.tsx @@ -114,7 +114,7 @@ export default async function TeamPage({ params }: TeamPageProps) { {/* Michael Bodemer Section - Sticky Narrative Split Layout */} -
+
@@ -161,7 +161,7 @@ export default async function TeamPage({ params }: TeamPageProps) {
-
+ {/* Legacy Section - Immersive Background */} @@ -217,7 +217,7 @@ export default async function TeamPage({ params }: TeamPageProps) { {/* Klaus Mintel Section - Reversed Split Layout */} -
+
-
+ {/* Manifesto Section - Modern Grid */}
@@ -292,9 +292,9 @@ export default async function TeamPage({ params }: TeamPageProps) {
-
+
    {[0, 1, 2, 3, 4, 5].map((idx) => ( -
    @@ -309,9 +309,9 @@ export default async function TeamPage({ params }: TeamPageProps) {

    {t(`manifesto.items.${idx}.description`)}

    -
    + ))} -
+
diff --git a/components/Footer.tsx b/components/Footer.tsx index b296efb0..940b4717 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -67,9 +67,9 @@ export default function Footer() { {/* Links Columns */}
-

+

{t('legal')} -

+
diff --git a/components/home/RecentPosts.tsx b/components/home/RecentPosts.tsx index ddcad274..388ecadc 100644 --- a/components/home/RecentPosts.tsx +++ b/components/home/RecentPosts.tsx @@ -35,7 +35,10 @@ export default async function RecentPosts({ locale }: RecentPostsProps) {
{recentPosts.map((post) => ( - + {post.frontmatter.featuredImage && (
- {new Date(post.frontmatter.date).toLocaleDateString(locale, { - year: 'numeric', - month: 'long', - day: 'numeric', - })} +

{post.frontmatter.title} diff --git a/components/home/WhyChooseUs.tsx b/components/home/WhyChooseUs.tsx index 4d455131..ecc8cb20 100644 --- a/components/home/WhyChooseUs.tsx +++ b/components/home/WhyChooseUs.tsx @@ -45,9 +45,9 @@ export default function WhyChooseUs() {

-
+
+ diff --git a/components/ui/Card.tsx b/components/ui/Card.tsx index 9c8fdef1..718569eb 100644 --- a/components/ui/Card.tsx +++ b/components/ui/Card.tsx @@ -1,10 +1,14 @@ import React from 'react'; import { cn } from './utils'; -export function Card({ className, children, ...props }: React.HTMLAttributes) { +interface CardProps extends React.HTMLAttributes { + tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main'; +} + +export function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) { return ( -
+ {children} -
+ ); }