纯静态 HTML/CSS/JS,无构建步骤、无框架、无 npm 依赖,打开 index.html 即可运行
Portfolio-Starter — HTML 作品集模板
作者 mullinsben
Portfolio-Starter 是一个免费开源的静态 HTML 个人作品集模板,采用深色与动效优先的设计,无需构建步骤或框架依赖。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
深色、动效优先的设计:液态玻璃导航、分区强调色切换、滚动文字动画、进入视口淡入揭示
包含首页单页滚动、文章页、实验页与密码门控案例研究等多种页面格式
内置滚动进度导航填充、scroll-spy 与文章目录侧栏自动同步
客户端密码门控用于私密案例研究,演示密码为 demo,可自行替换 SHA-256 哈希
响应式适配移动端,900px 以下关闭模糊效果并折叠导航,避免部分 Android 设备滚动冻结
模板详细介绍
Portfolio-Starter 是一个免费、开源的静态 HTML 个人作品集模板,采用深色、动效优先的设计语言。它不依赖构建步骤、框架或 npm 依赖,直接打开 index.html 即可在浏览器中运行。模板包含首页单页滚动(Who、Thinking、AI Lab、Selected Work、Personal 等区块),以及文章、实验、密码门控案例研究等子页面。所有页面均为手写静态 HTML,样式与交互基于原生 CSS/JS。
模板内置了若干设计细节:桌面端悬浮液态玻璃导航(移动端折叠为汉堡菜单)、随滚动切换的分区强调色、标题与导航状态栏的滚动文字动画、进入视口时的淡入揭示(并遵循 prefers-reduced-motion)、滚动进度导航填充与 scroll-spy、文章内自动同步的目录侧栏,以及用于私密案例研究的客户端密码门控。演示文案为“Em-Dash Ipsum”占位文本,可整体替换。
使用限制方面:密码门控仅为客户端便利措施,不构成真实安全防护,不应放置真正机密内容;模板使用根绝对路径(如 /assets/favicon.svg),建议通过本地服务器而非 file:// 打开;字体来自 Google Fonts,可自行托管或移除;占位图片与简历 PDF 需替换为实际内容。
适合你的项目吗?
适用场景
- 个人作品集网站:展示精选作品、文章与实验项目
- 撰写带目录侧栏、引文与配图的文章或随笔页面
- 发布需要简单密码保护的案例研究或私密内容(非真正安全场景)
- 作为静态站点部署到 GitHub Pages、Cloudflare Pages、Netlify、Vercel 或自有服务器
- 作为学习原生 HTML/CSS/JS 动效与响应式布局的参考模板
适合人群
- 需要快速搭建个人作品集且不想引入构建工具或框架的开发者与设计师
- 偏好手写静态 HTML、希望完全控制页面结构与样式的用户
- 需要文章、实验、案例研究等多种页面格式的个人站点
- 希望将站点托管在任意静态托管服务上的用户
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
无需构建步骤,可直接打开 index.html,但建议用 python3 -m http.server 8000 等本地服务器运行,以便根绝对路径正确解析
- 2
替换所有 .html 文件中的 Your Name,并检查 index.html 中拆分为 Your<br>Name 的文字标识
- 3
将 assets/ 中的占位图片与 resume.pdf 替换为实际内容,并更新各 <img> 的 src、width、height 与 alt
- 4
搜索并替换 data-user="you"、data-domain="example.com"、your-handle、example.com、yoursite.com 等占位链接,同时更新 <head> 中的 JSON-LD
- 5
密码门控需在页面脚本中替换 HASH 常量为自定义密码的 SHA-256 值;演示密码为 demo,该门控不提供真实安全保护
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 密码门控仅为客户端便利措施,不构成真实安全防护,不应使用它保护真正机密的内容。
- 明确禁止将真正机密内容置于该密码门控之后,因为其不具备真实安全性。
- 建议通过本地服务器而非 file:// 直接打开,因为页面使用根绝对路径,file:// 下可能无法正确解析资源。
- 默认通过 Google Fonts 加载字体,属于外部服务依赖;可自行托管或移除。
- 占位图片为 AI 生成的示例素材,随 MIT 许可提供,但发布前应替换为自己的作品,不应作为正式作品集内容。
- resume.pdf 为占位文件,首页会链接到它,需替换为自己的简历。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
It is *not* real security; it's a "DM me for access" convenience that also keeps the page out of search results
README 原文
Don't gate anything genuinely confidential with it.
README 原文
Serving it (rather than `file://`) is recommended because the pages use root-absolute paths like `/assets/favicon.svg`.
README 原文
No React, no Tailwind, no CDN scripts (except Google Fonts, which you can self-host or remove).
README 原文
Placeholder images in `assets/aww/` are AI-generated cute animals, included under the MIT license with everything else. Swap them for your own work before you ship; they're scaffolding, not a portfolio.
README 原文
https://github.com/mullinsben/Portfolio-Starter/blob/main/LICENSEhttps://github.com/mullinsben/Portfolio-Starter/blob/main/README.mdresume.pdf # placeholder — swap for your own (homepage links to it)
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-04。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- HTML
- 网站类型
- 作品集 · 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-06-28
- 截图检查日期
- 2026-10-04
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 HTML。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-04
查看当时使用的来源资料
SHA-256: 746f5af27ad314b4fa39326c99186c16ab7a1d03e7f59200be726c6beef24413
2026-10-04T07:34:29.319Z
来源文件 / 仓库# Portfolio Starter
A free, open-source **portfolio template**: dark, motion-forward, and shamelessly in love with the em-dash (until you change it).

It's not another minimalist dev-blog starter; it's a full personal-site system: a single-page scroller for the homepage, plus real sub-pages for essays, experiments, and password-gated case studies. Every page is hand-written static HTML; no build step, no framework, no dependencies. Open `index.html` in a browser and it just works.
The demo copy is **Em-Dash Ipsum**: placeholder text written entirely in em-dashes and "it's-not-X—it's-Y" sentences. It's a joke you can read, and a working demo of the type system at the same time. Replace it with your own words and the jokes leave with it.
> Live demo persona: **"Your Name."** That's your cue; search for it and swap in yours.
---
## What's inside
```
portfolio-starter/
├── index.html # Home — single-page scroller (Who, Thinking, AI Lab, Selected Work, Personal)
├── 404.html
├── robots.txt · sitemap.xml · llms.txt # discovery files (edit the domain)
├── LICENSE # MIT
├── thinking/
│ ├── the-em-dash-manifesto.html # essay page format (TOC rail, pull-quotes, figures)
│ └── its-not-this-its-that.html
├── lab/
│ ├── em-dash-ipsum.html # a real, working placeholder-text generator
│ └── the-dashinator.html # "making-of" write-up format
├── work/
│ └── case-study.html # gated case study as a STAR scroll-snap slide deck
└── assets/
├── favicon.svg
├── resume.pdf # placeholder — swap for your own (homepage links to it)
└── aww/ # cute-animal placeholder images (swap for real art)
```
### The design language (the part worth stealing)
- **Floating liquid-glass navigation:** a borderless, blurred sidebar on desktop that collapses to a hamburger on mobile.
- **Per-section accent shifts:** the accent color (`--pop`) and background tint change as you scroll between sections, and cycle on the hero.
- **Animated word-rolls:** the rotating word in the headline and the status line in the nav.
- **Reveal-on-scroll:** content fades up as it enters the viewport (and respects `prefers-reduced-motion`).
- **Scroll-progress nav fills + scroll-spy:** nav items fill as you read; the active section is highlighted.
- **In-essay TOC rail** that auto-syncs to your `<section id>`s.
- **A client-side "velvet rope"** password gate for private case studies.
It's all vanilla HTML/CSS/JS. No React, no Tailwind, no CDN scripts (except Google Fonts, which you can self-host or remove).
---
## A look around
<table>
<tr>
<td width="50%"><img src="screenshots/ai-lab.jpg" alt="AI Lab section with experiment cards"><br><sub><b>AI Lab</b> — cards for tools and experiments; the accent color shifts per section.</sub></td>
<td width="50%"><img src="screenshots/em-dash-ipsum.jpg" alt="The Em-Dash Ipsum generator"><br><sub><b>A real working tool</b> — the Em-Dash Ipsum generator, built right into the lab.</sub></td>
</tr>
<tr>
<td width="50%"><img src="screenshots/essay.jpg" alt="An essay page with table-of-contents rail"><br><sub><b>Essay format</b> — full-bleed hero, an auto-syncing TOC rail, pull-quotes and figures.</sub></td>
<td width="50%"><img src="screenshots/case-study.jpg" alt="A gated case study slide deck"><br><sub><b>Gated case study</b> — a scroll-snap slide deck behind a client-side password (demo: <code>demo</code>).</sub></td>
</tr>
</table>
### Responsive down to the phone
<p>
<img src="screenshots/mobile-home.png" alt="Homepage on mobile" width="240">
<img src="screenshots/mobile-ipsum.png" alt="Generator on mobile" width="240">
<img src="screenshots/mobile-case.png" alt="Case study on mobile" width="240">
</p>
The desktop sidebar collapses to a hamburger, blur effects switch off under 900px (they can freeze scroll on some Android devices), and every layout reflows to a single column.
---
## Make it yours: the 5-minute version
1. **Your name.** Find-and-replace `Your Name` across all `.html` files. (Also check the wordmark in `index.html`: it's split as `Your<br>Name`.)
2. **Your words.** Replace the Em-Dash Ipsum copy. Every page is plain HTML; just type over it. Keep an em-dash or two out of respect.
3. **Your images.** Drop real art into `assets/` and update the `src` / `width` / `height` / `alt` on each `<img>`. Delete the `assets/aww/` placeholders when you don't need them. (Image-size cheatsheet below.)
4. **Your links.** Search for `data-user="you"` / `data-domain="example.com"` (email) and `your-handle` / `example.com` / `yoursite.com` / `your-other-thing.com` (socials + canonical URLs). Update the JSON-LD blocks in `<head>` too.
5. **Your analytics.** Each page has an `<!-- Analytics: drop your snippet here -->` marker in `<head>`. Paste GA4 / Plausible / Fathom / nothing.
### Image-size cheatsheet
| Slot | Used on | Aspect | Suggested px |
|---|---|---|---|
| Home hero | `index.html` | portrait, anchored right, full-bleed | ~1300×2300+ |
| Essay hero | `thinking/`, `lab/the-dashinator` | wide banner | ~2400×620 |
| Case-study cover | `work/case-study.html` | wide (sits faint behind the title slide) | ~2400×620 |
| Floated figure (`figure.tall`) | essays | portrait | ~600×1200 |
| In-body figure (`figure.media`) | essays | wide | ~1000×800 |
| Before/after pair | `work/case-study.html` | square-ish | ~1000×830 |
---
## The gated case study
`work/case-study.html` is locked behind a lightweight password gate. **The demo password is `demo`.**
It is *not* real security; it's a "DM me for access" convenience that also keeps the page out of search results (`<meta name="robots" content="noindex">`). Don't gate anything genuinely confidential with it.
**To set your own password**, compute the SHA-256 of your password and paste it into the `HASH` constant in the page's gate `<script>`:
```bash
printf 'yourpassword' | shasum -a 256
```
…or in a browser console:
```js
crypto.subtle.digest('SHA-256', new TextEncoder().encode('yourpassword'))
.then(b => console.log([...new Uint8Array(b)].map(x => x.toString(16).padStart(2,'0')).join('')))
```
Optional GA "gate funnel" events (`gate_view`, `gate_return`, `gate_unlock`, `gate_fail`) are already wired via the `gaGate()` helper; they no-op until you add an analytics tag.
---
## Run it locally
No build step. Either:
```bash
# just open the file
open index.html
# …or serve it (nicer; root-absolute /assets paths resolve correctly)
python3 -m http.server 8000
# then visit http://localhost:8000
```
Serving it (rather than `file://`) is recommended because the pages use root-absolute paths like `/assets/favicon.svg`.
## Deploy it
It's static files; host them anywhere: GitHub Pages, Cloudflare Pages, Netlify, Vercel, an S3 bucket, your own server. No configuration required. Point the host at the folder and you're live.
---
## Accessibility & performance notes
- Skip links, visible focus rings, `aria-current` on the active nav item, and `prefers-reduced-motion` support are all built in; keep them.
- **Mobile:** the CSS avoids `background-attachment:fixed` and disables `backdrop-filter` blur under 900px on purpose; both can freeze scrolling on some Android devices. Use `overflow-x:clip` (not `hidden`) on `html`/`body` for the same reason.
## Credits
- Built by [Benjamin Mullins](https://benjaminmullins.tv). If this template saved you some time, a thank-you or a link back means a lot (but is never required).
- Placeholder images in `assets/aww/` are AI-generated cute animals, included under the MIT license with everything else. Swap them for your own work before you ship; they're scaffolding, not a portfolio.
- Fonts: [Archivo](https://fonts.google.com/specimen/Archivo) + [Inter](https://fonts.google.com/specimen/Inter) via Google Fonts (Open Font License).
## License
[MIT](LICENSE). Use it, fork it, sell what you build with it. Credit is appreciated but never required.
Made with care (and a thank-you to [Benjamin Mullins](https://benjaminmullins.tv)). Built with Portfolio Starter. Now with 100% more em-dashes.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

simplefolio
⚡️ A minimal portfolio template for Developers
HTML · 作品集

Freelancer
Freelancer 是 Start Bootstrap 出品的单页作品集模板,专为自由职业者、设计师和小型工作室设计。 页面结构清晰,包含多个内容区块、响应式作品集网格,每个作品项目配有模态窗口展示详情。
HTML · 作品集

Resume
Resume 是 Start Bootstrap 推出的简历与 CV 主题,基于 Bootstrap 构建,采用固定侧边栏加内容区块的结构。
HTML · 作品集

Creative
Creative 是 Start Bootstrap 团队维护的一款单页营销模板,定位明确:为创意机构或产品服务提供一个以作品展示和行动号召为核心的落地页。
HTML · 企业官网

startbootstrap-simple-sidebar
An off canvas sidebar navigation Bootstrap HTML template created by Start Bootstrap
HTML · 启动器

adminkit
AdminKit is a free & open-source HTML dashboard & admin template based on Bootstrap 5
HTML · 后台
