- 🎞️ Smooth Animations — Framer Motion powered enter animations, staggered reveals, and hover effects throughout
- 🎨 Premium UI — Dark theme, orange accent palette, glassmorphism cards, animated marquee ribbons
- 🧲 Magnetic Links — Mouse-tracking magnetic hover effect on contact cards
- 💻 Terminal-style Contact Form — Connected to EmailJS for real email delivery
- 📱 Fully Responsive — Mobile-first layout with adaptive components
- ⚡ Blazing Fast — Vite build tooling, optimized assets, 100dvh viewport handling
- 🔐 Env-based Secrets — EmailJS credentials via
.env, never committed to git
| Section | Description |
|---|---|
| Hero | Animated name reveal, typewriter role, stats counter, social links |
| About | Bio, photo, highlight cards, "Let's work together" CTA |
| Skills | Animated marquee ribbons + categorized tab pills (Backend / Frontend / DevOps / Tools / Languages) |
| Projects | Featured project cards with tech tags, GitHub & Live Demo links |
| Experience | Vertical orange timeline with internship bullet points |
| Contact | Terminal-style form with EmailJS integration + magnetic social cards |
| Category | Tech |
|---|---|
| Framework | React 18 + Vite |
| Styling | Tailwind CSS v4 |
| Animations | Framer Motion |
EmailJS (@emailjs/browser) |
|
| Fonts | JetBrains Mono, Outfit |
| Icons | Devicons CDN + Inline SVGs |
| Deployment | Vercel |
git clone https://github.com/UdayVaidya/Portfolio_Website.git
cd Portfolio_Websitenpm installcp .env.example .envFill in your EmailJS credentials in .env:
VITE_EMAILJS_SERVICE_ID=service_xxxxxxx
VITE_EMAILJS_TEMPLATE_ID=template_xxxxxxx
VITE_EMAILJS_PUBLIC_KEY=your_public_keyGet these from emailjs.com — free plan supports 200 emails/month.
npm run devnpm run buildsrc/
├── assets/ # Static assets
├── components/
│ ├── Hero/ # Landing section
│ ├── About/ # About me section
│ ├── Skills/ # Skills ribbons + tab pills
│ ├── Project/ # Projects & Experience
│ ├── Contact/ # Contact form + EmailJS
│ ├── Navbar/ # Sticky animated navbar
│ └── Typewriter/ # Typewriter effect component
├── pages/
│ └── MainPage.jsx # Root page layout
├── index.css # Global styles + Tailwind theme
└── main.jsx # App entry point
public/
├── uday.jpeg # Profile photo
└── resume.pdf # Downloadable resume
- Create a free account at emailjs.com
- Add a Gmail service under Email Services
- Create a template with these variables:
From: {{name}} ({{email}}) Message: {{message}} - Copy your Service ID, Template ID, and Public Key into
.env
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prodAdd your
.envvariables in Vercel's Project Settings → Environment Variables.
MIT — feel free to use this as inspiration for your own portfolio!
Made with ❤️ by Uday Vaidya