终端/CRT 视觉主题,霓虹荧光配色与发光阴影
portfolio-web-template — Next.js 作品集模板
作者 wrujel
基于 Next.js App Router 的终端风格个人作品集网站模板,含六个页面与多种动画效果。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
GSAP 点阵背景随光标接近产生惯性冲击波
CSS 关键帧实现扫描线、闪烁、光标闪烁与跑马灯效果
Framer Motion 页面过渡与滚动揭示动画,打字机首屏标题
六个 App Router 页面:首页、关于、服务、项目、客户、联系
项目悬停卡片、Swiper 评价轮播、React CountUp 统计计数器与联系表单
模板详细介绍
这是一个终端/CRT 视觉主题的个人作品集网站模板,使用 Next.js App Router 构建,包含首页、关于、服务、项目、客户和联系六个页面。视觉上采用霓虹荧光配色与发光阴影,配有 GSAP 驱动的点阵背景(随光标接近产生惯性冲击波)、CSS 关键帧实现的扫描线、闪烁与跑马灯效果,以及打字机式首屏标题和 Framer Motion 页面过渡与滚动揭示动画。
页面内容方面:项目页提供可展开的悬停卡片,移动端支持滚动驱动的卡片选择;服务页为响应式网格并带逐卡错落动画;客户页使用 Swiper 轮播展示评价,含分页与导航;关于页为标签式分区,覆盖技能、经历、教育与奖项;另有 React CountUp 驱动的统计计数器和包含姓名、邮箱、留言字段的联系表单。导航为固定侧边栏,带 `$ cd` 命令提示与当前路由高亮。
README 未说明表单提交的后端处理方式、数据来源或内容管理机制,也未提供可访问性、浏览器兼容性或性能方面的说明。仓库以 MIT 许可证发布,README 欢迎通过 issue 或 pull request 参与贡献。
适合你的项目吗?
适用场景
- 搭建个人开发者或设计师的作品集网站
- 作为学习 Next.js App Router 多页面结构的参考项目
- 演示 GSAP、Framer Motion、Swiper 等动画与交互库的组合使用
- 需要终端/CRT 复古视觉风格的展示型站点
适合人群
- 熟悉 Next.js 与 React 并希望快速起步作品集的前端开发者
- 需要多页面作品集结构(项目、服务、客户评价、关于、联系)的个人
- 希望参考动画与交互实现方式的学习者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 20.9+ 与 npm
- 2
克隆仓库后执行 npm install,使用 npm run dev 在 http://localhost:3000 本地运行
- 3
构建使用 npm run build,随后用 npm run start 提供生产构建
- 4
代码检查使用 npm run lint
- 5
README 说明基础使用不需要任何环境变量
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
https://github.com/wrujel/portfolio-web-template/blob/master/LICENSEhttps://github.com/wrujel/portfolio-web-template/blob/master/README.mdPermission is hereby granted, free of charge
许可证原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-13。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Next.js · React
- 网站类型
- 作品集
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-05
- 截图检查日期
- 2026-10-13
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15
查看当时使用的来源资料
SHA-256: b024813a2dae844bc4a572be4b08f812df72cce16c8bec588c2978f061d1be71
2026-10-13T23:11:38.450Z
来源文件 / 仓库<div align='center'>
[![demo][demo]][demo-link]
[![status][status]][status-link]
[![deploy][deploy]][deploy-link]
[![test][tests]][tests-link]
</div>
<div align='center'>
<a href='/'>
<img
src='screenshot.webp'
alt='Terminal-themed portfolio with a green dot-grid background, a zsh window reading Imagine it, then code it, and an avatar marked Status: Online.'
width='100%'
/>
</a>
</div>
<div align='center'>
<h1>Portfolio Web with Next.js</h1>
</div>
<div align='center'>
[![Next.js][nextjs]][nextjs-link]
[![TypeScript][typescript]][typescript-link]
[![Tailwind CSS][tailwindcss]][tailwindcss-link]
[![React][react]][react-link]
[![Framer Motion][framer-motion]][framer-motion-link]
[![GSAP][gsap]][gsap-link]
[![Swiper][swiper]][swiper-link]
[![React CountUp][react-countup]][react-countup-link]
[![React Icons][react-icons]][react-icons-link]
[![Vercel][vercel]][vercel-link]
</div>
<div align='center'>
A terminal-themed portfolio website built with Next.js 16, React 19, TypeScript and Tailwind CSS. A GSAP dot-grid background reacts to cursor proximity with inertia-driven shockwaves behind CRT scanline, flicker and marquee effects, a typewriter hero and Framer Motion page transitions. Six App Router pages cover projects with expandable hover cards, a staggered services grid, a Swiper testimonials carousel, animated stat counters and a contact form.
[Demo][demo-link] · [Report issue](/issues) · [Suggest something](/issues)
</div>
## Table of Contents
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Running locally](#running-locally)
- [Build](#build)
- [Linting](#linting)
- [Environment Variables](#environment-variables)
- [Project Structure](#project-structure)
- [Demo](#demo)
- [Contributing](#contributing)
- [License](#license)
## Features
- [x] Terminal/CRT visual theme with a neon phosphor palette and glow shadows
- [x] Interactive GSAP dot grid background that reacts to cursor proximity with inertia-driven shockwaves
- [x] CSS keyframe effects for scanline, flicker, blink, and marquee animations
- [x] Smooth page transitions and scroll-reveal animations with Framer Motion
- [x] Typewriter hero headline with a looping marquee word strip
- [x] Multi-page App Router navigation (home, about, services, projects, customers, contacts)
- [x] Fixed side rail navigation with `$ cd` command tooltips and active-route highlighting
- [x] Project gallery with expandable hover cards and scroll-driven card selection on mobile
- [x] Responsive services grid with staggered per-card animations
- [x] Customer testimonials carousel powered by Swiper with pagination and navigation
- [x] Animated stat counters (experience, customers, projects, awards) with React CountUp
- [x] Tabbed about section covering skills, experience, education, and awards
- [x] Contact form with name, email, and message fields
- [x] Monospace typography with JetBrains Mono and VT323 loaded through `next/font`
- [x] Responsive design with Tailwind CSS, deployed on Vercel
## Tech Stack
- [Next.js 16](https://nextjs.org/)
- [React 19](https://react.dev/)
- [TypeScript](https://www.typescriptlang.org/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Framer Motion](https://motion.dev/)
- [GSAP](https://gsap.com/)
- [Swiper](https://swiperjs.com/)
- [React CountUp](https://www.npmjs.com/package/react-countup)
- [React Icons](https://react-icons.github.io/react-icons/)
- [Vercel](https://vercel.com/)
## Getting Started
### Prerequisites
- Node.js 20.9+
- npm
### Installation
```bash
git clone https://github.com/wrujel/portfolio-web-template.git
cd portfolio-web-template
npm install
```
### Running locally
```bash
npm run dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
### Build
```bash
npm run build
```
Then serve the production build with:
```bash
npm run start
```
### Linting
```bash
npm run lint
```
## Environment Variables
This project does not require any environment variables for basic usage.
## Project Structure
```
/
├── public/
│ ├── assets/
│ │ ├── avatar.png
│ │ ├── about.png
│ │ ├── avatar_with_tablet.png
│ │ ├── project-1.png ... project-5.png
│ │ └── review-1.jpg ... review-5.jpg
│ ├── next.svg
│ ├── screenshot.png
│ └── vercel.svg
├── src/
│ ├── app/
│ │ ├── layout.tsx
│ │ ├── page.tsx
│ │ ├── globals.css
│ │ ├── favicon.ico
│ │ ├── about/
│ │ ├── contacts/
│ │ ├── customers/
│ │ ├── projects/
│ │ └── services/
│ ├── components/
│ │ ├── About/
│ │ ├── Avatar/
│ │ ├── Contact/
│ │ ├── Cover/
│ │ ├── Customers/
│ │ ├── Header/
│ │ ├── ImageContainer/
│ │ ├── Introduction/
│ │ ├── Navbar/
│ │ ├── Projects/
│ │ ├── Services/
│ │ ├── Transition/
│ │ └── ui/
│ │ └── DotGrid.tsx
│ └── utils/
│ └── motionTransition.ts
├── eslint.config.mjs
├── next.config.js
├── postcss.config.js
├── tailwind.config.ts
├── tsconfig.json
└── package.json
```
## Demo
You can check out the demo:
[![Demo][demo]][demo-link]
## Contributing
Contributions are welcome! If you have suggestions or find bugs, please open an issue or submit a pull request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the [MIT License](LICENSE).
---
<!-- Badges -->
[nextjs]: https://img.shields.io/badge/Next.js-black?style=for-the-badge&logo=next.js
[typescript]: https://img.shields.io/badge/Typescript-007ACC?style=for-the-badge&logo=typescript&logoColor=white&color=blue
[tailwindcss]: https://img.shields.io/badge/Tailwind%20CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white
[react]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[framer-motion]: https://img.shields.io/badge/Framer%20Motion-2A2A2A?style=for-the-badge&logo=npm&logoColor=white
[gsap]: https://img.shields.io/badge/GSAP-88CE02?style=for-the-badge&logo=greensock&logoColor=white
[swiper]: https://img.shields.io/badge/Swiper-6332D2?style=for-the-badge&logo=swiper&logoColor=white
[react-countup]: https://img.shields.io/badge/React%20Countup-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[react-icons]: https://img.shields.io/badge/React--Icons-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[vercel]: https://img.shields.io/badge/Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white
<!-- Badge links -->
[nextjs-link]: https://nextjs.org/
[typescript-link]: https://www.typescriptlang.org/
[tailwindcss-link]: https://tailwindcss.com/
[react-link]: https://react.dev/
[framer-motion-link]: https://motion.dev/
[gsap-link]: https://gsap.com/
[swiper-link]: https://swiperjs.com/
[react-countup-link]: https://www.npmjs.com/package/react-countup
[react-icons-link]: https://react-icons.github.io/react-icons/
[vercel-link]: https://vercel.com/
<!-- Status badges -->
[demo]: https://img.shields.io/badge/🚀%20Live%20Demo-black?style=for-the-badge
[demo-link]: https://portfolio-web-eight-tau.vercel.app
[status]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwrujel%2Fmonitor-repos%2Fmain%2Fdata%2Fportfolio-web-template.json&style=for-the-badge
[status-link]: https://github.com/wrujel/monitor-repos
[deploy]: https://img.shields.io/github/deployments/wrujel/portfolio-web-template/production?style=for-the-badge&label=Deploy
[deploy-link]: https://github.com/wrujel/portfolio-web-template/deployments
[tests]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwrujel%2Fmonitor-tests%2Fmain%2Fdata%2Fportfolio-web-template.json&style=for-the-badge
[tests-link]: https://github.com/wrujel/monitor-tests
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

react-resume-template
A personal resume website template built with React.js, Typescript, Next.js, and styled with Tailwind css
Next.js · 作品集

nxt-lnk
Custom bio links for creatives who love coding. A perfect custom alternative for linktree, bio and other short…
Next.js · 作品集

sylph
A minimal portfolio template.
Next.js · 作品集

sleek-portfolio
sleek-portfolio 是一个面向开发者个人品牌展示的现代作品集模板,基于 Next.js 15、TypeScript、Tailwind CSS 和 Shadcn UI 构建。
Next.js · 作品集

research-website-template
React + Next.js template for research websites (for PhD students, researchers, etc)
Next.js · 作品集

shadcn-portfolio
shadcn-portfolio 是一个面向开发者的作品集模板,技术栈为 Next.js 15、shadcn/ui、Tailwind CSS 和 Framer Motion。
Next.js · 作品集
