VueVitePress作品集

vitepress-portfolio — Vue 作品集模板

作者 BootForm

基于 VitePress 与 Vue 的作品集模板,包含首页、案例研究网格和可用的联系表单,通过 GitHub Actions 自动部署。

看看你的网站会是什么样

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

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

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

全部页面与视图 3

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

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

值得关注的模板亮点

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

01

首页与 Work 页面的案例卡片由 docs/work/ 下的 Markdown 文件自动生成,增删文件无需修改其他代码

02

联系表单通过 BootForm 服务接收提交,无需自建后端,但需自行生成并认领表单 ID

03

内置八个示例案例研究,展示四列网格布局,首页只显示前四个

04

品牌色在 style.css 中集中定义,修改一个值即可影响按钮、链接和 VitePress 强调色

05

包含 GitHub Actions 工作流,推送到 main 分支后自动构建并部署到 GitHub Pages

06

使用 MIT 许可,允许免费使用、修改、商用和分发,需保留版权声明和许可声明

模板详细介绍

这是一个面向自由职业者或小型工作室的作品集站点模板,使用 VitePress 和 Vue 构建。它提供首页、案例研究页面以及一个可实际提交的联系表单。首页的“Selected work”卡片和 Work 页面的网格由 docs/work/ 下的 Markdown 文件自动生成,新增或删除案例文件时无需手动调整布局。模板附带八个示例案例研究,足以展示四列网格的完整宽度;每个案例的 frontmatter 定义标题、描述、图片、排序和可选外链,正文部分复用同一张图片作为顶部横幅。联系表单依赖 BootForm 服务:静态站点本身没有后端,表单通过一个随机 UUID 作为表单 ID 指向 BootForm,提交后需在 48 小时内认领该表单,否则提交内容会被删除。模板使用 MIT 许可,可免费用于商业项目,但演示图片来自 Unsplash(通过 Picsum Photos),需替换为自己的作品截图;域名、托管等外部服务可能产生费用。

VueVitePress作品集

适合你的项目吗?

适用场景

  • 自由职业者或小型工作室搭建展示案例作品的作品集站点
  • 需要静态站点但希望联系表单能实际接收消息的开发者
  • 使用 VitePress 并希望以非文档站默认方式构建作品集页面的项目
  • 通过 GitHub Pages 免费托管个人或团队作品集并自动部署

适合人群

  • 熟悉终端基本操作(git clone、npm install、npm run dev)的开发者
  • 已安装 Node.js 20 或更高版本并拥有 GitHub 账号的用户
  • 愿意使用 BootForm 作为表单后端并自行生成、认领表单 ID 的开发者
  • 需要 MIT 许可下可商用作品集模板的自由职业者或小团队

上手与定制指南

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

  1. 1

    克隆仓库后运行 npm install 和 npm run dev 启动本地开发服务器

  2. 2

    将 docs/.vitepress/config.mts 中的 base 改为实际仓库名,否则部署后样式会丢失

  3. 3

    替换 docs/public/logo.svg 以及 docs/.vitepress/theme/style.css 中的品牌色

  4. 4

    在 docs/contact.md 中生成并填入自己的 BootForm 表单 ID,并在上线前认领该表单

  5. 5

    部署时在 GitHub 仓库的 Settings → Pages → Source 中选择 GitHub Actions

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

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

使用时需要遵守

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

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 联系表单依赖第三方服务 BootForm 接收提交,静态站点本身无后端,需将表单指向该服务。
  • 必须自行生成全新的随机表单 ID,不能使用示例或他人的 ID,否则提交内容会发送给他人。
  • 表单需在站点公开上线前通过认领链接认领,未认领的提交内容仅保留 48 小时后删除。
  • 模板附带的演示图片来自 Unsplash/Picsum,仅作占位,上线前必须替换为自己的作品截图。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

We will use [BootForm](https://bootform.com), because you can point a form at it and it works immediately, with no account.

README 原文

**Use your own.** Do not use the one printed above, and do not use a friend's. Whoever claims a > form ID first owns it, and everything sent to it goes to them. Yours should be a fresh random one > that nobody else has seen.

README 原文

**3c. Try it, then claim it** at the claim link it gives you, **before** the site goes live publicly. Held submissions are kept for 48 hours before they're deleted.

README 原文

The images that ship with this template are real photos, not mockups: free-to-use ([Unsplash License](https://unsplash.com/license), via [Picsum Photos](https://picsum.photos)), so the demo looks like a real site, but they're standing in for actual screenshots of your own work. Replace them before this goes live.

README 原文
https://github.com/BootForm/vitepress-portfolio/blob/main/LICENSEhttps://github.com/BootForm/vitepress-portfolio/blob/main/README.md

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

项目核对记录与介绍依据

模板资料

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

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

这个项目需要核对什么

记录的仓库更新时间
2026-10-11
截图检查日期
2026-10-12

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

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

查看具体选型方法 →

介绍的制作与核对状态

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

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

查看当时使用的来源资料

SHA-256: 29ae8ab5ae07fcc33c8d6a1eec72324c4e509e19ae5ccef1c0ad313b75989a39

2026-10-12T18:57:30.726Z

来源文件 / 仓库
# A portfolio site for VitePress

A portfolio without a working contact form is just a gallery. This template is
[vitepress-marketing](https://github.com/BootForm/vitepress-marketing)'s sibling, built for a
freelancer or small studio: a home page, real case studies, and a form that actually reaches you.

By the end you will have a home page, eight example case studies in a generated grid, and a
working contact form, built with [VitePress](https://vitepress.dev) and deployed automatically by
GitHub Actions.

**[See what you are building →](https://bootform.github.io/vitepress-portfolio/)**

---

## Before you start

You need:

- A free GitHub account.
- [Node.js](https://nodejs.org) 20 or later installed on your computer.
- Some comfort with a terminal. `git clone`, `npm install`, `npm run dev`, that level.

Don't have some of this yet, or not sure how? [Setting up your
computer](https://bootform.com/docs/computer-setup) walks through installing Git and Node.js, a
basic terminal tutorial, and installing and using VS Code, from scratch.

If any of that sounds like too much right now, [first-website](https://github.com/BootForm/first-website)
needs none of it and still ends with a real site and a working form.

---

## Step 1: Make your own copy

Click **Use this template**, then **Create a new repository**. Name it `vitepress-portfolio`, or
whatever you like.

> **Naming it something other than `vitepress-portfolio`?** Open `docs/.vitepress/config.mts` and
> change `base: '/vitepress-portfolio/'` (and the favicon path under `head`, in the same file) to match (`/your-repo-name/`). Get this wrong and the
> deployed site looks completely unstyled, while `npm run dev` still works fine locally, since the
> dev server never uses `base`.

Then clone *your* new repository to your computer:

```bash
git clone https://github.com/yourname/vitepress-portfolio.git
cd vitepress-portfolio
npm install
npm run dev
```

Open the address it prints. That's your site, running on your own computer. It still says Maya
Torres. We'll fix that next.

---

## Step 2: Make it yours

Look for the lines marked `CHANGE ME`, across a few files:

- **`docs/.vitepress/config.mts`**: your name, site description, and the nav links.
- **`docs/public/logo.svg`**: your logo. Replace the file itself (any image format works, keep the
  filename `logo.svg` or update the two places that reference it, listed in `AGENTS.md`) and it
  updates in both the header and the footer.
- **`docs/.vitepress/theme/style.css`**: your brand colour. One value, used everywhere: buttons,
  links, VitePress's own accent colour.
- **`docs/index.md`**: the home page. The `hero` and `features` blocks are plain YAML frontmatter.
  The "Selected work" cards below them, and the Work page's own grid, are both generated: neither
  needs editing when you add or remove a case study.
- **`docs/work/*.md`**: eight example case studies, enough to see the grid at its full 4-column
  width. Each one's frontmatter (`title`, `description`, `image`, `order`, and an optional `link` to
  a live site) is what shows up on its card, and `order` sets where it sits in the grid (the home
  page shows the first 4); the markdown below that is the page itself, with the same
  `image` reused as a hero banner at the top. The images that ship with this template are real
  photos, not mockups: free-to-use ([Unsplash License](https://unsplash.com/license), via
  [Picsum Photos](https://picsum.photos)), so the demo looks like a real site, but they're
  standing in for actual screenshots of your own work. Replace them before this goes live. Delete
  the ones you don't need; the grid and column count adjust automatically.
- **`docs/contact.md`**: the hero heading, and the location, phone and email in the left-hand
  info column (or delete any of those three blocks you don't want to list).

**Adding a new case study:** copy one of the example files, change its frontmatter and body, and
you're done. It appears as a card on both the home page and the Work page automatically, with
no other file to touch. Deleting a case study file removes its card the same way.

> **Picking a colour is the hard part.** If you have no idea, `--color-brand-500: #2563eb` (a
> plain blue) is a safe default.

---

## Step 3: Make the contact form actually work

Here is the bit most tutorials skip.

A static site has no program running behind it, so there is nowhere for a form to send anything.
We will use [BootForm](https://bootform.com), because you can point a form at it and it works
immediately, with no account.

**3a. Generate your form ID.**

It is just a random UUID, and it has to be yours alone. Open BootForm's own [UUID
generator](https://bootform.com/uuidgenerator) and copy what it shows you (or run
`crypto.randomUUID()` in any browser console). You'll get something like
`11111111-1111-4111-8111-111111111111`, though a real one won't repeat digits like that.

> **Use your own.** Do not use the one printed above, and do not use a friend's. Whoever claims a
> form ID first owns it, and everything sent to it goes to them. Yours should be a fresh random one
> that nobody else has seen.

**3b. Paste it into `docs/contact.md`**, replacing `__YOUR_FORM_ID__` in the `action` attribute.

**3c. Try it, then claim it** at the claim link it gives you, **before** the site goes live
publicly. Held submissions are kept for 48 hours before they're deleted.

---

## Step 4: Deploy it

```bash
git add -A
git commit -m "Make it mine"
git push
```

In your repository, **Settings → Pages → Source → GitHub Actions** (not "deploy from a branch").
The included workflow (`.github/workflows/deploy.yml`) builds and deploys on every push to `main`.

**Optional: a real domain.** The same steps as
[one-page-site's Step 5](https://github.com/BootForm/one-page-site#step-5-put-it-on-your-own-domain)
apply here: a `CNAME` file in `docs/public/`, DNS records at your registrar, then **Enforce HTTPS**
in the same Pages settings. Also change `base: '/vitepress-portfolio/'` to `base: '/'` in
`docs/.vitepress/config.mts`, since a custom domain serves from the root, not a subpath.

---

## That's it

You have a real portfolio, with case studies and a working contact form, built the way VitePress
is meant to be used for this, not the docs-site defaults.

### Where to go next

- [`site-skills`](https://github.com/BootForm/site-skills) if you use Claude Code: commands to add
  page sections, add a new kind of content (books, team members, events), change the theme and
  swap icons, all following this template's conventions.
- [`site-sections`](https://bootform.github.io/site-sections/) for copy-paste page sections (heroes,
  pricing, FAQs, footers) that survive VitePress's own styles.
| | |
|---|---|
| **A blog** | [vitepress-blog](https://github.com/BootForm/vitepress-blog) if you want to write about your work too, with real post tags and RSS. |
| **A fuller marketing site** | [vitepress-marketing](https://github.com/BootForm/vitepress-marketing) if you need a pricing page and more sections than a portfolio calls for. |
| **More form options** | File uploads, autoresponders, Discord and Slack: [bootform.com/docs](https://bootform.com/docs/). |

### Stuck?

Open an [issue](https://github.com/BootForm/vitepress-portfolio/issues) and say what happened.

---

## Frequently hit problems

**`npm run build` fails.** Check `node --version`; this needs Node.js 20 or later.

**The site deploys but looks completely unstyled.** `base` in `docs/.vitepress/config.mts` almost
certainly doesn't match your actual repo name. See the note in Step 1.

**A new case study doesn't show up as a card.** Check its frontmatter has `title`, `description`
and `image` set, and that the file lives directly in `docs/work/` (not a subfolder), matching
`work/work.data.ts`'s `work/*.md` pattern.

**A card's image is broken, or a card links nowhere.** These are both built from runtime data
(`ProductCard.vue`'s props), not markdown text, so if you're editing that component directly
rather than just adding a case study file, see `AGENTS.md`'s link-handling section: both `:src`
and `:href` need `withBase(...)`, not a plain string.

**The form shows raw text instead of a nice page.** You are seeing the response as JSON. That is
normal for now. Once you claim the form you can set a redirect so people land back on your site.

## Licence

MIT. Do whatever you like with it, including using it for a real business.
反馈内容错误

看看同类模板

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