diff --git a/frontend/src/app/(pages)/DeerhackExperiencePage.tsx b/frontend/src/app/(pages)/DeerhackExperiencePage.tsx index 1db1ad5..49f575d 100644 --- a/frontend/src/app/(pages)/DeerhackExperiencePage.tsx +++ b/frontend/src/app/(pages)/DeerhackExperiencePage.tsx @@ -143,56 +143,56 @@ export default function ExperiencePage() { -
+
-
-
+
+

Mala Deep Upadhaya

Mentor

-
+
-

+

“Mentoring at DeerHack was an incredibly fulfilling experience. The participants brought great energy, creativity, and a genuine eagerness to learn,,while the volunteers ensured everything ran smoothly with their constant dedication. The welcoming and collaborative environment made it easy to connect, share ideas, and build together, it’s truly an inspiring community to be part of.”

-
+
-
-
+
+

Nischal Tamang

Participant

-

- “One of the best hackathons and the event management was very good.” +

+ “One of the best hackathons and the event management was very good and truly exceeded all expectations.”

-
-
+
+
-

Samip Lamsal

+

Samip Lamsal

Participant

-

+

“ DeerHack was my third national hackathon and by far the best organized and managed one I've attended.

-
+
window.scrollTo({ top: 0, behavior: "smooth" })} - className="bg-[rgb(102,51,204,0.78)] p-6 md:p-8 rounded-[25px] flex justify-center items-center hover:bg-purple-600 transition-all cursor-pointer group border border-white/5" + className="bg-[rgb(102,51,204,0.78)] p-6 md:p-6 rounded-[25px] flex justify-center items-center hover:bg-purple-600 transition-all cursor-pointer group border border-white/5" >

Want to create your own experience? diff --git a/frontend/src/app/MainPage.tsx b/frontend/src/app/MainPage.tsx index dc035e7..3257d3c 100644 --- a/frontend/src/app/MainPage.tsx +++ b/frontend/src/app/MainPage.tsx @@ -27,7 +27,7 @@ export default function Home() { {/* */} - + {/* */} diff --git a/frontend/src/app/assets/icons/DeerHackLogoMob.svg b/frontend/src/app/assets/icons/DeerHackLogoMob.svg new file mode 100644 index 0000000..fa70090 --- /dev/null +++ b/frontend/src/app/assets/icons/DeerHackLogoMob.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/app/assets/icons/Deerhack26.tsx b/frontend/src/app/assets/icons/Deerhack26.tsx index c2787a7..7796c99 100644 --- a/frontend/src/app/assets/icons/Deerhack26.tsx +++ b/frontend/src/app/assets/icons/Deerhack26.tsx @@ -10,7 +10,7 @@ export default function DeerHack26Logo({ return ( - + diff --git a/frontend/src/app/assets/icons/DeerhackIconMobile.tsx b/frontend/src/app/assets/icons/DeerhackIconMobile.tsx new file mode 100644 index 0000000..43b0443 --- /dev/null +++ b/frontend/src/app/assets/icons/DeerhackIconMobile.tsx @@ -0,0 +1,318 @@ +export default function DeerhackIconPhone({ + height = 40, + width = 40, + className = "" +}:{ + height?:number; + width?:number; + className?:string; +}) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/frontend/src/app/assets/icons/DeerhackLogoModified.svg b/frontend/src/app/assets/icons/DeerhackLogoModified.svg new file mode 100644 index 0000000..e130b79 --- /dev/null +++ b/frontend/src/app/assets/icons/DeerhackLogoModified.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/app/assets/icons/code-of-conduct.svg b/frontend/src/app/assets/icons/code-of-conduct.svg new file mode 100644 index 0000000..a404c85 --- /dev/null +++ b/frontend/src/app/assets/icons/code-of-conduct.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/src/app/assets/icons/facebook.svg b/frontend/src/app/assets/icons/facebook.svg new file mode 100644 index 0000000..edd2cfe --- /dev/null +++ b/frontend/src/app/assets/icons/facebook.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/app/assets/icons/hamburger.svg b/frontend/src/app/assets/icons/hamburger.svg new file mode 100644 index 0000000..e08dc34 --- /dev/null +++ b/frontend/src/app/assets/icons/hamburger.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/app/assets/icons/homeIcon.svg b/frontend/src/app/assets/icons/homeIcon.svg new file mode 100644 index 0000000..6c67354 --- /dev/null +++ b/frontend/src/app/assets/icons/homeIcon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/src/app/assets/icons/instagram.svg b/frontend/src/app/assets/icons/instagram.svg new file mode 100644 index 0000000..2165c0b --- /dev/null +++ b/frontend/src/app/assets/icons/instagram.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/app/assets/icons/judging-criteria.svg b/frontend/src/app/assets/icons/judging-criteria.svg new file mode 100644 index 0000000..a1c73d6 --- /dev/null +++ b/frontend/src/app/assets/icons/judging-criteria.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/app/assets/icons/legacy.svg b/frontend/src/app/assets/icons/legacy.svg new file mode 100644 index 0000000..d880b44 --- /dev/null +++ b/frontend/src/app/assets/icons/legacy.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/app/assets/icons/linkedin.svg b/frontend/src/app/assets/icons/linkedin.svg new file mode 100644 index 0000000..2883590 --- /dev/null +++ b/frontend/src/app/assets/icons/linkedin.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/app/assets/icons/organizers.svg b/frontend/src/app/assets/icons/organizers.svg new file mode 100644 index 0000000..cb2e696 --- /dev/null +++ b/frontend/src/app/assets/icons/organizers.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/src/app/assets/icons/rounded.svg b/frontend/src/app/assets/icons/rounded.svg new file mode 100644 index 0000000..36ffc7a --- /dev/null +++ b/frontend/src/app/assets/icons/rounded.svg @@ -0,0 +1,9 @@ + +
+ + + + + + +
diff --git a/frontend/src/app/assets/icons/selection-criteria.svg b/frontend/src/app/assets/icons/selection-criteria.svg new file mode 100644 index 0000000..404ecab --- /dev/null +++ b/frontend/src/app/assets/icons/selection-criteria.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/app/assets/images/HeroPageMobile.svg b/frontend/src/app/assets/images/HeroPageMobile.svg index fa2e06a..73bf760 100644 --- a/frontend/src/app/assets/images/HeroPageMobile.svg +++ b/frontend/src/app/assets/images/HeroPageMobile.svg @@ -1,11 +1,11 @@ - - + + - + @@ -14,24 +14,24 @@ - + - + - - + + - + - + - + @@ -42,7 +42,7 @@ - + @@ -59,19 +59,19 @@ - + - - - - - - - - + + + + + + + + - + @@ -80,1432 +80,1432 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + + - - + - - + + - - - + + + - - - + + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - + + - + - + - - - - + + + + - - + + - + - - - - + + + + - - + + - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - + - + - - - - - - - - + + + + + + + + - + - + - + - - + + - + - + - - + + - + - - - + + + - + - + - - + + - + - + - + - + - + - + - - - - - + + + + + - - - - - - + + + + + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/frontend/src/app/assets/images/HeroPageMobileV1.svg b/frontend/src/app/assets/images/HeroPageMobileV1.svg new file mode 100644 index 0000000..fa2e06a --- /dev/null +++ b/frontend/src/app/assets/images/HeroPageMobileV1.svg @@ -0,0 +1,1512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/app/assets/images/PlayButtonExpCard.tsx b/frontend/src/app/assets/images/PlayButtonExpCard.tsx index 77a7df3..6044e76 100644 --- a/frontend/src/app/assets/images/PlayButtonExpCard.tsx +++ b/frontend/src/app/assets/images/PlayButtonExpCard.tsx @@ -2,7 +2,7 @@ import React from 'react' function PlayButtonExpCard() { return ( - + diff --git a/frontend/src/app/assets/images/sponsors/MalaDeep.tsx b/frontend/src/app/assets/images/sponsors/MalaDeep.tsx index d284810..f52c2ab 100644 --- a/frontend/src/app/assets/images/sponsors/MalaDeep.tsx +++ b/frontend/src/app/assets/images/sponsors/MalaDeep.tsx @@ -1,20 +1,38 @@ -import React from 'react' +import React from "react"; function MalaDeep() { return (

- - - - - - - - - - + + + + + + + + +
- ) + ); } -export default MalaDeep +export default MalaDeep; diff --git a/frontend/src/app/assets/images/sponsors/NischalTamang.tsx b/frontend/src/app/assets/images/sponsors/NischalTamang.tsx index 7a4f590..234e72f 100644 --- a/frontend/src/app/assets/images/sponsors/NischalTamang.tsx +++ b/frontend/src/app/assets/images/sponsors/NischalTamang.tsx @@ -3,7 +3,7 @@ import React from 'react' function NischalTamang() { return (
- + diff --git a/frontend/src/app/assets/images/sponsors/SamipLamsal.tsx b/frontend/src/app/assets/images/sponsors/SamipLamsal.tsx index 1f05357..54743c8 100644 --- a/frontend/src/app/assets/images/sponsors/SamipLamsal.tsx +++ b/frontend/src/app/assets/images/sponsors/SamipLamsal.tsx @@ -3,7 +3,7 @@ import React from 'react' function SamipLamsal() { return (
- + diff --git a/frontend/src/app/components/About/AboutCard.tsx b/frontend/src/app/components/About/AboutCard.tsx index 706c6cb..e90e8c8 100644 --- a/frontend/src/app/components/About/AboutCard.tsx +++ b/frontend/src/app/components/About/AboutCard.tsx @@ -12,6 +12,7 @@ import Software from "@/app/assets/icons/SoftwareClub"; import AboutSoftware from "@/app/assets/icons/AboutSoftware"; import CollegeInfo from "@/app/assets/icons/CollegeInfo"; import AboutCollege from "@/app/assets/icons/AboutCollege"; +import DeerhackIconPhone from "@/app/assets/icons/DeerhackIconMobile"; type TabKey = "deerhack" | "software" | "college"; @@ -39,7 +40,7 @@ export default function AboutCard({ height?: number; }>; }[] = [ - { key: "deerhack", Icon: DeerhackLogo }, + { key: "deerhack", Icon: DeerhackIconPhone }, { key: "software", Icon: Software }, { key: "college", Icon: CollegeInfo }, ]; @@ -86,8 +87,8 @@ export default function AboutCard({ > diff --git a/frontend/src/app/components/Navbar/Navbar.tsx b/frontend/src/app/components/Navbar/Navbar.tsx index ba9291e..2f2b17f 100644 --- a/frontend/src/app/components/Navbar/Navbar.tsx +++ b/frontend/src/app/components/Navbar/Navbar.tsx @@ -1,264 +1,13 @@ -"use client" -import { useState, useEffect, useRef } from "react" -import type React from "react" - -import Link from "next/link" -import DeerhackLogo from "@/app/assets/icons/DeerhackLogo" -import { cabinetBold, cabinetMedium, satoshiBlack } from "@/app/utils/fonts" -import Image from "next/image" -import menuSVG from "@/app/assets/icons/menu.svg" -import crossSVG from "@/app/assets/icons/cross.svg" -import Counter_wrapper from "../counter/Counter" +import NavbarPC from "./NavbarPC"; +import NavbarMob from "./NavbarMob"; const Navbar = () => { - const [isMenuOpen, setIsMenuOpen] = useState(false) - const [isResourceOpen, setIsResourceOpen] = useState(false) - const resourceRef = useRef(null) - - const toggleMenu = () => { - setIsMenuOpen(!isMenuOpen) - // Prevent scrolling when menu is open - if (!isMenuOpen) { - document.body.style.overflow = "hidden" - } else { - document.body.style.overflow = "auto" - } - } - - const handleResourceClick = (e: React.MouseEvent) => { - e.stopPropagation() - setIsResourceOpen(!isResourceOpen) - } - - const handleClickOutside = (event: MouseEvent) => { - const currentRef = resourceRef.current as HTMLElement | null - if (currentRef && !currentRef.contains(event.target as Node)) { - setIsResourceOpen(false) - } - } - - useEffect(() => { - if (isResourceOpen) { - window.addEventListener("click", handleClickOutside) - } else { - window.removeEventListener("click", handleClickOutside) - } - - return () => { - window.removeEventListener("click", handleClickOutside) - // Reset overflow when component unmounts - document.body.style.overflow = "auto" - } - }, [isResourceOpen]) - - useEffect(() => { - const handleResize = () => { - if (window.innerWidth >= 1024 && isMenuOpen) { - setIsMenuOpen(false) - document.body.style.overflow = "auto" - } - } - - window.addEventListener("resize", handleResize) - return () => { - window.removeEventListener("resize", handleResize) - } - }, [isMenuOpen]) - return ( -
-
- -
-
- ) -} - -export default Navbar + <> + + + + ); +}; + +export default Navbar; \ No newline at end of file diff --git a/frontend/src/app/components/Navbar/NavbarMob.tsx b/frontend/src/app/components/Navbar/NavbarMob.tsx new file mode 100644 index 0000000..2573fd2 --- /dev/null +++ b/frontend/src/app/components/Navbar/NavbarMob.tsx @@ -0,0 +1,211 @@ +"use client"; +import { useState, useEffect } from "react"; +import Link from "next/link"; +import Image from "next/image"; +import { cabinetMedium } from "@/app/utils/fonts"; +import Counter_wrapper from "../counter/Counter"; + +import DeerhackLogo from "@/app/assets/icons/DeerHackLogoMob.svg"; +import hamburgerIcon from "@/app/assets/icons/hamburger.svg"; +import hamburgerBorder from "@/app/assets/icons/rounded.svg"; + +import organizersIcon from "@/app/assets/icons/organizers.svg"; +import homeIcon from "@/app/assets/icons/homeIcon.svg"; +import legacyIcon from "@/app/assets/icons/legacy.svg"; +import judgingIcon from "@/app/assets/icons/judging-criteria.svg"; +import cocIcon from "@/app/assets/icons/code-of-conduct.svg"; +import selectionIcon from "@/app/assets/icons/selection-criteria.svg"; +import fbIcon from "@/app/assets/icons/facebook.svg"; +import instaIcon from "@/app/assets/icons/instagram.svg"; +import linkedinIcon from "@/app/assets/icons/linkedin.svg"; +import SidebarButton from "./SidebarButton"; + +const Navbar = () => { + const [isOpen, setIsOpen] = useState(false); + + useEffect(() => { + document.body.style.overflow = isOpen ? "hidden" : "auto"; + return () => { + document.body.style.overflow = "auto"; + }; + }, [isOpen]); + + const btnContainer = + "relative flex items-center justify-center w-[56px] h-[56px] transition-transform active:scale-95"; + + return ( + + ); +}; + +// Helpers +const NavLink = ({ + href, + children, +}: { + href: string; + children: React.ReactNode; +}) => ( + + {children} + +); + + +const SocialLink = ({ + href, + src, + alt, +}: { + href: string; + src: any; + alt: string; +}) => ( + + {alt} + +); + +export default Navbar; diff --git a/frontend/src/app/components/Navbar/NavbarPC.tsx b/frontend/src/app/components/Navbar/NavbarPC.tsx new file mode 100644 index 0000000..24cb06d --- /dev/null +++ b/frontend/src/app/components/Navbar/NavbarPC.tsx @@ -0,0 +1,70 @@ +"use client" +import { useState, useEffect, useRef } from "react" +import Link from "next/link" +import DeerhackLogo from "@/app/assets/icons/DeerhackLogo" +import { cabinetBold, cabinetMedium } from "@/app/utils/fonts" +import Counter_wrapper from "../counter/Counter" + +const NavbarPC = () => { + const [isResourceOpen, setIsResourceOpen] = useState(false) + const resourceRef = useRef(null) + + const handleResourceClick = (e: React.MouseEvent) => { + e.stopPropagation() + setIsResourceOpen(!isResourceOpen) + } + + useEffect(() => { + const handleClickOutside = (event: MouseEvent) => { + if (resourceRef.current && !resourceRef.current.contains(event.target as Node)) { + setIsResourceOpen(false) + } + } + if (isResourceOpen) window.addEventListener("click", handleClickOutside) + return () => window.removeEventListener("click", handleClickOutside) + }, [isResourceOpen]) + + return ( +
+
+ +
+
+ ) +} + +export default NavbarPC \ No newline at end of file diff --git a/frontend/src/app/components/Navbar/SidebarButton.tsx b/frontend/src/app/components/Navbar/SidebarButton.tsx new file mode 100644 index 0000000..a289260 --- /dev/null +++ b/frontend/src/app/components/Navbar/SidebarButton.tsx @@ -0,0 +1,33 @@ +import { cabinetMedium } from "@/app/utils/fonts"; +import Image from "next/image"; +import Link from "next/link"; +import { usePathname } from "next/navigation"; + +export default function SidebarButton({ + href, + label, + icon, + route, +}: { + href: string; + label: string; + icon: any; + route?: string; +}){ + const pathName = usePathname() + return( + +
+ {label} +
+ + {label} + + + ); +}; \ No newline at end of file diff --git a/frontend/src/app/sections/home/Hero.tsx b/frontend/src/app/sections/home/Hero.tsx index 953c7a4..e1223ef 100644 --- a/frontend/src/app/sections/home/Hero.tsx +++ b/frontend/src/app/sections/home/Hero.tsx @@ -24,7 +24,7 @@ const handleGlowChange = useCallback((allGlowing: boolean) => { > {/*Original div -->
*/}