From 59094eba85dfe1bb4aaf60213038e60778df8f95 Mon Sep 17 00:00:00 2001 From: MohFarawati Date: Tue, 14 Jul 2026 22:37:09 +0200 Subject: [PATCH] refactor(home): unify section headings, differentiate capabilities and process Reduce the "interchangeable cards" monotony flagged in Phase 0 and apply the warm-premium type scale. - SectionHeading: use the type scale (eyebrow via .eyebrow with brand tint, text-h2 title, body-lg description). Propagates to every home section. - CapabilitiesSection: cleaner cards with a brand-tinted icon tile, type-scale title/body, soft elevation (drops the AppCard wrapper). - ProcessSection: reworked into an editorial numbered timeline (large translucent brand numerals, top rule, no boxes) so it no longer looks identical to Capabilities. Verified: eslint clean, no new type errors, tailwind generates the utilities. --- components/home/capabilities-section.tsx | 29 ++++++++----------- components/home/process-section.tsx | 36 +++++++++--------------- components/home/section-heading.tsx | 6 ++-- 3 files changed, 29 insertions(+), 42 deletions(-) diff --git a/components/home/capabilities-section.tsx b/components/home/capabilities-section.tsx index 0b76c1c..d36d0b4 100644 --- a/components/home/capabilities-section.tsx +++ b/components/home/capabilities-section.tsx @@ -1,6 +1,5 @@ import { Bot, Database, Globe, ServerCog } from "lucide-react"; -import { AppCard } from "@/components/ui/app-card"; import { SectionHeading } from "./section-heading"; import type { CapabilitiesSectionCopy } from "./types"; @@ -19,29 +18,25 @@ export function CapabilitiesSection({ copy }: CapabilitiesSectionProps) { description={copy.description} /> -
+
{copy.items.map((item, index) => { const Icon = capabilityIcons[index] ?? Globe; return ( - -
-
- -
-
-

- {item.title} -

-

{item.description}

-
+
+
- +
+

+ {item.title} +

+

{item.description}

+
+
); })}
diff --git a/components/home/process-section.tsx b/components/home/process-section.tsx index ec335e4..9e8e1fc 100644 --- a/components/home/process-section.tsx +++ b/components/home/process-section.tsx @@ -1,4 +1,3 @@ -import { AppCard } from "@/components/ui/app-card"; import { SectionHeading } from "./section-heading"; import type { ProcessSectionCopy } from "./types"; @@ -8,35 +7,28 @@ type ProcessSectionProps = { export function ProcessSection({ copy }: ProcessSectionProps) { return ( -
+
-
+
    {copy.steps.map((step, index) => ( - -
    -

    - {String(index + 1).padStart(2, "0")} -

    -
    -

    - {step.title} -

    -

    {step.description}

    -
    -
    -
    +
  1. + + {String(index + 1).padStart(2, "0")} + +

    + {step.title} +

    +

    + {step.description} +

    +
  2. ))} -
+
); } diff --git a/components/home/section-heading.tsx b/components/home/section-heading.tsx index eee38e9..3dddbce 100644 --- a/components/home/section-heading.tsx +++ b/components/home/section-heading.tsx @@ -23,13 +23,13 @@ export function SectionHeading({ className, )} > -

+

{eyebrow}

-

+

{title}

-

+

{description}