HTMLPortfolio

student-portfolio-website-vanilla — HTML Portfolio Template

By rik-byte-shifter

A multi-page student portfolio website built with vanilla HTML, CSS, and JavaScript, including home, about, education, skills, projects, and contact pages, with dark/light theme and responsive layout.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-13View source

What stands out

A quick read of the recorded project description.

01

Multi-page structure: six separate HTML pages for Home, About, Education, Skills, Projects, and Contact

02

Dark/light theme toggle with preference saved in localStorage

03

Scroll-triggered animations: IntersectionObserver for section fade-ins and skill bar filling

04

Typewriter-effect rotator on the home page cycling through multiple job titles

05

Contact form with client-side validation and inline error messages

06

Mobile-first responsive layout with hamburger navigation and back-to-top button

Template Details

This is a multi-page portfolio template for students and developers, written in HTML5, CSS3, and vanilla JavaScript, with no framework dependencies and no build step. The site includes six pages: Home (with a typewriter-effect role rotator, social links, and call-to-action buttons), About Me (profile, bio, focus areas), Education (timeline), Skills (progress bars and cards), Projects (project cards and an in-progress build log), and Contact (form with client-side validation).

For interaction and visuals, the template offers a dark (default) and light theme toggle, with the preference saved in localStorage; a loading animation appears on first visit, and subsequent navigation skips it via sessionStorage; sections and cards fade in on scroll using IntersectionObserver; skill bars fill when entering the viewport; buttons have a click ripple effect; and a back-to-top button appears after scrolling. Navigation collapses into a hamburger menu on mobile, and pages use semantic tags, ARIA attributes, and keyboard-friendly focus styles.

Usage limitations: The contact form only performs client-side validation and shows a demo success message; there is no backend, so you need to integrate your own API or form service (the README mentions Formspree). The README also mentions Firebase integration, but you must configure it yourself and verify quotas and pricing before enabling it. Third-party assets such as demo images, fonts, and icons require separate license verification. The template is released under the MIT License, allowing free use, modification, and distribution, provided copyright and license notices are retained.

HTMLPortfolio

Is it right for your project?

Use Cases

  • Students or junior developers building a personal portfolio website to showcase education, skills, and projects
  • As a learning example for vanilla HTML/CSS/JavaScript, referencing implementations of theme switching, form validation, and scroll animations
  • For static sites that need no framework or build step, deployable directly to GitHub Pages and similar static hosts
  • Quickly replacing text, images, and links on the existing HTML to create a personal version

Suitable For

  • Students who want to build a portfolio using pure HTML, CSS, and JavaScript
  • Developers who need a lightweight static template without introducing frameworks or build tools
  • Beginners who want to learn vanilla JavaScript interaction implementations (theme, forms, animations)

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    After cloning or downloading the repository, you can open index.html directly by double-clicking, or use a local server (such as VS Code Live Server, npx serve .) to avoid file protocol issues

  2. 2

    When deploying to GitHub Pages, ensure the css/, js/, and images/ directories and files are committed, and each HTML file includes <base href="./">

  3. 3

    Replace images/profile_image1.jpg and images/about_image.jpg with personal photos; placeholders appear if missing

  4. 4

    Modify theme color variables in css/style.css under :root and [data-theme="light"]; modify typewriter text in the roles array of initHeroRoleRotator() in js/script.js

  5. 5

    The contact form only performs client-side validation; modify the form action or add fetch in script.js to integrate a backend or form service (such as Formspree, Netlify Forms)

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version from a public repository under the MIT License; the free scope applies to that version's code and does not imply that external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT License notice.
  • The code is provided as-is; warranties and liability limitations are governed by the original license and applicable law.

Additional costs & items to verify

  • The README mentions the Formspree form service; actual submission requires configuring a service endpoint, and its usage quotas and fees must be verified separately.
  • The README mentions Firebase integration; before enabling related dynamic features, you must configure it yourself and verify Firebase quotas and pricing.
  • Demo images, fonts, icons, and other third-party assets require separate license verification; they cannot be judged solely by the code's MIT License.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
  • The contact form only performs client-side validation and has no backend; to actually receive submissions, you must modify the form action or add fetch to integrate your own backend or a third-party form service (such as Formspree, Netlify Forms).
  • The contact page form only shows a demo success message and contains no backend logic; you must integrate an API or form service to actually send messages.
  • Opening directly via the file protocol may cause issues; it is recommended to run with a local server (such as Live Server), otherwise some features may not work properly.
  • Page fonts come from the external Google Fonts service, which makes requests to Google when used; you must verify its availability and related terms yourself.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

The form is client-side only; connect it to your backend or a service (e.g. Formspree, Netlify Forms) by changing the form `action` and/or adding `fetch` in `script.js`.

Original README

Form with validation and demo success message (no backend; ready to plug into your API or form service).

Original README

Optional: a local server (e.g. [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer)) to avoid file-protocol issues

Original README

**Fonts** — [Google Fonts](https://fonts.google.com): **Outfit** (UI), **JetBrains Mono** (accents)

Original README
https://github.com/rik-byte-shifter/student-portfolio-website-vanilla/blob/main/LICENSEhttps://github.com/rik-byte-shifter/student-portfolio-website-vanilla/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 83 / 100
Technologies
HTML
Website type
Portfolio
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-05-15
Screenshot last checked
2026-10-13

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies HTML as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-13

Inspect the recorded source material

SHA-256: 5533a4c93776613089b4f15e6427eb7462a36af1a85a0b636975531d62adb1e3

2026-10-13T07:56:07.283Z

Source file / repository
<div align="center">

#  Portfolio Website 

**—** *A modern, responsive multi-page portfolio built with vanilla HTML5, CSS3, and JavaScript* **—**

*No frameworks · No build step · Just clean, semantic markup*

</div>

<p align="center">
  <img src="images/ss.png" alt="Portfolio website preview" width="800">
</p>

---

## 🎯 Overview

This portfolio showcases education, skills, projects, and contact in a single cohesive site. It features a **dark/light theme**, smooth **scroll-reveal** animations, a **typewriter** hero, **contact form validation**, and a **first-visit loading screen**—all implemented with plain JavaScript and CSS.

Perfect for students and developers who want a fast, accessible, and easy-to-customize portfolio without dependencies.

---

## ✨ Features

| Feature | Description |
|--------|-------------|
| **🌓 Theme Toggle** | Dark (default) and light themes with preference saved in `localStorage` |
| **📱 Responsive** | Mobile-first layout with hamburger nav and breakpoints for all screen sizes |
| **⌨️ Typewriter Hero** | Rotating role titles with type/delete animation on the homepage |
| **🎬 Page Loader** | Ball-style loading animation on first visit (skipped on subsequent navigation via `sessionStorage`) |
| **👁️ Scroll Reveal** | Sections and cards animate into view on scroll via `IntersectionObserver` |
| **📊 Skill Bars** | Animated skill bars that fill when they enter the viewport |
| **📝 Contact Form** | Client-side validation (name, email, message) with inline errors and success feedback |
| **🔘 Button Ripples** | Click ripple effect on primary/secondary buttons |
| **⬆️ Scroll-to-Top** | Floating button appears after scrolling; smooth scroll back to top |
| **♿ Accessibility** | Semantic HTML, ARIA labels, focus styles, and keyboard-friendly navigation |
| **🎨 Custom Scrollbar** | Themed scrollbar (accent color) for a cohesive look |

---

## 🛠️ Tech Stack

- **HTML5** — Semantic structure, `aria-*` attributes, `loading="lazy"` for images
- **CSS3** — Custom properties (variables), Flexbox/Grid, transitions, media queries
- **Vanilla JavaScript** — No libraries; theme, nav, form, animations, and UX logic in one file
- **Fonts** — [Google Fonts](https://fonts.google.com): **Outfit** (UI), **JetBrains Mono** (accents)

---

## 📁 Project Structure

```
Student_Portfolio_Website/
├── index.html          # Home — hero, typewriter, CTA, social links
├── about.html          # About Me — profile, stats, story, focus areas
├── education.html      # Education — timeline (RUET, HSC, SSC)
├── skills.html         # Skills — technical + tools + soft skills with bars
├── projects.html       # Projects — VisionGuard51, PONG QUEST, portfolio, surprise site, build log
├── contact.html        # Contact — form (name, email, message) + validation
├── css/
│   └── style.css       # Global styles, theme variables, components, responsive
├── js/
│   └── script.js       # Theme, nav, form, skill bars, reveal, ripple, scroll-top, loader, typewriter
├── images/
│   ├── profile_image1.jpg    # Hero profile photo
│   ├── about_image.jpg       # About section photo
│   ├── social/               # LinkedIn, GitHub, Facebook, Instagram icons
│   ├── skills/               # Skill icons (HTML5, CSS3, JS, Python, etc.)
│   ├── tools/                # Tool icons (VS Code, Git, Firebase, etc.)
│   └── projects/             # Project screenshots and media
└── README.md
```

---

## 📄 Pages at a Glance

| Page | Content |
|------|--------|
| **Home** | Hero with name, typewriter roles, short intro, social links, and CTAs (About Me / Get in Touch). |
| **About Me** | Profile (name, degree, university, location), bio, “focused on” and “building next” lists, and “outside of coding.” |
| **Education** | Timeline: RUET (B.Sc. ETE, 2023–Present), HSC, SSC with years and results. |
| **Skills** | Technical skills with progress bars; tools and soft skills in grid/card layout. |
| **Projects** | Cards for VisionGuard51, PONG QUEST, this portfolio, Romantic Surprise site, and an “in progress” build log. |
| **Contact** | Form with validation and demo success message (no backend; ready to plug into your API or form service). |

---

## 🚀 Getting Started

### Prerequisites

- A modern browser (Chrome, Firefox, Safari, Edge)
- Optional: a local server (e.g. [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer)) to avoid file-protocol issues

### Run Locally

1. **Clone or download** the repo:
   ```bash
   git clone https://github.com/rik-byte-shifter/Student_Portfolio_Website.git
   cd Student_Portfolio_Website
   ```

2. **Open the site**
   - **Option A:** Double-click `index.html` to open in your browser.
   - **Option B:** Use a local server (e.g. `npx serve .` or VS Code Live Server) and open the URL shown (e.g. `http://localhost:3000`).

3. **Navigate** via the header: Home, About Me, Education, Skills, Projects, Contact. Use the theme toggle to switch between dark and light.

---

## 🌐 Deploying to GitHub Pages

1. **Push the full project** — Ensure the `css/`, `js/`, and `images/` folders (and all their files) are in the repo. If the site looks unstyled (white page, no CSS), the browser can’t find these assets; check that they’re committed and pushed.
2. **Enable Pages** — In your repo: **Settings → Pages → Source**: choose your branch (e.g. `main`) and root, then save.
3. **Open the site** — Use the URL GitHub gives you (e.g. `https://<username>.github.io/<repo-name>/`). Each HTML file includes `<base href="./">` so CSS, JS, and images load correctly from that URL.

---

## 🎨 Customization

- **Theme colors:** Edit CSS variables in `css/style.css` under `:root` (dark) and `[data-theme="light"]`.
- **Profile images:** Replace `images/profile_image1.jpg` and `images/about_image.jpg`; placeholders are shown if files are missing.
- **Content:** Update text and links in each HTML file (name, bio, education, skills, project descriptions, social URLs).
- **Hero roles:** Change the typewriter phrases in `js/script.js` inside `initHeroRoleRotator()` → `roles` array.
- **Contact form:** The form is client-side only; connect it to your backend or a service (e.g. Formspree, Netlify Forms) by changing the form `action` and/or adding `fetch` in `script.js`.

---

## 🌐 Browser Support

- Chrome, Firefox, Safari, Edge (recent versions)
- Uses `IntersectionObserver`, `localStorage`, and `sessionStorage` (widely supported)
- Graceful degradation if JavaScript is disabled (content still readable; theme defaults to dark)

---

## 📜 License

This project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details.

---

## 👤 Author

**Ranesh Das Rik**

- GitHub: [@rik-byte-shifter](https://github.com/rik-byte-shifter)
- LinkedIn: [Ranesh Das Rik](https://www.linkedin.com/in/ranesh-das-rik)
- Portfolio: This site

---

<p align="center">
  <sub>Built with HTML, CSS, and JavaScript — no frameworks.</sub>
</p>
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

simplefolio

simplefolio

Simplefolio is a minimal single-page portfolio template for developers, built with HTML, Bootstrap, SCSS, and Parcel under the MIT license. It includes Hero, About, Projects, Contact, and Footer sections, with content edited in /src/index.html and theme colors controlled by two SCSS variables.

HTML · Portfolio

Freelancer

Freelancer

A bright, single-page Bootstrap portfolio template for freelancers, designers, and small studios. It includes a responsive portfolio grid with modal detail windows and an SB Forms contact form that requires an API token.

HTML · Portfolio

Resume

Resume

A single-page resume and CV template from Start Bootstrap, built on Bootstrap with a fixed sidebar and content sections.

HTML · Portfolio

Creative

Creative

A single-page marketing template by Start Bootstrap for creative agencies and product services, built on Bootstrap with SCSS, featuring a portfolio grid and call-to-action sections. It includes pre-set SB Forms markers for form integration and npm build scripts for source customization.

HTML · Corporate Website

Grayscale

Grayscale

A dark single-page Bootstrap template from Start Bootstrap for photography, events and brand storytelling, with a large hero and clearly separated sections.

HTML · Corporate Website

startbootstrap-stylish-portfolio

startbootstrap-stylish-portfolio

A one-page Bootstrap portfolio theme from Start Bootstrap with multiple content sections and an off-canvas navigation menu. Basic use means editing HTML/CSS under dist and opening index.html; advanced use relies on npm with Pug and SCSS build scripts.

HTML · Portfolio