From cb204d8db376377b9d3b36af562d4cb9ed047369 Mon Sep 17 00:00:00 2001 From: drakkomaximo Date: Wed, 1 Oct 2025 15:00:20 -0500 Subject: [PATCH 1/8] First part of styles --- packages/nextjs/app/dapp/layout.tsx | 7 +- packages/nextjs/components/Navbar.tsx | 293 ++++++------------ .../components/landing-page/layout/hader.tsx | 20 +- .../AddressInfoDropdown.tsx | 63 ++-- .../CustomConnectButton/ConnectModal.tsx | 10 +- .../WrongNetworkDropdown.tsx | 15 +- .../nextjs/components/ui/StarkLottoLogo.tsx | 57 ++++ 7 files changed, 213 insertions(+), 252 deletions(-) create mode 100644 packages/nextjs/components/ui/StarkLottoLogo.tsx diff --git a/packages/nextjs/app/dapp/layout.tsx b/packages/nextjs/app/dapp/layout.tsx index f5d4994f..478479be 100644 --- a/packages/nextjs/app/dapp/layout.tsx +++ b/packages/nextjs/app/dapp/layout.tsx @@ -20,7 +20,10 @@ export default function DappLayout({ } | null>(null); return ( -
+
+ {/* Fondo degradado igual que landing page */} +
+ setNotification(null)} /> )} -
{children}
+
{children}
); diff --git a/packages/nextjs/components/Navbar.tsx b/packages/nextjs/components/Navbar.tsx index 099e84ba..f6b36524 100644 --- a/packages/nextjs/components/Navbar.tsx +++ b/packages/nextjs/components/Navbar.tsx @@ -10,11 +10,9 @@ import { ArrowUpDown, User, HomeIcon, - Menu, - X, - Globe, } from "lucide-react"; import { CustomConnectButton } from "./scaffold-stark/CustomConnectButton"; +import { StarkLottoLogo } from "./ui/StarkLottoLogo"; import { useAccount } from "@starknet-react/core"; import { useTranslation } from "react-i18next"; import { useLanguage } from "../hooks/useLanguage"; @@ -65,35 +63,18 @@ export function Navbar({ onBuyTicket }: NavbarProps) { transition={{ duration: 0.6, ease: "easeOut" }} > {/* Gradient Border */} -
+
{/* Navbar Content */}
{/* Logo */} - - -
- StarkLotto Logo -
- - StarkLotto - - + {/* Desktop Navigation */}
@@ -106,10 +87,9 @@ export function Navbar({ onBuyTicket }: NavbarProps) { whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }} > - {t(labelKey)} - + @@ -124,13 +104,13 @@ export function Navbar({ onBuyTicket }: NavbarProps) { whileTap={{ scale: 0.98 }} > {/* Animated background glow */} -
+
{/* Button content */} -
-
+
+
- + {t("home.hero.playNow")} @@ -147,22 +127,21 @@ export function Navbar({ onBuyTicket }: NavbarProps) { }} > 🎲 -
+
- {menuItems.slice(2).map(({ id, labelKey, icon: Icon }) => ( + {menuItems.slice(2).map(({ id, labelKey }) => ( - {t(labelKey)} - + @@ -173,135 +152,77 @@ export function Navbar({ onBuyTicket }: NavbarProps) { {/* Right Side Actions */}
- {/* Language Switcher */} + {/* Language Switcher - Modernized */}
setIsLanguageOpen(!isLanguageOpen)} - className="flex items-center justify-center w-8 h-8 text-white/80 hover:text-white transition-colors rounded-lg hover:bg-[#00FFA3]/10 group relative" - whileHover={{ scale: 1.05 }} - whileTap={{ scale: 0.95 }} + className="group relative flex items-center gap-2 px-3 py-2 rounded-xl border border-white/10 bg-white/5 backdrop-blur-md hover:bg-starkYellow/10 hover:border-starkYellow/30 transition-all duration-300" + whileHover={{ scale: 1.02, boxShadow: "0 4px 12px rgba(255,214,0,0.2)" }} + whileTap={{ scale: 0.98 }} > - -
- - {currentLanguage === "en" - ? "EN" - : currentLanguage === "es" - ? "ES" - : currentLanguage === "fr" - ? "FR" - : "PT"} - -
+ + {currentLanguage === "en" + ? "EN" + : currentLanguage === "es" + ? "ES" + : currentLanguage === "fr" + ? "FR" + : "PT"} + + + + + +
- {/* Language Dropdown */} + {/* Language Dropdown - Modernized */} {isLanguageOpen && ( -
- { - changeLanguage("en"); - setIsLanguageOpen(false); - }} - className={`w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-[#00FFA3]/10 transition-colors ${ - currentLanguage === "en" - ? "text-[#00FFA3]" - : "text-white/80" - }`} - whileHover={{ x: 4 }} - whileTap={{ scale: 0.98 }} - > - 🇺🇸 - English - {currentLanguage === "en" && ( - - )} - - { - changeLanguage("es"); - setIsLanguageOpen(false); - }} - className={`w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-[#00FFA3]/10 transition-colors ${ - currentLanguage === "es" - ? "text-[#00FFA3]" - : "text-white/80" - }`} - whileHover={{ x: 4 }} - whileTap={{ scale: 0.98 }} - > - 🇪🇸 - Español - {currentLanguage === "es" && ( - - )} - - { - changeLanguage("fr"); - setIsLanguageOpen(false); - }} - className={`w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-[#00FFA3]/10 transition-colors ${ - currentLanguage === "fr" - ? "text-[#00FFA3]" - : "text-white/80" - }`} - whileHover={{ x: 4 }} - whileTap={{ scale: 0.98 }} - > - 🇫🇷 - Français - {currentLanguage === "fr" && ( - - )} - - { - changeLanguage("pt"); - setIsLanguageOpen(false); - }} - className={`w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-[#00FFA3]/10 transition-colors ${ - currentLanguage === "pt" - ? "text-[#00FFA3]" - : "text-white/80" - }`} - whileHover={{ x: 4 }} - whileTap={{ scale: 0.98 }} - > - 🇧🇷 - Português - {currentLanguage === "pt" && ( - - )} - +
+ {[ + { code: "en", flag: "🇺🇸", name: "English" }, + { code: "es", flag: "🇪🇸", name: "Español" }, + { code: "fr", flag: "🇫🇷", name: "Français" }, + { code: "pt", flag: "🇧🇷", name: "Português" } + ].map((lang) => ( + { + changeLanguage(lang.code as any); + setIsLanguageOpen(false); + }} + className={`w-full flex items-center gap-3 px-4 py-2.5 text-left hover:bg-starkYellow/10 transition-all duration-200 ${currentLanguage === lang.code + ? "text-starkYellow bg-starkYellow/5" + : "text-white/80 hover:text-white" + }`} + whileHover={{ x: 4 }} + whileTap={{ scale: 0.98 }} + > + {lang.flag} + {lang.name} + {currentLanguage === lang.code && ( + + )} + + ))}
)} @@ -313,16 +234,13 @@ export function Navbar({ onBuyTicket }: NavbarProps) { {/* Mobile Menu Button */} setIsMenuOpen(!isMenuOpen)} - className="md:hidden flex items-center justify-center w-8 h-8 relative group" - whileHover={{ scale: 1.05 }} - whileTap={{ scale: 0.95 }} + className="md:hidden flex items-center justify-center px-3 py-2 rounded-xl border border-white/10 bg-white/5 backdrop-blur-md hover:bg-starkYellow/10 hover:border-starkYellow/30 transition-all duration-300" + whileHover={{ scale: 1.02 }} + whileTap={{ scale: 0.98 }} > -
- {isMenuOpen ? ( - - ) : ( - - )} + + {isMenuOpen ? "Close" : "Menu"} +
@@ -339,17 +257,16 @@ export function Navbar({ onBuyTicket }: NavbarProps) { animate={{ opacity: 1, y: 0 }} exit={{ opacity: 0, y: -10 }} > -
+
{menuItems.map(({ id, labelKey, icon: Icon }) => ( setIsMenuOpen(false)} - className="flex items-center gap-3 w-full px-4 py-2.5 text-white/80 hover:text-white hover:bg-[#00FFA3]/10 rounded-lg transition-colors group text-sm cursor-pointer" + className="flex items-center gap-3 w-full px-4 py-2.5 text-white/80 hover:text-white hover:bg-starkYellow/10 rounded-lg transition-colors group text-sm cursor-pointer" whileTap={{ scale: 0.98 }} > - {t(labelKey)} @@ -363,13 +280,13 @@ export function Navbar({ onBuyTicket }: NavbarProps) { whileTap={{ scale: 0.98 }} > {/* Animated background glow */} -
+
{/* Button content */} -
-
+
+
- + {t("home.hero.playNow")} @@ -386,59 +303,55 @@ export function Navbar({ onBuyTicket }: NavbarProps) { }} > 🎲 -
+
)} -
+
-
+
Language
changeLanguage("en")} - className={`px-3 py-1.5 rounded-lg text-sm transition-colors ${ - currentLanguage === "en" - ? "bg-[#00FFA3] text-black" - : "bg-white/10 text-white/80 hover:bg-white/20" - }`} + className={`px-3 py-1.5 rounded-lg text-sm transition-colors ${currentLanguage === "en" + ? "bg-starkYellow text-black" + : "bg-white/10 text-white/80 hover:bg-white/20" + }`} whileTap={{ scale: 0.95 }} > 🇺🇸 EN changeLanguage("es")} - className={`px-3 py-1.5 rounded-lg text-sm transition-colors ${ - currentLanguage === "es" - ? "bg-[#00FFA3] text-black" - : "bg-white/10 text-white/80 hover:bg-white/20" - }`} + className={`px-3 py-1.5 rounded-lg text-sm transition-colors ${currentLanguage === "es" + ? "bg-starkYellow text-black" + : "bg-white/10 text-white/80 hover:bg-white/20" + }`} whileTap={{ scale: 0.95 }} > 🇪🇸 ES changeLanguage("fr")} - className={`px-3 py-1.5 rounded-lg text-sm transition-colors ${ - currentLanguage === "fr" - ? "bg-[#00FFA3] text-black" - : "bg-white/10 text-white/80 hover:bg-white/20" - }`} + className={`px-3 py-1.5 rounded-lg text-sm transition-colors ${currentLanguage === "fr" + ? "bg-starkYellow text-black" + : "bg-white/10 text-white/80 hover:bg-white/20" + }`} whileTap={{ scale: 0.95 }} > 🇫🇷 FR changeLanguage("pt")} - className={`px-3 py-1.5 rounded-lg text-sm transition-colors ${ - currentLanguage === "pt" - ? "bg-[#00FFA3] text-black" - : "bg-white/10 text-white/80 hover:bg-white/20" - }`} + className={`px-3 py-1.5 rounded-lg text-sm transition-colors ${currentLanguage === "pt" + ? "bg-starkYellow text-black" + : "bg-white/10 text-white/80 hover:bg-white/20" + }`} whileTap={{ scale: 0.95 }} > 🇧🇷 PT diff --git a/packages/nextjs/components/landing-page/layout/hader.tsx b/packages/nextjs/components/landing-page/layout/hader.tsx index 35615d68..c56afcfb 100644 --- a/packages/nextjs/components/landing-page/layout/hader.tsx +++ b/packages/nextjs/components/landing-page/layout/hader.tsx @@ -3,6 +3,7 @@ import { useEffect, useState } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { Menu, X, ChevronRight } from "lucide-react"; import { Button } from "../../ui/button"; +import { StarkLottoLogo } from "../../ui/StarkLottoLogo"; import { useRouter } from "next/navigation"; const navLinks = [ @@ -48,21 +49,12 @@ export default function Header() { >
{/* Logo */} - +
{/* Desktop Nav */}