Skip to content

Commit 4bb88b2

Browse files
committed
feat: hero section updating
1 parent ea18924 commit 4bb88b2

File tree

3 files changed

+179
-0
lines changed

3 files changed

+179
-0
lines changed

src/app/components/Header.tsx

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
"use client";
2+
import {
3+
Code2Icon,
4+
FolderClosedIcon,
5+
GithubIcon,
6+
HomeIcon,
7+
InstagramIcon,
8+
} from "lucide-react";
9+
import Link from "next/link";
10+
import React from "react";
11+
12+
const Header = () => {
13+
return (
14+
<header className="w-full fixed top-0 left-0 right-0 z-50">
15+
<NavBar />
16+
</header>
17+
);
18+
};
19+
20+
export default Header;
21+
22+
const NavBar = () => {
23+
return (
24+
<div className="border-[0.2] border-gray-700 max-w-4xl mx-auto text-gray-400 backdrop-blur-3xl bg-gray-[#161B22] mt-6 p-3 px-12 rounded-2xl flex justify-between items-center">
25+
<a href="" className="font-medium font-display text-gray-50 flex gap-2">
26+
<Code2Icon/>
27+
SOHEL SAYYED
28+
</a>
29+
<nav>
30+
<ul className="flex gap-2 text-sm font-medium">
31+
<li>
32+
<Link
33+
href="/"
34+
className="flex items-center gap-2 hover:text-gray-200 transition-all duration-200 bg-gradient-to-b from-transparent to-transparent hover:from-transparent hover:to-gray-900 hover:border-b-[0.2] border-gray-500 px-3 py-2 rounded-lg"
35+
>
36+
<HomeIcon size={18} /> Home
37+
</Link>
38+
</li>
39+
<li>
40+
<Link
41+
href="/"
42+
className="flex items-center gap-2 hover:text-gray-200 transition-all duration-200 bg-gradient-to-b from-transparent to-transparent hover:from-transparent hover:to-gray-900 hover:border-b-[0.2] border-gray-500 px-3 py-2 rounded-lg"
43+
>
44+
<FolderClosedIcon size={18} /> Projects
45+
</Link>
46+
</li>
47+
<li className="py-1">
48+
<span className="w-0.5 h-full bg-red-500 inline-block"></span>
49+
</li>
50+
<li>
51+
<Link
52+
href="/"
53+
className="flex items-center gap-2 hover:text-gray-200 transition-all duration-200 bg-gradient-to-b from-transparent to-transparent hover:from-transparent hover:to-gray-900 hover:border-b-[0.2] border-gray-500 px-3 py-2 rounded-lg"
54+
>
55+
<InstagramIcon size={18} />
56+
</Link>
57+
</li>
58+
<li>
59+
<Link
60+
href="/"
61+
className="flex items-center gap-2 hover:text-gray-200 transition-all duration-200 bg-gradient-to-b from-transparent to-transparent hover:from-transparent hover:to-gray-900 hover:border-b-[0.2] border-gray-500 px-3 py-2 rounded-lg"
62+
>
63+
<GithubIcon size={18} />
64+
</Link>
65+
</li>
66+
</ul>
67+
</nav>
68+
</div>
69+
);
70+
};

src/app/components/home/Hero.tsx

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import { InstagramIcon, MailIcon, SendIcon } from "lucide-react";
2+
import Image from "next/image";
3+
import React from "react";
4+
import "./hero.css";
5+
6+
const Hero = () => {
7+
return (
8+
<section className="w-full mt-35">
9+
<div className="max-w-7xl mx-auto flex flex-col gap-2 justify-center items-center">
10+
<div className="group relative w-32 sm:w-40 md:w-48 lg:w-56 aspect-square overflow-hidden rounded-full transition-all duration-300">
11+
<Image
12+
src="https://avatars.githubusercontent.com/u/57430072?v=4"
13+
alt="Sohel Sayyed - profile photo"
14+
fill
15+
className="grayscale-100 hover:grayscale-0 object-cover transition-transform duration-500 ease-in-out group-hover:scale-105"
16+
/>
17+
</div>
18+
<div className="flex flex-col justify-center items-center gap-8 max-w-3xl">
19+
<div>
20+
<span>Hi, I&apos;m</span>
21+
<h1 className="font-display tracking-wide text-5xl font-bold text-gray-50">
22+
Sohel Sayyed
23+
</h1>
24+
</div>
25+
26+
<div>
27+
<ul className="flex gap-3 justify-center items-center">
28+
<li className="hover:text-gray-50 hover:border-b-[0.5px] p-1">
29+
<InstagramIcon />
30+
</li>
31+
<li className="hover:text-gray-50 hover:border-b-[0.5px] p-1">
32+
<MailIcon />
33+
</li>
34+
<li className="hover:text-gray-50 hover:border-b-[0.5px] p-1">
35+
<SendIcon />
36+
</li>
37+
</ul>
38+
</div>
39+
40+
<p className="text-lg">
41+
I&apos;m Sayyed Sohel, a professional with extensive experience in
42+
<span>crafting user-friendly websites </span>and powerful{" "}
43+
<span>Android applications</span>. I can help you bring your digital
44+
ideas to life, whether it&apos;s a sleek and modern website, a
45+
feature-rich mobile app, or both!
46+
</p>
47+
48+
<SkillsSlider />
49+
</div>
50+
</div>
51+
</section>
52+
);
53+
};
54+
55+
export default Hero;
56+
57+
58+
// slider style come from hero.css file.
59+
const SkillsSlider = () => {
60+
return (
61+
<div className="flex gap-2 justify-center items-baseline">
62+
<div>I am</div>
63+
<div className="slider">
64+
<div className="slides ">
65+
<div className="underline decoration-1 decoration-blue-500">Android Dev</div>
66+
<div className="underline decoration-1 decoration-red-500">Fullstack Dev</div>
67+
</div>
68+
</div>
69+
</div>
70+
);
71+
};
72+

src/app/components/home/hero.css

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
.slider {
2+
height: 40px; /* Height of one line of text */
3+
overflow: hidden;
4+
position: relative;
5+
font-size: 24px;
6+
font-weight: bold;
7+
}
8+
9+
.slides {
10+
display: flex;
11+
flex-direction: column;
12+
animation: slide 4s linear infinite;
13+
}
14+
15+
.slides div {
16+
height: 40px; /* Same as slider height */
17+
display: flex;
18+
align-items: center;
19+
}
20+
21+
@keyframes slide {
22+
0% {
23+
transform: translateY(0);
24+
}
25+
40% {
26+
transform: translateY(0);
27+
}
28+
50% {
29+
transform: translateY(-40px); /* Move up to show the 2nd item */
30+
}
31+
90% {
32+
transform: translateY(-40px);
33+
}
34+
100% {
35+
transform: translateY(0); /* Back to first */
36+
}
37+
}

0 commit comments

Comments
 (0)