A responsive multi-page portfolio website built with HTML, CSS, and vanilla JavaScript.
This site presents Sonu Kumar Sharma's profile, skills, education, certifications, projects, and contact details with a shared navigation system, light/dark theme support, and mobile-friendly layouts.
index.html- homepage with introduction, strengths, and quick linksabout.html- personal summary, key skills, and certification highlightsprojects.html- featured project showcase with live and GitHub linkstechnologies.html- frontend, backend, tools, and proficiency sectionseducation.html- formal education, learning summary, and featured certificate viewercontact.html- contact details and EmailJS-ready contact form
- responsive multi-page layout
- shared navbar across all pages
- light and dark theme toggle with saved preference
- active navigation highlighting
- mobile hamburger menu with animated open state
- clickable header logo that always returns to the homepage
- featured cybersecurity certificate with view-only modal preview
- animated cards and section reveal effects
- EmailJS-ready contact form
assets/IMG_20251124_122340.jpg- navbar/profile logo imageassets/cyber-security-certificate.jpeg- featured certificate preview
- HTML5
- CSS3
- JavaScript
- EmailJS Browser SDK
Portfolio/
|-- assets/
| |-- cyber-security-certificate.jpeg
| `-- IMG_20251124_122340.jpg
|-- js/
| |-- contact.js
| |-- main.js
| `-- theme-init.js
|-- styles/
| `-- style.css
|-- about.html
|-- contact.html
|-- education.html
|-- index.html
|-- projects.html
|-- technologies.html
`-- README.md
No build step is required.
- Open
index.htmlin a browser. - Navigate through the pages to verify layout, theme switching, mobile navigation, and homepage logo link behavior.
- Open
education.htmland use the certificate button to test the certificate viewer. - Open
contact.htmlto test the contact form UI.
The contact form uses EmailJS, but the repo still contains placeholder keys.
Update js/contact.js with your real values:
const EMAILJS_CONFIG = {
publicKey: "YOUR_EMAILJS_PUBLIC_KEY",
serviceId: "YOUR_EMAILJS_SERVICE_ID",
templateId: "YOUR_EMAILJS_TEMPLATE_ID"
};After replacing the placeholders, the contact form can send messages directly from the website.
- featured project: Garbage Reporting System
- featured certificate: Program in Cyber Security
- current education highlight: BCA at KCC Institute of Legal and Higher Education
- update page content in the HTML files
- update the main design system in
styles/style.css - update shared interactions in
js/main.js - update EmailJS settings in
js/contact.js - replace images inside
assets/when needed
- this is a static website and can be hosted on GitHub Pages, Netlify, Vercel, or any static host
- the contact form will not send messages until valid EmailJS credentials are added
- the certificate preview is view-only in the UI, but browsers cannot fully prevent screenshots or determined downloads
March 14, 2026