-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Vedant Joshi
committed
Nov 24, 2024
1 parent
9fe14ef
commit e41d507
Showing
1 changed file
with
82 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,73 +1,77 @@ | ||
import { type NextPage } from "next"; | ||
import { IconType } from "react-icons"; | ||
import { FaEnvelope, FaGithub, FaLinkedin, FaTwitter } from "react-icons/fa"; | ||
|
||
const ProfilePage = () => { | ||
interface StyledIconProps extends React.HTMLAttributes<HTMLSpanElement> { | ||
icon: IconType; | ||
size?: number; | ||
color?: string; | ||
} | ||
// Interfaces moved outside the component | ||
interface StyledIconProps extends React.HTMLAttributes<HTMLSpanElement> { | ||
icon: IconType; | ||
size?: number; | ||
color?: string; | ||
} | ||
|
||
interface SocialLink { | ||
href: string; | ||
icon: IconType; | ||
lightHoverColor: string; | ||
darkHoverColor: string; | ||
isEmail?: boolean; | ||
} | ||
interface SocialLink { | ||
href: string; | ||
icon: IconType; | ||
lightHoverColor: string; | ||
darkHoverColor: string; | ||
isEmail?: boolean; | ||
} | ||
|
||
const socialLinks: SocialLink[] = [ | ||
{ | ||
href: "https://github.com/Vedant-05", | ||
icon: FaGithub, | ||
lightHoverColor: "hover:text-gray-900", | ||
darkHoverColor: "dark:hover:text-gray-200", | ||
}, | ||
{ | ||
href: "https://x.com/DecodingDegen", | ||
icon: FaTwitter, | ||
lightHoverColor: "hover:text-blue-400", | ||
darkHoverColor: "dark:hover:text-blue-300", | ||
}, | ||
{ | ||
href: "https://www.linkedin.com/in/vedant-joshi-962a23191", | ||
icon: FaLinkedin, | ||
lightHoverColor: "hover:text-blue-600", | ||
darkHoverColor: "dark:hover:text-blue-400", | ||
}, | ||
{ | ||
href: "mailto:[email protected]", | ||
icon: FaEnvelope, | ||
lightHoverColor: "hover:text-red-500", | ||
darkHoverColor: "dark:hover:text-red-400", | ||
isEmail: true, | ||
}, | ||
]; | ||
// Reusable styled icon component | ||
const StyledIcon: React.FC<StyledIconProps> = ({ icon: Icon, className, size, color, ...props }) => ( | ||
<span className={`inline-block ${className}`} {...props}> | ||
<Icon size={size} color={color} /> | ||
</span> | ||
); | ||
|
||
const StyledIcon: React.FC<StyledIconProps> = ({ icon: Icon, className, size, color, ...props }) => { | ||
return ( | ||
<span className={`inline-block ${className}`} {...props}> | ||
<Icon size={size} color={color} /> | ||
</span> | ||
); | ||
}; | ||
// Social links data | ||
const socialLinks: SocialLink[] = [ | ||
{ | ||
href: "https://github.com/Vedant-05", | ||
icon: FaGithub, | ||
lightHoverColor: "hover:text-gray-900", | ||
darkHoverColor: "dark:hover:text-gray-200", | ||
}, | ||
{ | ||
href: "https://x.com/DecodingDegen", | ||
icon: FaTwitter, | ||
lightHoverColor: "hover:text-blue-400", | ||
darkHoverColor: "dark:hover:text-blue-300", | ||
}, | ||
{ | ||
href: "https://www.linkedin.com/in/vedant-joshi-962a23191", | ||
icon: FaLinkedin, | ||
lightHoverColor: "hover:text-blue-600", | ||
darkHoverColor: "dark:hover:text-blue-400", | ||
}, | ||
{ | ||
href: "mailto:[email protected]", | ||
icon: FaEnvelope, | ||
lightHoverColor: "hover:text-red-500", | ||
darkHoverColor: "dark:hover:text-red-400", | ||
isEmail: true, | ||
}, | ||
]; | ||
|
||
const DeveloperProfilePage: NextPage = () => { | ||
return ( | ||
<div className="min-h-screen bg-slate-900 text-white py-16 px-4"> | ||
<div className="min-h-screen bg-gradient-to-b from-white to-gray-100 dark:from-gray-900 dark:to-gray-800 text-gray-900 dark:text-white py-16 px-4"> | ||
<div className="max-w-3xl mx-auto"> | ||
{/* Hero Section */} | ||
<div className="text-center mb-16"> | ||
<div className="relative inline-block mb-8"> | ||
<img | ||
src="https://avatars.githubusercontent.com/u/71647648?v=4" | ||
alt="Profile" | ||
className="rounded-full w-40 h-40 border-4 border-purple-500" | ||
className="rounded-full w-40 h-40 border-4 border-purple-500 shadow-xl" | ||
/> | ||
</div> | ||
|
||
<h1 className="text-5xl font-bold mb-4">Hi, I'm Vedant!</h1> | ||
<h1 className="text-5xl font-bold mb-4 bg-clip-text text-transparent bg-gradient-to-r from-purple-600 to-pink-600 dark:from-purple-400 dark:to-pink-400"> | ||
Hi, I'm Vedant! | ||
</h1> | ||
<div className="bg-gradient-to-r from-purple-500 to-pink-500 h-1 w-24 mx-auto mb-6"></div> | ||
<p className="text-xl text-gray-300 max-w-3xl mx-auto"> | ||
<p className="text-xl text-gray-700 dark:text-gray-300 max-w-3xl mx-auto"> | ||
Finding my way back to Web3. Rooted in competitive programming (C++), growing in blockchain (Solidity). | ||
Learning, building, and sharing the journey 🛠️ | ||
</p> | ||
|
@@ -76,35 +80,43 @@ const ProfilePage = () => { | |
{/* Main Content */} | ||
<div className="space-y-16"> | ||
{/* About Section */} | ||
<section className="space-y-6"> | ||
<h2 className="text-3xl font-bold text-purple-400">About Me</h2> | ||
<p className="text-gray-300 leading-relaxed"> | ||
A Full Stack Engineer with a deep fascination for DeFi and blockchain technology. Having contributed to | ||
notable DeFi protocols like Instadapp and Router Protocol, I've gained hands-on experience in | ||
building decentralized solutions. While my journey includes significant web2 development, my passion lies | ||
in web3 security and community engagement. Currently focused on bridging traditional finance with DeFi | ||
innovations, while pursuing my path toward becoming a smart contract auditor and developer advocate. I | ||
believe in making blockchain technology more accessible and secure for everyone. | ||
</p> | ||
<section className="space-y-6 bg-white dark:bg-gray-800/50 rounded-xl p-8 shadow-lg"> | ||
<h2 className="text-3xl font-bold text-purple-600 dark:text-purple-400">About Me</h2> | ||
<div className="space-y-4 text-gray-700 dark:text-gray-300 leading-relaxed"> | ||
<p className="border-l-4 border-purple-500 pl-4 bg-purple-50 dark:bg-purple-900/20 py-2"> | ||
A Full Stack Engineer with a deep fascination for DeFi and blockchain technology. | ||
</p> | ||
<p> | ||
Having contributed to notable DeFi protocols like{" "} | ||
<span className="font-semibold text-purple-600 dark:text-purple-400">Instadapp</span> and | ||
<span className="font-semibold text-purple-600 dark:text-purple-400"> Router Protocol</span>, I've | ||
gained hands-on experience in building decentralized solutions. | ||
</p> | ||
<p className="border-l-4 border-pink-500 pl-4 bg-pink-50 dark:bg-pink-900/20 py-2"> | ||
While my journey includes significant web2 development, my passion lies in web3 security and community | ||
engagement. | ||
</p> | ||
<p> | ||
Currently focused on bridging traditional finance with DeFi innovations, while pursuing my path toward | ||
becoming a smart contract auditor and developer advocate. I believe in making blockchain technology more | ||
accessible and secure for everyone. | ||
</p> | ||
</div> | ||
</section> | ||
|
||
{/* Connect Section */} | ||
<section className="text-center space-y-6"> | ||
<h2 className="text-3xl font-bold text-purple-400">Let's Connect</h2> | ||
<section className="text-center space-y-6 bg-white dark:bg-gray-800/50 rounded-xl p-8 shadow-lg"> | ||
<h2 className="text-3xl font-bold text-purple-600 dark:text-purple-400">Let's Connect</h2> | ||
<div className="flex justify-center gap-6"> | ||
{socialLinks.map(({ href, icon: Icon, lightHoverColor, darkHoverColor }, index) => ( | ||
<a | ||
key={index} | ||
href={href} | ||
target="_blank" | ||
rel="noopener noreferrer" | ||
className={`text-gray-300 hover:text-purple-400 transition-colors cursor-pointer`} | ||
className={`text-gray-600 dark:text-gray-400 transition-all duration-300 transform hover:scale-110 ${lightHoverColor} ${darkHoverColor}`} | ||
> | ||
<StyledIcon | ||
icon={Icon} | ||
size={24} | ||
className={`text-gray-600 dark:text-gray-400 ${lightHoverColor} ${darkHoverColor}`} | ||
/> | ||
<StyledIcon icon={Icon} size={24} className="transition-colors" /> | ||
</a> | ||
))} | ||
</div> | ||
|
@@ -115,4 +127,4 @@ const ProfilePage = () => { | |
); | ||
}; | ||
|
||
export default ProfilePage; | ||
export default DeveloperProfilePage; |