Skip to content

Commit 62e3c20

Browse files
authored
fix: ui home page
1 parent b914cad commit 62e3c20

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

frontend/src/app/(homepage)/_components/navbar.tsx

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
"use client";
22

3-
import { AnimatePresence, motion } from "framer-motion";
3+
import {
4+
AnimatePresence,
5+
motion,
6+
useMotionValueEvent,
7+
useScroll,
8+
} from "framer-motion";
49
import Image from "next/image";
510
import Link from "next/link";
611
import { useState } from "react";
@@ -34,16 +39,41 @@ function Logo() {
3439
);
3540
}
3641

42+
const parentVariants = {
43+
visible: { opacity: 1, y: 0 },
44+
hidden: { opacity: 0, y: "-4rem" },
45+
};
46+
3747
export function Navbar() {
3848
const [isMenuOpen, setIsMenuOpen] = useState(false);
3949
const { openDialog } = useFeedback();
50+
const { scrollY } = useScroll();
51+
const [hidden, setHidden] = useState(false);
52+
const [previousScroll, setPreviousScroll] = useState(0);
53+
54+
function update(latest: number, previous: number): void {
55+
if (latest < previous) {
56+
setHidden(false);
57+
} else if (latest > 100 && latest > previous) {
58+
setHidden(true);
59+
}
60+
}
61+
62+
useMotionValueEvent(scrollY, "change", (latest: number) => {
63+
update(latest, previousScroll);
64+
setPreviousScroll(latest);
65+
});
4066

4167
const toggleMenu = () => {
4268
setIsMenuOpen(!isMenuOpen);
4369
};
4470

4571
return (
46-
<div className="fixed inset-x-0 top-0 z-50 h-20 border-b border-blue-900/20 bg-blue-100/50 backdrop-blur-[12px] dark:bg-blue-100/5">
72+
<motion.div
73+
animate={hidden ? "hidden" : "visible"}
74+
variants={parentVariants}
75+
className="fixed inset-x-0 top-0 z-50 h-20 border-b border-blue-900/20 bg-blue-100/50 backdrop-blur-[12px] dark:bg-blue-100/5"
76+
>
4777
<div className="container mx-auto flex items-center justify-between px-6 md:px-20">
4878
<Logo />
4979

@@ -132,6 +162,6 @@ export function Navbar() {
132162
) : null}
133163
</AnimatePresence>
134164
</div>
135-
</div>
165+
</motion.div>
136166
);
137167
}

frontend/src/app/(homepage)/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ export default function Home() {
160160
<main className="mx-auto flex-1 overflow-hidden">
161161
<section
162162
id="hero"
163-
className="relative mx-auto mt-28 max-w-[80rem] px-2 text-center md:mt-56 md:px-8"
163+
className="relative mx-auto mt-28 max-w-[80rem] px-2 text-center md:mt-40 md:px-8 lg:mt-56"
164164
>
165165
<div className="z-10 flex animate-fade-in-2 items-center justify-center opacity-0 [--animation-delay:1000ms]">
166166
<Link href="#topwr">

0 commit comments

Comments
 (0)