HTML作品集

student-portfolio-website-vanilla — HTML 作品集模板

作者 rik-byte-shifter

一个用原生 HTML、CSS 和 JavaScript 构建的多页学生作品集网站,包含首页、关于、教育、技能、项目和联系页面,支持深色/浅色主题与响应式布局。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-13查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

多页结构:首页、关于、教育、技能、项目、联系六个独立 HTML 页面

02

深色/浅色主题切换,偏好保存在 localStorage

03

滚动触发动画:IntersectionObserver 实现区块渐入与技能条填充

04

首页打字机效果轮播多个职位标题

05

联系表单带客户端校验和行内错误提示

06

移动优先响应式布局,含汉堡导航与返回顶部按钮

模板详细介绍

这是一个面向学生和开发者的多页作品集模板,使用 HTML5、CSS3 和原生 JavaScript 编写,不依赖框架,也没有构建步骤。站点包含六个页面:首页(带打字机效果的职位轮播、社交链接和行动按钮)、关于我(个人资料、简介、关注方向)、教育(时间线)、技能(进度条与卡片)、项目(项目卡片与进行中的构建日志)以及联系(带客户端校验的表单)。

交互与视觉方面,模板提供深色(默认)和浅色主题切换,偏好保存在 localStorage;首次访问显示加载动画,后续导航通过 sessionStorage 跳过;滚动时区块和卡片通过 IntersectionObserver 渐入;技能条在进入视口时填充;按钮有点击涟漪效果;滚动后出现返回顶部按钮。导航在移动端折叠为汉堡菜单,页面使用语义化标签、ARIA 属性和键盘友好的焦点样式。

使用限制:联系表单仅做客户端校验并显示演示成功消息,没有后端,需要自行接入 API 或表单服务(README 提及 Formspree);README 还提到 Firebase 集成,但启用前需自行配置并核对额度与收费。演示图片、字体、图标等第三方素材需按各自许可单独核对。模板按 MIT 许可发布,可免费使用、修改和分发,但需保留版权与许可声明。

HTML作品集

适合你的项目吗?

适用场景

  • 学生或初级开发者搭建个人作品集网站,展示教育背景、技能和项目
  • 作为原生 HTML/CSS/JavaScript 的学习示例,参考主题切换、表单校验和滚动动画的实现
  • 需要无框架、无构建步骤的静态站点,可直接部署到 GitHub Pages 等静态托管
  • 在已有 HTML 基础上快速替换文字、图片和链接,生成个人版本

适合人群

  • 希望用纯 HTML、CSS、JavaScript 构建作品集的学生
  • 需要轻量静态模板、不想引入框架或构建工具的开发者
  • 想学习原生 JavaScript 交互实现(主题、表单、动画)的初学者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    克隆或下载仓库后,可直接双击 index.html 打开,或使用本地服务器(如 VS Code Live Server、npx serve .)避免 file 协议问题

  2. 2

    部署到 GitHub Pages 时,确保 css/、js/、images/ 目录及文件已提交,各 HTML 文件已包含 <base href="./">

  3. 3

    替换 images/profile_image1.jpg 和 images/about_image.jpg 为个人照片,缺失时会显示占位图

  4. 4

    在 css/style.css 的 :root 和 [data-theme="light"] 中修改主题色变量;在 js/script.js 的 initHeroRoleRotator() 的 roles 数组中修改打字机文案

  5. 5

    联系表单仅客户端校验,需修改表单 action 或在 script.js 中添加 fetch 以接入后端或表单服务(如 Formspree、Netlify Forms)

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • README 提及 Formspree 表单服务;真实提交需配置服务端点,其使用额度与费用需单独核对。
  • README 提及 Firebase 集成;启用相关动态功能前需自行配置,并核对 Firebase 的额度与收费。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 联系表单仅做客户端校验,没有后端;要真正接收提交,必须自行修改表单 action 或添加 fetch,接入自己的后端或第三方表单服务(如 Formspree、Netlify Forms)。
  • 联系页表单只显示演示用的成功提示,不含后端逻辑;需自行接入 API 或表单服务才能实际发送消息。
  • 直接以 file 协议打开可能出现问题,建议使用本地服务器(如 Live Server)运行,否则部分功能可能无法正常工作。
  • 页面字体来自 Google Fonts 外部服务,使用时会向 Google 发起请求,需自行确认其可用性与相关条款。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

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`.

README 原文

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

README 原文

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

README 原文

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

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

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-13。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 83 / 100
技术栈
HTML
网站类型
作品集
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-05-15
截图检查日期
2026-10-13

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 HTML。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-13

查看当时使用的来源资料

SHA-256: 5533a4c93776613089b4f15e6427eb7462a36af1a85a0b636975531d62adb1e3

2026-10-13T07:56:07.283Z

来源文件 / 仓库
<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>
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。