From 93f93cd5873cc2deea178168ddfa9dd6bec3a539 Mon Sep 17 00:00:00 2001 From: laveshparyani Date: Fri, 13 Mar 2026 14:20:43 +0530 Subject: [PATCH] feat(affiliates): redesign individual partner profile pages This commit completely overhauls the design of the /partners/[slug] affiliate profile pages. It introduces modern glassmorphism UI elements to the PartnerFeatures section, adds SVG mask styling to the PartnerBio section, implements geometric background and dual CTA buttons to the PartnerHero, and replaces the simple PartnerCTA with a high-impact, full-width gradient container CTA overlay. These changes ensure the profile pages align with the premium aesthetic of the main affiliate portal. --- apps/web/components/sections/partner-bio.tsx | 89 +++++++++++++------ apps/web/components/sections/partner-cta.tsx | 73 +++++++-------- .../components/sections/partner-features.tsx | 37 ++++---- apps/web/components/sections/partner-hero.tsx | 32 ++++--- 4 files changed, 133 insertions(+), 98 deletions(-) diff --git a/apps/web/components/sections/partner-bio.tsx b/apps/web/components/sections/partner-bio.tsx index 8b092f8..fcca125 100644 --- a/apps/web/components/sections/partner-bio.tsx +++ b/apps/web/components/sections/partner-bio.tsx @@ -16,14 +16,24 @@ export function PartnerBio({ name, bio, imageUrl, quote }: PartnerBioProps) { return (
-
+
+ + Meet the Trader + - A proud partner of
{name}. + A proud partner of
+ {name}.
@@ -36,21 +46,39 @@ export function PartnerBio({ name, bio, imageUrl, quote }: PartnerBioProps) { transition={{ duration: 0.8 }} className="flex flex-col items-center lg:items-start" > -
- {name} -
+
+ {/* Decorative background glow */} +
+ + + + + + + + + +
+ {name} +
+ + {quote && ( +
+

"{quote}"

+

— {name}

+
+ )} +
- {quote && ( -
-

"{quote}"

-

— {name}

-
- )} {/* Text Side */} @@ -59,21 +87,30 @@ export function PartnerBio({ name, bio, imageUrl, quote }: PartnerBioProps) { whileInView={{ opacity: 1, x: 0 }} viewport={{ once: true }} transition={{ duration: 0.8 }} - className="flex flex-col justify-center" + className="flex flex-col justify-center h-full" > -

About {name}.

-
- {bio.split('\n').map((paragraph, i) => ( -

{paragraph}

- ))} +
+ About The Partner +
+ +

{name}

+ +
+
+
+ {bio.split('\n').map((paragraph, i) => ( +

{paragraph}

+ ))} +
-
+ +
diff --git a/apps/web/components/sections/partner-cta.tsx b/apps/web/components/sections/partner-cta.tsx index 1912fcf..6d779db 100644 --- a/apps/web/components/sections/partner-cta.tsx +++ b/apps/web/components/sections/partner-cta.tsx @@ -14,49 +14,42 @@ export function PartnerCTA({ partnerName, message }: PartnerCTAProps) { return (
{/* Background Decorative Elements */} -
-
-
- -
-
- - A message from {partnerName.split(' ')[0]}. - +
- -

- {message || `Trade with the broker I trust. Join me at RestroFX and experience trading the way it was meant to be. Raw spreads, lightning-fast execution, and a platform that puts you first.`} -

-
+
+
+ {/* Animated Background Pattern */} +
- - - +

+ A message from
+ {partnerName.split(' ')[0]}. +

+

+ "{message}" +

+
+ +
+
diff --git a/apps/web/components/sections/partner-features.tsx b/apps/web/components/sections/partner-features.tsx index cfc3ab6..9697aa7 100644 --- a/apps/web/components/sections/partner-features.tsx +++ b/apps/web/components/sections/partner-features.tsx @@ -1,7 +1,7 @@ "use client"; import { motion } from "framer-motion"; -import { Card, CardContent, CardHeader, CardTitle } from "@crimsonfx/ui"; + import { Zap, Percent, Activity } from "lucide-react"; export function PartnerFeatures() { @@ -52,27 +52,24 @@ export function PartnerFeatures() { key={index} initial={{ opacity: 0, y: 30 }} whileInView={{ opacity: 1, y: 0 }} - viewport={{ once: true, margin: "-100px" }} + viewport={{ once: true, margin: "-50px" }} transition={{ delay: index * 0.2, duration: 0.6 }} - whileHover={{ y: -5 }} - className="h-full" + className="h-full group p-6 sm:p-8 rounded-[2rem] border-2 border-border hover:border-primary/50 transition-all duration-500 hover:shadow-2xl hover:shadow-primary/10 bg-background/50 backdrop-blur-md relative overflow-hidden" > - -
- -
- -
- - {feature.title} - -
- -

{feature.description}

-
- +
+
+
+ +
+

+ {feature.title} +

+

+ {feature.description} +

+
); })} diff --git a/apps/web/components/sections/partner-hero.tsx b/apps/web/components/sections/partner-hero.tsx index 4e419ea..8645cba 100644 --- a/apps/web/components/sections/partner-hero.tsx +++ b/apps/web/components/sections/partner-hero.tsx @@ -11,17 +11,14 @@ export function PartnerHero() { return (
{/* Background Elements */} -
-
-
- -
-
- - {/* Grid Pattern */} -
+
+
+
+ {/* Grid Pattern */} +
+
-
+
OFFICIAL PARTNER @@ -67,18 +64,29 @@ export function PartnerHero() { initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} transition={{ delay: 0.5, duration: 1, ease: [0.22, 1, 0.36, 1] }} + className="flex flex-col sm:flex-row gap-4 justify-center items-center w-full" > +