From f005c5fe872032c0b00aaeaca6fadbbf8af2c872 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Mon, 25 May 2026 00:48:49 +0000 Subject: [PATCH] Bob AI: make the buttons super 3d on the hero section --- src/pages/HomePage.tsx | 103 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 99 insertions(+), 4 deletions(-) diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index 32cb608..1ba369d 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,20 +1,115 @@ import AboutText from '@/components/sections/about/AboutText'; import ContactSplitForm from '@/components/sections/contact/ContactSplitForm'; import FeaturesProfileCards from '@/components/sections/features/FeaturesProfileCards'; -import HeroTiltedCards from '@/components/sections/hero/HeroTiltedCards'; import MetricsGradientCards from '@/components/sections/metrics/MetricsGradientCards'; import ProductMediaCards from '@/components/sections/product/ProductMediaCards'; import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards'; -import { CheckCircle, Clock, Smile } from "lucide-react"; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +import { CheckCircle, Clock, Smile } from 'lucide-react'; +import SectionErrorBoundary from '@/components/ui/SectionErrorBoundary'; +import Button from '@/components/ui/Button'; +import HeroBackgroundSlot from '@/components/ui/HeroBackgroundSlot'; +import TextAnimation from '@/components/ui/TextAnimation'; +import ImageOrVideo from '@/components/ui/ImageOrVideo'; +import ScrollReveal from '@/components/ui/ScrollReveal'; +import { cls } from '@/lib/utils'; + +// ── Inlined from src/components/sections/hero/HeroTiltedCards.tsx (was ) +// You can now edit InlinedHeroTiltedCards freely below — it is a local copy and +// will not affect any other page that imports the original HeroTiltedCards. +interface HeroTiltedCardsProps { + tag: string; + title: string; + description: string; + primaryButton: { text: string; href: string }; + secondaryButton: { text: string; href: string }; + items: ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never })[]; +} + +const InlinedHeroTiltedCards = ({ + tag, + title, + description, + primaryButton, + secondaryButton, + items, +}: HeroTiltedCardsProps) => { + const marqueeItems = [...items, ...items]; + const galleryStyles = [ + "-rotate-6 z-10 -translate-y-5", + "rotate-6 z-20 translate-y-5 -ml-15", + "-rotate-6 z-30 -translate-y-5 -ml-15", + "rotate-6 z-40 translate-y-5 -ml-15", + "-rotate-6 z-50 -translate-y-5 -ml-15", + ]; + + return ( +
+ +
+
+
+

{tag}

+
+ + + + + +
+
+
+ + +
+ {marqueeItems.map((item, index) => ( +
+ +
+ ))} +
+
+ + +
+ {items.map((item, index) => ( +
+ +
+ ))} +
+
+
+
+ ); +}; export default function HomePage() { return ( <>
-