From c21aa71c3550e6e3ab836d463535cb5bb51fb903 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Thu, 16 Apr 2026 05:08:15 +0000 Subject: [PATCH] Bob AI: Replace the current hero section with a new hero component t --- src/App.tsx | 4 +- src/components/sections/hero/HeroAnimated.tsx | 71 +++++++++++++++++++ src/styles/animations.css | 12 ++++ 3 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 src/components/sections/hero/HeroAnimated.tsx diff --git a/src/App.tsx b/src/App.tsx index 9f94d3e..41c0535 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,7 @@ import ContactSplitForm from '@/components/sections/contact/ContactSplitForm'; import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards'; import FooterMinimal from '@/components/sections/footer/FooterMinimal'; -import HeroSplit from '@/components/sections/hero/HeroSplit'; +import HeroAnimated from '@/components/sections/hero/HeroAnimated'; import NavbarCentered from '@/components/ui/NavbarCentered'; import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards'; import TestimonialMetricsCards from '@/components/sections/testimonial/TestimonialMetricsCards'; @@ -26,7 +26,7 @@ export default function App() {
- { + const [parallaxStyle, setParallaxStyle] = useState({}); + + const handleMouseMove = (e: React.MouseEvent) => { + const { clientX, clientY, currentTarget } = e; + const { left, top, width, height } = currentTarget.getBoundingClientRect(); + const x = (clientX - left - width / 2) / (width / 2); + const y = (clientY - top - height / 2) / (height / 2); + setParallaxStyle({ + transform: `translate(${x * -20}px, ${y * -20}px)`, + }); + }; + + return ( +
+
+
+ +
+
+
+
+ {tag} + + +
+
+
+
+
+ ); +}; + +export default HeroAnimated; \ No newline at end of file diff --git a/src/styles/animations.css b/src/styles/animations.css index c10b577..ba23101 100644 --- a/src/styles/animations.css +++ b/src/styles/animations.css @@ -23,6 +23,18 @@ } } +@keyframes hero-float { + 0% { + transform: translateY(-5px) scale(1.1); + } + 50% { + transform: translateY(5px) scale(1.1); + } + 100% { + transform: translateY(-5px) scale(1.1); + } +} + @keyframes fadeInTranslate { from { transform: translateY(0.75vh);