🌟 MUHAMMAD YASIR — FULL STACK DEVELOPER PORTFOLIO
{
"name": "Muhammad Yasir",
"role": "Full Stack Developer",
"location": "Islamabad, Pakistan",
"experience": "2+ Years",
"projects": "12+ Completed",
"internships": "3 in 1 Year",
"availability": "Open to Work"
}| 🎨 Design Goal | ⚡ Technical Goal | 🚀 Career Goal |
|---|---|---|
| Create a visually stunning and memorable portfolio | Demonstrate proficiency in modern frontend technologies | Attract potential employers and clients |
| Implement smooth, engaging animations | Showcase clean, maintainable code architecture | Land more internship opportunities |
| Ensure flawless responsive experience | Practice JavaScript DOM manipulation and data handling | Build a strong personal brand online |
Learn how this portfolio was built step-by-step through detailed articles:
- 📝 Dev.to: https://dev.to/yasirawan4831/full-stack-portfolio-website-complete-step-by-step-breakdown-4ccg
- 📝 Hashnode: https://developerhub-coraporation-internship.hashnode.dev/full-stack-portfolio-website-complete-step-by-step-breakdown
- 📝 Substack: https://open.substack.com/pub/yasirwaninfo/p/full-stack-portfolio-website-complete
- 📝 Medium: https://medium.com/@YasirAwan4831/full-stack-portfolio-website-complete-step-by-step-breakdown-07df43fe8f2e
Watch the complete project explanation on YouTube:
https://youtu.be/XcyAGuaVp_E?si=C4-lFnUrNDRoJjeT)](https://youtu.be/BhO4PwLpRP4?si=w8t53QDoVybIJ4lD)
| Feature | Description | Status |
|---|---|---|
| 🏠 Hero Section | Typed animations, floating tech cards, animated stats | ✅ |
| 👤 About Me | Bio, ambitions, personal info card with status indicator | ✅ |
| 💼 Projects Gallery | 12 projects with filters, load more, live demo links | ✅ |
| 🛠️ Skills Display | 4 categories, 24+ skills with colored icons, soft skills | ✅ |
| 📊 Experience Timeline | 3 internships with contributions and tech tags | ✅ |
| 📚 Education & Certs | 3 degrees + 6 certifications with hover effects | ✅ |
| 🏆 Achievements | 6 milestones with gradient icons and animations | ✅ |
| 💬 Testimonials | Auto-sliding carousel with client reviews | ✅ |
| 📝 Blog System | 6 full articles with modal popup, rich formatting | ✅ |
| 💰 Services Pricing | 3 service categories with 3 plans each, feature lists | ✅ |
| 📬 Contact Form | Validation, success/error messages, 8 social links | ✅ |
| 🎭 Interactive UI | Custom cursor, page loader, scroll animations | ✅ |
| 🌓 Theme Toggle | Dark/light mode with localStorage persistence | ✅ |
| 📱 Mobile Menu | Hamburger menu with smooth transitions | ✅ |
📦 muhammad-yasir-portfolio
├── 📁 assets
│ ├── 📁 images
│ │ ├── 🖼️ profile.jpg
│ │ ├── 🖼️ project-1.jpg
│ │ ├── 🖼️ project-2.jpg
│ │ └── ...
│ └── 📁 icons
│ ├── favicon.ico
│ └── ...
├── 📄 index.html # Main HTML file (structure only)
├── 📄 style.css # Complete styling (4000+ lines)
├── 📄 script.js # All data & functionality (3000+ lines)
├── 📄 README.md # Project documentation
└── 📄 LICENSE # MIT License
- A modern web browser (Chrome, Firefox, Safari, Edge)
- Basic understanding of HTML/CSS/JavaScript (for modifications)
- Git (optional, for cloning)
# Clone the repository
git clone https://github.com/YasirAwan4831/muhammad-yasir-portfolio.git
# Navigate to project directory
cd muhammad-yasir-portfolio
# Open in browser
open index.html
# OR simply double-click index.html🔧 Customization Guide
📝 How to Update Personal Information
Open `script.js` and find the `DATA` object at the top: ```javascript const DATA = { personal: { name: 'Muhammad Yasir', // Change your name role: 'Full Stack Developer', // Change your role email: 'my4831@gmail.com',// Change your email location: 'Islamabad, Pakistan', // Change your location // ... more fields }, // ... }; ```
🖼️ How to Add Your Own Images
1. Place your images in the `assets/images/` folder 2. Update image paths in `DATA.projects` array: ```javascript { title: 'Your Project', image: './assets/images/your-image.jpg', // Update this path // ... } ```
🎨 How to Change Colors
Open `style.css` and modify CSS variables at the top: ```css :root { --primary: #00e5a0; /* Main green color */ --primary-dark: #00b87a; /* Darker green */ --accent: #4d9fff; /* Blue accent */ /* ... more colors */ } ```
📱 RESPONSIVE DESIGN
<div align="center"> Device | Breakpoint | Optimization --- | --- | --- 🖥️ Desktop | > 1024px | Full layout, custom cursor, hover effects 💻 Laptop | 1024px | Grid adjustments, reduced spacing 📱 Tablet | 768px - 1024px | Hamburger menu, single column sections 📱 Mobile | < 768px | Stacked layout, touch-friendly buttons 📱 Small Mobile | < 480px | Compact cards, simplified stats </div>
📊 Responsive Features
🌈 Color Palette
:root {
--primary: #00e5a0; /* Vibrant green - success, energy */
--accent: #4d9fff; /* Bright blue - trust, professionalism */
--bg-base: #080c10; /* Deep dark - sophistication */
--text-1: #f0f4f8; /* Light gray - readability */
--text-2: #a0aec0; /* Medium gray - secondary text */
--text-3: #64748b; /* Dark gray - muted elements */
}
| Font Family | Usage | Weight | Fallback |
|------------|----------------------|------------|-----------|
| Syne | Headings (h1-h6) | 700, 800 | sans-serif |
| DM Sans | Body text, paragraphs| 300, 400, 500 | sans-serif |
The entire portfolio is powered by a single JavaScript file containing:
// 1. DATA Object - All content in one place
const DATA = {
personal: { /* ... */ },
projects: [ /* 12 items */ ],
skills: [ /* 24+ items */ ],
experience: [ /* 3 items */ ],
blogPosts: [ /* 6 articles */ ],
// ... 15+ data categories
}
// 2. RENDER Object - All DOM manipulation
const RENDER = {
heroStats() { /* ... */ },
projects() { /* ... */ },
blog() { /* ... */ },
// ... 15+ render functions
}
// 3. INIT Functions - All interactivity
// - Custom cursor
// - Typed animation
// - Theme toggle
// - Blog modal
// - Form handling
// - And more...┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ DATA │────▶│ RENDER │────▶│ DOM │
│ (script.js)│ │ functions │ │ (HTML) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ INIT │ │ INTERACT │
│ functions │ │ (User) │
└─────────────┘ └─────────────┘
The blog section features 6 full-length articles with rich formatting and modal display:
| Article Title | Category | Read Time |
|---|---|---|
| Building a Modern Portfolio with React & TypeScript | Web Dev | 5 min |
| How I Landed 3 Internships in One Year | Career | 4 min |
| Top 10 UI/UX Principles Every Developer Must Know | Design | 4 min |
| Typing Master Web App (React + Vite) | Web Development | |
| 4 min | ||
| JavaScript vs TypeScript: Which First? | Web Dev | 5 min |
| WordPress vs Custom Code: When to Use Each | Web Dev | 4 min |
| Git & GitHub for Beginners | Tools | 5 min |
- ✅ Modal popup with smooth animation
- ✅ Rich text formatting (headings, lists, blockquotes)
- ✅ Code snippets with syntax highlighting
- ✅ Tip boxes for pro advice
- ✅ Author info and publication date
- ✅ Keyboard navigation (Enter to open, Escape to close)
| Feature | Implementation |
|---|---|
| ✅ Validation | Client-side with regex |
| ✅ Error Messages | User-friendly alerts |
| ✅ Success Feedback | Confirmation message |
| ✅ Loading State | Spinner during submission |
| ✅ Auto-reset | Form clears after success |
| ✅ Accessibility | ARIA labels, keyboard navigation |
┌─────────────────────────────────────┐
│ Full Name [______________] │
├─────────────────────────────────────┤
│ Email [______________] │
├─────────────────────────────────────┤
│ Subject [______________] │
├─────────────────────────────────────┤
│ Service [Dropdown ▼] │
├─────────────────────────────────────┤
│ Message [textarea] │
├─────────────────────────────────────┤
│ [ SEND MESSAGE ] │
└─────────────────────────────────────┘
// Smooth following cursor with magnetic effect on buttons
// Dot cursor (8px) follows mouse exactly
// Ring cursor (32px) follows with lag for smooth effect
// Scales up on hover over interactive elements.loader-bar::after {
animation: loader 1.5s ease forwards; /* Simulates loading progress */
}
Full Stack Developer → Frontend Engineer → UI/UX Enthusiast →
WordPress Developer → AI Integrations Dev → Problem Solver
Elements fade up as they enter viewport
Staggered delays (100ms, 200ms, 300ms)
Counters animate when visible
<div align="center"> | Dark Theme | Light Theme | |------------|-------------| |  |  | </div>
// 1. Check localStorage for saved preference
const savedTheme = localStorage.getItem('theme') || 'dark';
// 2. Apply theme on page load
if (savedTheme === 'light') applyTheme('light');
// 3. Toggle on button click
themeBtn.addEventListener('click', () => {
const isLight = body.classList.contains('light-theme');
applyTheme(isLight ? 'dark' : 'light');
});
// 4. Save preference
function applyTheme(theme) {
body.classList.toggle('light-theme', theme === 'light');
localStorage.setItem('theme', theme);
}
/* Dark Theme (Default) */
:root {
--bg-base: #080c10;
--text-1: #f0f4f8;
--primary: #00e5a0;
}
/* Light Theme */
body.light-theme {
--bg-base: #f8fafc;
--text-1: #0f172a;
--primary: #00a572;
}
<meta name="description" content="Muhammad Yasir — Full Stack Developer Portfolio | 12+ Live Projects | Modern Web Experiences" />
<meta name="author" content="Muhammad Yasir" />
<meta name="keywords" content="Full Stack Developer, Frontend Developer, React, Node.js, Portfolio, Islamabad, Pakistan" />
<header>, <nav>, <section>, <article>, <footer>
Proper heading hierarchy (h1 → h6)
ARIA labels for interactive elements
Alt text for all images
- Lazy loading for images (
loading="lazy") - Minified CSS and JS
- Font preloading
- Optimized animation performance
This project is licensed under the MIT License.
| Organization | Role |
|---|---|
| Arch Technologies | Internship Opportunity |
| Apexcify Technologies | Frontend Developer Experience |
| DevHub Corporation | Internship & Mentorship |
| Pakistan Career Fire | Career Development Program |
- Font Awesome - Icons
- Google Fonts - Syne & DM Sans
- Readme Stats - GitHub Stats
- Typing SVG - Animated Text
- Capsule Render - Wave Headers
| Feature | Status | Priority |
|---|---|---|
| Backend Integration with Node.js | ⏳ Planned | 🟡 Medium |
| Real Database for Blog Posts | ⏳ Planned | 🟢 High |
| User Authentication | ❌ Not Started | 🔴 Low |
| Admin Dashboard | ❌ Not Started | 🔴 Low |
| More Interactive Animations | ✅ Done | - |
| PWA Support | ⏳ Planned | 🟡 Medium |
| Multi-language Support | ❌ Not Started | 🔴 Low |
| Print-friendly Resume | ✅ Done | - |
⭐ Star this repository if you found it useful! ⭐
Made by Muhammad Yasir
