From 7ca9f6f5e23a237447860f78ee90e961190efc84 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 25 Mar 2026 21:11:30 +0100 Subject: [PATCH] polish: deep visual pass across all homepage sections Hero: - Removed fake trust proof avatars - Added decorative gradient separator line - Pushed content down for better vertical rhythm - More visible secondary CTA button TrustBar: - Icon circles with primary tint backdrops - Gradient top accent bar on hover - Gradient fade transition from hero section - Increased card padding Services: - Subtle grid texture background - Larger primary-colored feature dots - Enhanced AI narrative with horizontal decorative rules - Hover shadow elevation on pillars Configurator: - Step numbers in tinted circles with vertical rail - ShieldCheck trust icon - Radial gradient glow on wizard panel - Sparkles icon on AI toggle - Empty-state hint message - Service card icons in circular primary backdrops Process: - Gradient top accent strips on cards - Icon containers with primary tint - Vertical accent bar on section heading - Dashed SVG connector lines between cards SelectedWorks: - Distinct geometric compositions per card (Monaco, Nimara, Amador) - Bottom gradient fade on placeholder images - Dot separators between tags - Animated background pulse on coming-soon cards - Enhanced CTA hover animations Philosophy: - Enriched decorative panel (circle rings, diagonal lines, navy gradient) - Primary-colored pillar numbers - Left border accent on pull-quote card CTABanner: - Grid pattern + circle ring overlays - Email link underline-on-hover animation Footer: - Full logo image replacing text wordmark - Larger social icons - Gradient divider line - Larger nav logo (h-14 desktop, h-11 mobile) Co-Authored-By: Claude Opus 4.6 (1M context) --- src/components/configurator/StepServices.tsx | 37 +- src/components/layout/Footer.tsx | 23 +- src/components/layout/Nav.tsx | 12 +- src/components/sections/CTABanner.tsx | 49 ++- src/components/sections/Configurator.tsx | 32 +- src/components/sections/Hero.tsx | 78 ++-- src/components/sections/Philosophy.tsx | 93 ++++- src/components/sections/Process.tsx | 104 ++++-- src/components/sections/SelectedWorks.tsx | 358 ++++++++++++++----- src/components/sections/ServicesOverview.tsx | 40 ++- src/components/sections/TrustBar.tsx | 30 +- 11 files changed, 644 insertions(+), 212 deletions(-) diff --git a/src/components/configurator/StepServices.tsx b/src/components/configurator/StepServices.tsx index 31a3b59..8fc49ad 100644 --- a/src/components/configurator/StepServices.tsx +++ b/src/components/configurator/StepServices.tsx @@ -100,10 +100,10 @@ function ServiceCard({ option, selected, onToggle }: ServiceCardProps) { {/* Icon */}
@@ -176,21 +176,22 @@ function AIToggle({ enabled, onToggle }: AIToggleProps) { : 'bg-surface-high shadow-subtle hover:shadow-card', )} > -
+

@@ -270,6 +271,20 @@ export default function StepServices({ formData, setFormData, onNext }: StepProp onToggle={() => toggleService(option.id)} /> ))} + {/* Empty-state hint */} + + {formData.services.length === 0 && ( + + Select at least one service to continue + + )} +

{/* AI Toggle */} diff --git a/src/components/layout/Footer.tsx b/src/components/layout/Footer.tsx index c9f64eb..e7bc183 100644 --- a/src/components/layout/Footer.tsx +++ b/src/components/layout/Footer.tsx @@ -1,6 +1,7 @@ 'use client' import { useTranslations } from 'next-intl' +import Image from 'next/image' import { Link } from '@/i18n/navigation' import CalButton from '@/components/ui/CalButton' @@ -111,12 +112,13 @@ export default function Footer() { {/* Col 1 — Brand */}
-

- LetsBe. -

+ LetsBe.

{t('tagline')}

@@ -175,7 +177,7 @@ export default function Footer() { className="inline-flex items-center justify-center w-9 h-9 rounded-full text-on-surface/40 hover:text-primary transition-all duration-200 hover:-translate-y-0.5" style={{ willChange: 'transform' }} > - + ))} @@ -192,10 +194,13 @@ export default function Footer() {
- {/* Tonal divider */} + {/* Gradient separator line */} {/* Bottom fade-out to next section */} diff --git a/src/components/sections/Philosophy.tsx b/src/components/sections/Philosophy.tsx index 4fe5780..72a669c 100644 --- a/src/components/sections/Philosophy.tsx +++ b/src/components/sections/Philosophy.tsx @@ -108,7 +108,7 @@ function PhilosophyPillar({ {/* Content */}
+ {/* Large circle ring — border only, ~40% opacity */} +
+ {/* Secondary circle, bottom-left */}
+ {/* Second smaller ring — bottom-left */} +
+ {/* Diagonal grid */}
- {/* Accent rectangle top-left */} + {/* Diagonal line crossing the composition */} +
+ + {/* Accent rectangle top-left, rotated */}
+ {/* Second rotated rectangle outline — center */} +
+ {/* Floating dot cluster center-right */}
- {/* Thin arc line */} + {/* Small dot cluster upper-left */} +
+ + {/* Thin dashed arc */} + + {/* Navy bottom overlay that fades upward — gives depth to pull-quote */} +
); } @@ -319,6 +397,7 @@ export default function Philosophy() { 'bg-surface-high rounded-xl p-6 shadow-subtle', 'max-w-[320px] w-[calc(100%-2.5rem)] lg:max-w-[340px]', 'z-10', + 'border-l-[3px] border-primary', )} > {/* CornerBracket top-right decoration */} diff --git a/src/components/sections/Process.tsx b/src/components/sections/Process.tsx index 503bad2..46cc154 100644 --- a/src/components/sections/Process.tsx +++ b/src/components/sections/Process.tsx @@ -54,27 +54,36 @@ function StepCard({ numeral, stepKey, Icon }: { numeral: string; stepKey: string + {/* Top accent strip — gradient from primary-dark to primary */} +