diff --git a/apps/frontend/src/components/Navbar/DesktopNavbar.tsx b/apps/frontend/src/components/Navbar/DesktopNavbar.tsx index fb865c1c9..8d8816422 100644 --- a/apps/frontend/src/components/Navbar/DesktopNavbar.tsx +++ b/apps/frontend/src/components/Navbar/DesktopNavbar.tsx @@ -1,4 +1,4 @@ -import { Link, useParams } from "@tanstack/react-router"; +import { Link, useParams, useRouterState } from "@tanstack/react-router"; import { useTranslation } from "react-i18next"; import { cn } from "../../helpers/cn"; import { useWidgetMode } from "../../hooks/useWidgetMode"; @@ -10,21 +10,31 @@ export const DesktopNavbar = () => { const isWidgetMode = useWidgetMode(); const { resetRampAndNavigateHome } = useNavbarHandlers(); const params = useParams({ strict: false }); + const routerState = useRouterState(); + + const isBusinessPage = routerState.location.pathname.includes("/business"); + const useTransparentStyle = isWidgetMode || isBusinessPage; return ( -
+
{isWidgetMode ? ( - + ) : ( <>
- + @@ -32,9 +42,15 @@ export const DesktopNavbar = () => { diff --git a/apps/frontend/src/components/Navbar/LogoButton.tsx b/apps/frontend/src/components/Navbar/LogoButton.tsx index ee106568c..df94c3bd0 100644 --- a/apps/frontend/src/components/Navbar/LogoButton.tsx +++ b/apps/frontend/src/components/Navbar/LogoButton.tsx @@ -1,19 +1,22 @@ import { useTranslation } from "react-i18next"; import blueLogo from "../../assets/logo/blue.svg"; import whiteLogo from "../../assets/logo/white.png"; -import { useWidgetMode } from "../../hooks/useWidgetMode"; interface LogoButtonProps { onClick: () => void; + variant?: "blue" | "white"; } -export const LogoButton = ({ onClick }: LogoButtonProps) => { +export const LogoButton = ({ onClick, variant = "white" }: LogoButtonProps) => { const { t } = useTranslation(); - const isWidgetMode = useWidgetMode(); return ( ); }; diff --git a/apps/frontend/src/components/Navbar/MobileNavbar.tsx b/apps/frontend/src/components/Navbar/MobileNavbar.tsx index 11e998dc0..445b38b02 100644 --- a/apps/frontend/src/components/Navbar/MobileNavbar.tsx +++ b/apps/frontend/src/components/Navbar/MobileNavbar.tsx @@ -1,3 +1,4 @@ +import { useRouterState } from "@tanstack/react-router"; import { AnimatePresence } from "motion/react"; import { useRef, useState } from "react"; import { cn } from "../../helpers/cn"; @@ -12,9 +13,13 @@ export const MobileNavbar = () => { const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const isWidgetMode = useWidgetMode(); const navbarRef = useRef(null); + const routerState = useRouterState(); const { resetRampAndNavigateHome } = useNavbarHandlers(); + const isBusinessPage = routerState.location.pathname.includes("/business"); + const useTransparentStyle = isWidgetMode || isBusinessPage; + const toggleMobileMenu = () => { setIsMobileMenuOpen(!isMobileMenuOpen); }; @@ -27,13 +32,13 @@ export const MobileNavbar = () => { return (
-
+
{isWidgetMode ? ( - + ) : (
- +
)} diff --git a/apps/frontend/src/sections/business/Hero/index.tsx b/apps/frontend/src/sections/business/Hero/index.tsx index 28dc37281..a30e45ea6 100644 --- a/apps/frontend/src/sections/business/Hero/index.tsx +++ b/apps/frontend/src/sections/business/Hero/index.tsx @@ -1,83 +1,119 @@ import { ArrowTopRightOnSquareIcon } from "@heroicons/react/20/solid"; -import { motion } from "motion/react"; +import { motion, useReducedMotion, type Variants } from "motion/react"; import { useTranslation } from "react-i18next"; import WidgetSnippetImageEUR from "../../../assets/metawallet-vortex.png"; import { AnimatedTitle } from "../../../components/AnimatedTitle"; -import { fadeInUp, prefersReducedMotion, staggerContainer } from "../../../constants/animations"; +import { fadeInUp, staggerContainer } from "../../../constants/animations"; + +const heroImageVariants: Variants = { + hidden: { + opacity: 0, + scale: 0.92, + y: 40 + }, + visible: { + opacity: 1, + scale: 1, + transition: { + damping: 25, + delay: 0.3, + duration: 0.8, + ease: [0.25, 0.46, 0.45, 0.94], + stiffness: 100, + type: "spring" + }, + y: 0 + } +}; export function Hero() { const { t } = useTranslation(); - const reducedMotion = prefersReducedMotion(); + const reducedMotion = useReducedMotion(); return (
-
-
+
+ - + {t("pages.business.hero.description")}
{t("pages.business.hero.contactUs")} {t("pages.business.hero.readDocs")}
-
+ -
- Vortex integration with MetaMask wallet showing EUR cryptocurrency transaction interface -
+ + Vortex integration with MetaMask wallet showing EUR cryptocurrency transaction interface + + +
diff --git a/apps/frontend/src/sections/individuals/Hero/index.tsx b/apps/frontend/src/sections/individuals/Hero/index.tsx index 34900addf..b6bf02bd0 100644 --- a/apps/frontend/src/sections/individuals/Hero/index.tsx +++ b/apps/frontend/src/sections/individuals/Hero/index.tsx @@ -36,7 +36,7 @@ export const Hero = () => {
- + { {t("pages.main.hero.buyAndSellCrypto")} - +