A modern, responsive portfolio website built with HTML, CSS, and JavaScript. Perfect for showcasing your projects and skills on GitHub Pages.
- Responsive Design: Looks great on all devices (desktop, tablet, mobile)
- Modern UI: Clean, professional design with smooth animations
- Interactive Projects: Click on project cards to view detailed information
- Contact Form: Functional contact form with validation
- Smooth Scrolling: Elegant navigation between sections
- Mobile Menu: Hamburger menu for mobile devices
- SEO Friendly: Optimized for search engines
- Clone or download this repository to your local machine
- Customize the content with your information (see customization guide below)
- Deploy to GitHub Pages (see deployment guide below)
Edit index.html and replace:
Your Name- Replace with your actual nameyour.email@example.com- Replace with your emailhttps://linkedin.com/in/yourprofile- Replace with your LinkedIn URLhttps://github.com/yourusername- Replace with your GitHub URL
Replace the emoji in the .profile-img::before CSS rule in styles.css or add an actual image:
.profile-img::before {
content: 'π¨βπ»'; /* Replace with your preferred emoji or remove for image */
}To use a real photo:
- Add your image to the portfolio folder
- Update the CSS:
.profile-img {
background-image: url('your-photo.jpg');
background-size: cover;
background-position: center;
}
.profile-img::before {
display: none;
}In index.html, update the about section with your own description and skills.
Edit the projects array in script.js:
const projects = [
{
id: 1,
title: "Your Project Title",
description: "Short description of your project",
longDescription: "Detailed description for the modal",
image: "π―", // Emoji or image path
technologies: ["React", "Node.js", "MongoDB"],
demoUrl: "https://your-live-demo.com",
githubUrl: "https://github.com/yourusername/project",
features: [
"Feature 1",
"Feature 2",
"Feature 3"
]
},
// Add more projects...
];Update the skills section in index.html:
<div class="skills-grid">
<span class="skill-tag">Your Skill</span>
<span class="skill-tag">Another Skill</span>
<!-- Add more skills -->
</div>Customize the color scheme in styles.css:
:root {
--primary-color: #2563eb;
--secondary-color: #fbbf24;
--text-color: #1f2937;
--bg-color: #f8fafc;
}- Create a new repository on GitHub
- Upload your files to the repository
- Go to Settings > Pages
- Select source: Deploy from a branch
- Choose branch: main (or master)
- Save and wait for deployment
# Initialize git repository
git init
# Add all files
git add .
# Commit changes
git commit -m "Initial commit"
# Add GitHub repository as origin
git remote add origin https://github.com/yourusername/yourusername.github.io.git
# Push to GitHub
git push -u origin main- Open GitHub Desktop
- Create new repository from your portfolio folder
- Publish to GitHub
- Enable GitHub Pages in repository settings
To use a custom domain:
- Add a CNAME file to your repository with your domain name
- Configure DNS with your domain provider
- Update GitHub Pages settings to use your custom domain
portfolio/
βββ index.html # Main HTML file
βββ styles.css # CSS styles
βββ script.js # JavaScript functionality
βββ README.md # This file
βββ CNAME # Custom domain (optional)
- Chrome (recommended)
- Firefox
- Safari
- Edge
- Mobile browsers
- Optimize images before adding them
- Keep the CSS and JS files minimal
- Use WebP format for images when possible
- Enable GitHub Pages compression
- Site not loading: Check that index.html is in the root directory
- Images not showing: Verify file paths and names
- Styling issues: Check CSS file path in HTML
- JavaScript not working: Check console for errors
- Changes may take a few minutes to appear
- Check the Actions tab for build status
- Ensure repository is public (for free GitHub accounts)
Add to the <head> section of index.html:
<!-- Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_TRACKING_ID');
</script>The current form shows a success message but doesn't send emails. To add functionality:
- Use Formspree: Add
action="https://formspree.io/f/your-form-id"to the form - Use Netlify Forms: Add
netlifyattribute to the form - Use EmailJS: Implement with JavaScript
Add a dark mode toggle by implementing CSS custom properties and JavaScript toggle functionality.
Credit: @ Serap Ogut
If you encounter any issues or have questions, feel free to open an issue in the repository or contact me through the portfolio contact form.
Happy coding! π