A stunning, dark-theme personal portfolio website built with React.js, Tailwind CSS, and Framer Motion. Features smooth animations, glassmorphism effects, and a modern cyberpunk aesthetic.
- π¨ Dark Futuristic Theme - Cyberpunk-inspired design with neon accents
- π Animated Particle Background - Dynamic particle network animation
- π Glassmorphism Effects - Modern frosted glass UI elements
- π Smooth Animations - Framer Motion powered transitions
- π± Fully Responsive - Perfect on mobile, tablet, and desktop
- β‘ Lightning Fast - Built with Vite for optimal performance
- π― Interactive Elements - Hover effects, smooth scrolling, and more
- Hero Section - Animated typing text with particle background
- About Section - Glassmorphic cards with scroll animations
- Skills Section - Circular progress indicators with hover effects
- Projects Section - Interactive cards with modal details
- Contact Section - Animated form with social media links
- React 18 - Modern React with hooks
- Vite - Next-generation frontend tooling
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Production-ready animation library
- React Icons - Popular icon library
```bash npm install ```
```bash npm run dev ```
The site will be available at http://localhost:5173
```bash npm run build ```
```bash npm run preview ```
Update Your Name:
- Open
src/components/Hero.jsx - Change line 8:
const fullText = 'YOUR NAME';to your actual name - Update
src/components/About.jsxline 64:<h3 className="text-2xl font-bold text-center mb-2">Your Name</h3> - Update
src/components/Contact.jsxline 175: Change footer text
Update Tagline:
- In
src/components/Hero.jsx, edit the tagline text around line 49
The color scheme uses custom neon colors defined in tailwind.config.js:
```javascript colors: { neon: { blue: '#00f3ff', // Cyan purple: '#bf00ff', // Magenta pink: '#ff006e', // Hot pink green: '#00ff9f', // Mint green } } ```
To change colors:
- Edit these values in
tailwind.config.js - Colors are used throughout with classes like
text-neon-blue,border-neon-purple, etc.
Edit src/components/About.jsx:
```javascript // Line 64 - Your name
// Lines 71-78 - Your description
I'm a passionate developer...
// Lines 95, 111, 127 - Feature cards (Clean Code, Fast Performance, Creative Solutions) ```
Edit src/components/Skills.jsx starting at line 49:
```javascript const skills = [ { name: 'React', icon: FaReact, percentage: 95, color: '#00f3ff' }, // Add/remove/edit skills ]; ```
To add a new skill:
- Import the icon from
react-iconsat the top - Add a new object to the skills array
- Set name, icon, percentage (0-100), and color
Edit src/components/Projects.jsx starting at line 107:
```javascript const projects = [ { title: 'Project Name', emoji: 'π', description: 'Short description', fullDescription: 'Detailed description for modal', tags: ['React', 'Node.js'], features: [ 'Feature 1', 'Feature 2', ], github: 'https://github.com/yourusername/project', live: 'https://project-demo.com' }, // Add more projects ]; ```
Edit src/components/Contact.jsx starting at line 27:
```javascript const socialLinks = [ { name: 'GitHub', icon: FaGithub, url: 'https://github.com/yourusername', color: '#ffffff' }, // Update URLs to your profiles ]; ```
To connect a real contact form:
- Replace the
handleSubmitfunction (line 17) - Integrate with services like Formspree, EmailJS, or your own backend
Current font: Space Grotesk
To change:
- Edit
index.htmlGoogle Fonts link - Update
tailwind.config.js: ```javascript fontFamily: { sans: ['Your Font', 'system-ui', 'sans-serif'], } ```
Edit src/components/Particles.jsx:
- Line 11:
const particleCount = 100;- Change number of particles - Lines 29-32: Adjust opacity and colors
- Line 54: Change connection distance (default 100px)
Most components use Framer Motion's useInView hook:
```javascript
const isInView = useInView(ref, { once: true, amount: 0.3 });
```
once: true- Animation triggers onceamount: 0.3- Trigger when 30% visible
Tailwind's default breakpoints are used:
sm: 640pxmd: 768pxlg: 1024pxxl: 1280px
Example: md:text-6xl means "text-6xl on medium screens and up"
Utility classes in src/index.css:
.glow-text- Blue neon glow effect.glow-text-purple- Purple neon glow effect.glass- Glassmorphism effect.neon-border- Animated neon border (blue to purple).neon-border-green- Animated neon border (green to cyan)
- Push to GitHub
- Import project in Vercel
- Deploy automatically
- Run
npm run build - Deploy the
distfolder
```bash npm run build
```
Currently, no environment variables are required. If you add backend integration:
Create .env:
```
VITE_API_URL=your-api-url
VITE_EMAILJS_KEY=your-key
```
Access in code: ```javascript const apiUrl = import.meta.env.VITE_API_URL; ```
Animations not working:
- Ensure Framer Motion is installed:
npm install framer-motion
Styles not applied:
- Run
npm run devto restart the dev server - Check that Tailwind is properly configured
Icons missing:
- Install react-icons:
npm install react-icons
MIT License - feel free to use this for your own portfolio!
Feel free to fork and enhance this portfolio template!
- Keep it updated - Regularly add new projects and skills
- Optimize images - Use WebP format for better performance
- SEO - Add meta tags in
index.html - Analytics - Add Google Analytics or similar
- Custom domain - Makes your portfolio more professional
Built with β€οΈ using React, Tailwind CSS, and Framer Motion
Need help? Open an issue or reach out!
Happy coding! π