diff --git a/src/components/Header/Header.jsx b/src/components/Header/Header.jsx
new file mode 100644
index 0000000..27a83ca
--- /dev/null
+++ b/src/components/Header/Header.jsx
@@ -0,0 +1,67 @@
+import styles from "./Header.module.css"
+import {Link, NavLink} from "react-router";
+import {useEffect, useRef, useState} from "react";
+
+function Header(){
+ const [notificationMenu, setnotificationMenu] = useState(false);
+ const notificationRef = useRef(null);
+
+ useEffect(() => {
+ const handleClickOutside = (event) => {
+ if (notificationRef.current && !notificationRef.current.contains(event.target) && !event.target.closest(`.${styles.bellBtn}`)) {
+ setnotificationMenu(false);
+ }
+ };
+
+ document.addEventListener("mousedown", handleClickOutside);
+ return () => {
+ document.removeEventListener("mousedown", handleClickOutside);
+ };
+ }, []);
+
+
+
+ return (
+
+
+
+
+
+
+ )
+}
+
+export default Header;
\ No newline at end of file
diff --git a/src/components/Header/Header.module.css b/src/components/Header/Header.module.css
new file mode 100644
index 0000000..3372ca4
--- /dev/null
+++ b/src/components/Header/Header.module.css
@@ -0,0 +1,147 @@
+.headerContainer {
+ position: relative;
+ height: fit-content;
+ overflow: visible;
+}
+
+
+.header{
+ display: flex;
+ align-items: center;
+ padding: 0.8rem;
+ height: fit-content;
+ z-index: 2;
+}
+
+
+.headerContent {
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+}
+
+.headerLeftContent {
+ display: flex;
+ width: fit-content;
+ align-items: center;
+ gap: 1.5rem;
+ font-size: 1.2rem;
+}
+
+.headerRightContent {
+ width: fit-content;
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+}
+
+.logo {
+ height: 4rem;
+ width: auto;
+}
+
+.link {
+ color: black;
+ width: fit-content;
+ text-align: center;
+ font-weight: bold;
+}
+
+.link:hover {
+ color: #535bf2;
+}
+
+.activeLink {
+ width: fit-content;
+ text-align: center;
+ font-weight: bold;
+ color: #019AFF;
+}
+
+
+
+
+
+svg {
+ width: fit-content;
+}
+
+
+
+
+.bellBtn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: none;
+ cursor: pointer;
+ transition: transform 0.5s ease;
+ background: none;
+ padding: 7px;
+ border-radius: 50%;
+ width: 75px;
+ height: 50px;
+ svg {
+ stroke: black;
+ stroke-width: 3.5;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ }
+}
+
+.bellBtn:focus {
+ outline: none;
+}
+.bellBtn:focus-visible {
+ outline: 2px solid black;
+}
+
+.activeBellBtn {
+ transform: translateY(-4px);
+ background: rgba(191, 191, 191, 0.5);
+ svg {
+ stroke: #019AFF;
+ }
+}
+
+.bellBtn:hover {
+ transform: translateY(-4px);
+ background: rgba(191, 191, 191, 0.5);
+ svg {
+ stroke: #019AFF;
+ }
+}
+
+
+
+
+.profileLink {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: transform 0.5s ease;
+}
+
+.profileLink:hover {
+ transform: translateY(-4px);
+}
+
+
+
+
+.notificationDiv {
+ position: absolute;
+ width: 200px;
+ top: 105%;
+ right: 2rem;
+ opacity: 0;
+ transform: translateY(-10px);
+ transition: opacity 0.3s ease, transform 0.3s ease;
+ z-index: 1;
+}
+
+.activeNotificationDiv {
+ opacity: 1;
+ transform: translateY(0);
+ z-index: 3;
+}
\ No newline at end of file
diff --git a/src/components/background/background.module.css b/src/components/background/background.module.css
index 41d0a05..9c009a5 100644
--- a/src/components/background/background.module.css
+++ b/src/components/background/background.module.css
@@ -1,5 +1,6 @@
/* BACKGROUND ////////////////////////////////////////////////////////*/
.background-container {
+ z-index: 0;
margin: 0;
padding: 0;
min-height: 100vh;
@@ -47,8 +48,8 @@
width: 500px;
height: 500px;
background-color: rgb(244, 244, 172);
- bottom: 0%;
- right: 0%;
+ bottom: 0;
+ right: 0;
}
.circle-5 {
diff --git a/src/index.css b/src/index.css
index 413d12d..a61b4fd 100644
--- a/src/index.css
+++ b/src/index.css
@@ -24,6 +24,7 @@
.content {
padding: 1.5rem;
+ z-index: 1;
}
@@ -34,9 +35,6 @@ a {
color: #646cff;
text-decoration: inherit;
}
-a:hover {
- color: #535bf2;
-}
body {
margin: 0;
@@ -51,7 +49,7 @@ body {
.glassCard {
width: 100%;
padding: 10px 20px 10px 20px;
- height: 360px;
+ height: fit-content;
background: rgba(255, 255, 255, 0.65);
backdrop-filter: blur(3px);
-webkit-backdrop-filter: blur(3px);
diff --git a/src/layout.jsx b/src/layout.jsx
index 082488d..b159981 100644
--- a/src/layout.jsx
+++ b/src/layout.jsx
@@ -1,15 +1,20 @@
import { Outlet } from "react-router";
import Footer from "./components/Footer/Footer.jsx"
+import Header from "./components/Header/Header.jsx";
+import Background from "./components/background/background.jsx";
function Layout(){
return (
)
}
diff --git a/src/pages/Home/HomePage.jsx b/src/pages/Home/HomePage.jsx
index fc12601..71b4a8e 100644
--- a/src/pages/Home/HomePage.jsx
+++ b/src/pages/Home/HomePage.jsx
@@ -4,6 +4,28 @@ function HomePage(){
return (
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
+
jbgejin
)
}