终端风格视觉:绿色荧光配色、ASCII 艺术首屏、打字机文字与扫描线效果
portfolio-website — React 作品集模板
作者 rugbedbugg
终端风格的 React + TypeScript 个人作品集,使用 Tailwind CSS 与 shadcn/ui,包含 ASCII 艺术首屏、档案面板、传输日志、世界地图追踪和 IEEE 论文展示等交互组件。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
交互组件:可折叠档案面板、带时间戳的传输日志、交互式世界地图
研究论文展示区,支持 IEEE 论文与 DOI 链接
Three.js 环境背景与音频可视化,配合 postprocessing 实现泛光与噪点效果
基于 shadcn/ui 与 Tailwind CSS 的组件体系,包含 40 多个 UI 基础组件
使用 Vitest 与 Testing Library 进行组件与工具函数测试
模板详细介绍
这是一个终端主题的个人作品集网站,采用 React、TypeScript 与 Vite 构建,样式基于 Tailwind CSS 和 shadcn/ui,动画使用 Framer Motion,环境背景效果由 Three.js 与 postprocessing 实现。页面为纯客户端渲染的单页应用,使用 React Router 管理路由,无 SSR。
视觉上采用绿色荧光配色、打字机文字、ASCII 艺术和扫描线效果,仅提供深色模式。主要交互组件包括:可折叠的档案面板(展示技能、链接与联系方式)、带时间戳的传输日志(活动流)、交互式世界地图(Canvas/SVG 绘制)、以及带 DOI 链接的 IEEE 论文展示区。另有“Now Playing”音频可视化模块,依赖 Three.js 与 postprocessing。
项目结构清晰,src/components 下包含 40 多个 shadcn/ui 基础组件和若干功能组件,src/hooks 与 src/lib 分别存放自定义 Hook 和工具逻辑,src/pages 包含主页与 404 页面。测试使用 Vitest 与 Testing Library,运行在 jsdom 环境。构建产物输出到 dist/,可部署到 Cloudflare Pages;public/_headers 与 public/_redirects 会在构建时复制到 dist/,在 Cloudflare 上原生生效。字体 DepartureMono 自托管于 public/fonts/,音频与项目缩略图分别放在 public/assets/ 和 public/dispatches/。
限制方面:项目为纯 SPA,所有渲染在客户端完成,不包含服务端渲染;仅支持深色模式,这是有意的设计选择;演示图片、字体、图标等第三方素材的许可需单独核对,代码本身采用 MIT 许可。
适合你的项目吗?
适用场景
- 搭建个人开发者作品集网站,展示项目、技能与联系方式
- 需要终端或复古科技风格界面的个人主页
- 展示学术论文与 DOI 链接的研究人员个人页面
- 作为 React + TypeScript + Tailwind CSS 项目结构的学习参考
适合人群
- 熟悉 React 与 TypeScript 的前端开发者
- 希望快速搭建终端风格个人作品集的开发者
- 需要展示论文与项目活动流的个人用户
- 计划部署到 Cloudflare Pages 的静态站点项目
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 18 及以上版本,npm 9 及以上(或 pnpm/yarn)
- 2
执行 npm install 安装依赖,npm run dev 启动开发服务器(默认 http://localhost:5173)
- 3
npm run build 生成生产构建到 dist/,npm run preview 本地预览
- 4
npm run lint 运行 ESLint,npm run test 运行 Vitest 测试
- 5
部署到 Cloudflare Pages 时,public/_headers 与 public/_redirects 会随构建复制到 dist/ 并生效
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
https://github.com/rugbedbugg/portfolio-website/blob/main/LICENSEhttps://github.com/rugbedbugg/portfolio-website/blob/main/README.mdPermission is hereby granted, free of charge
许可证原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 87 / 100
- 技术栈
- React
- 网站类型
- 作品集
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-08-25
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 React。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: c7d1fbdcda3db48f8e5ee7366901bf2a2a3e4eaa10990ea80db9456049e3d864
2026-10-02T22:03:32.781Z
来源文件 / 仓库# Portfolio Website    Personal portfolio site - terminal-themed, React + TypeScript + Vite. Features an ASCII-art hero, animated background, dossier panel, transmission log, and research publications section. Built with shadcn/ui, Tailwind CSS, Framer Motion, and Three.js for ambient effects. ## Status **Active** ## Features | Feature | Description | |---------|-------------| | Terminal aesthetic | Green-phosphor palette, typewriter text, ASCII art, scanline effects | | Interactive components | Dossier panel (profile), Transmission log (activity feed), Global trace (world map) | | Research publications | IEEE paper showcase with DOI links | | Now Playing | Audio visualization with Three.js/postprocessing | | Responsive | Mobile-first, handles narrow viewports gracefully | | Dark mode only | Intentional design choice | ## Tech Stack | Component | Version | Purpose | |-----------|---------|---------| | React | 18 | UI framework | | TypeScript | 5.8 | Strict mode | | Vite | 5 | Fast dev server, optimized builds | | Tailwind CSS | 3.4 | Utility-first styling | | shadcn/ui | Radix UI primitives | Component library | | Framer Motion | 12 | Animations, transitions | | Three.js | 0.183 + postprocessing | WebGL ambient background | | React Router | 6 | Client-side routing | | TanStack Query | 5 | Server state (if needed) | | Zod | 3 | Schema validation | | Vitest | 3 + Testing Library | Unit/component tests | | ESLint | 9 + TypeScript ESLint | Linting | ## Architecture ### Project Structure ``` portfolio-website/ ├── public/ # Static assets (served at root) │ ├── assets/ # Audio files (mp3) │ ├── dispatches/ # Project thumbnails (png) │ ├── fonts/ # DepartureMono woff2 │ ├── _headers # Cloudflare headers (security, caching) │ ├── _redirects # Cloudflare redirects │ └── robots.txt ├── src/ │ ├── components/ │ │ ├── demos/ # Demo-specific components │ │ ├── ui/ # shadcn/ui components (40+) │ │ ├── AmbientBackground.tsx # Three.js animated backdrop │ │ ├── AsciiArt.tsx # Hero ASCII art │ │ ├── DossierPanel.tsx # Profile sidebar │ │ ├── GlobalTrace.tsx # World map visualization │ │ ├── Terminal.tsx # Terminal-style container │ │ ├── Transmission.tsx # Activity feed log │ │ └── TypewriterText.tsx # Character-by-character typing │ ├── hooks/ │ │ ├── use-mobile.tsx # Mobile breakpoint hook │ │ ├── use-subject-layout.tsx # Layout coordination │ │ └── use-toast.ts # Toast notifications │ ├── lib/ │ │ ├── relays.ts # Event relay system │ │ ├── trace.ts # Trace logging │ │ ├── useRelay.ts # Relay hook │ │ ├── utils.ts # ClassName merge, etc. │ │ ├── viewer.ts # Media viewer logic │ │ └── worldMap.ts # Map data + rendering │ ├── pages/ │ │ ├── Index.tsx # Main portfolio page │ │ └── NotFound.tsx # 404 page │ ├── test/ # Vitest setup + example tests │ ├── App.tsx # Root component │ ├── main.tsx # Entry point │ └── index.css # Tailwind imports + globals ├── scripts/ │ └── gen-worldmap.mjs # Generates world map data ├── index.html ├── package.json ├── vite.config.ts ├── tailwind.config.ts ├── tsconfig.json / .app.json / .node.json ├── eslint.config.js ├── postcss.config.js ├── vitest.config.ts └── README.md ``` ### Key Components | Component | Purpose | |-----------|---------| | `AmbientBackground` | Three.js scene with postprocessing (bloom, noise) | | `AsciiArt` | Hero banner: "OXIDE 1-6" in green phosphor | | `DossierPanel` | Collapsible profile: skills, links, contact | | `Transmission` | Timestamped log entries (GitHub, research, etc.) | | `GlobalTrace` | Interactive world map (Canvas/SVG) | | `Terminal` | Styled container with scanlines, cursor blink | | `TypewriterText` | Configurable typing animation | ## Install / Run ### Prerequisites | Requirement | Details | |-------------|---------| | Node.js | ≥ 18 (LTS recommended) | | npm | ≥ 9 (or pnpm/yarn) | ### Development ```bash npm install npm run dev # Opens http://localhost:5173 ``` ### Build | Script | Command | Description | |--------|---------|-------------| | `build` | `vite build` | Production build → dist/ | | `build:dev` | `vite build --mode development` | Dev-mode build | | `preview` | `vite preview` | Preview production build locally | ### Lint & Test | Script | Command | Description | |--------|---------|-------------| | `lint` | `eslint .` | Lint all source | | `test` | `vitest run` | Run tests once (headless) | | `test:watch` | `vitest` | Watch mode | ### Development Server | Script | Command | Description | |--------|---------|-------------| | `dev` | `vite` | Start dev server | ## Deployment Deployed on **Cloudflare Pages** (`partha-pg.pages.dev`). The `public/_headers` and `public/_redirects` files are copied to `dist/` on build and work natively on Cloudflare. ```bash npm run build # Deploy dist/ to Cloudflare Pages (connect repo in dashboard, or use Wrangler) ``` Headers include: `X-Frame-Options: DENY`, `X-Content-Type-Options: nosniff`, `Referrer-Policy: strict-origin-when-cross-origin`, CSP-ready. > `wrangler pages deploy dist/` also works for CLI deployments. ## Configuration ### Tailwind (`tailwind.config.ts`) | Setting | Value | |---------|-------| | Custom colors | `phosphor` palette (green terminal theme) | | Font | `DepartureMono` (woff2, self-hosted) | | Animations | `scanline`, `typewriter`, `pulse-glow` | ### TypeScript | Config | Purpose | |--------|---------| | `tsconfig.json` | Base config | | `tsconfig.app.json` | App code (strict) | | `tsconfig.node.json` | Vite/config files | ### ESLint (`eslint.config.js`) | Plugin | Purpose | |--------|---------| | TypeScript ESLint | Recommended rules | | React Hooks | Hooks linting | | Import sorting | Optional | ## Project Structure (Simplified) ``` src/ ├── components/ # React components │ ├── ui/ # 40+ shadcn/ui primitives │ └── *.tsx # Feature components ├── hooks/ # Custom React hooks ├── lib/ # Utilities, shared logic ├── pages/ # Route pages ├── test/ # Test setup ├── App.tsx # Root ├── main.tsx # Entry └── index.css # Tailwind + globals ``` ## Testing ```bash npm run test ``` Covers: component rendering (Testing Library), utility functions, hook behavior. Uses `jsdom` environment. ## Notes / Gotchas | Note | Details | |------|---------| | Font | `DepartureMono-Regular.woff2` self-hosted in `public/fonts/` - no external font requests | | Audio | MP3 files in `public/assets/` - loaded on demand for "Now Playing" | | Images | Project thumbnails in `public/dispatches/` - referenced by name | | Headers/Redirects | `_headers` and `_redirects` auto-copied to `dist/` on build | | Rendering | No SSR - pure SPA, all rendering client-side | ## License MIT, see [LICENSE](LICENSE). ## Links - **Repo:** https://github.com/rugbedbugg/portfolio-website - **Live:** https://partha-pg.pages.dev - **Issues:** https://github.com/rugbedbugg/portfolio-website/issues
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

react-portfolio-template
React powered portfolio website template for developers
React · 作品集

personal-website-react
personal-website-react 是一个面向开发者的个人作品集单页模板,由 React 和 Material-UI 构建,并通过 Create React App 初始化。
React · 作品集

karngyan.com
karngyan.com 是一个面向开发者的个人网站与博客模板,作者用它搭建了自己的站点,并公开了完整代码。 模板的核心定位很明确:让写作者专注于内容,而不是花时间搭建基础设施。
React · 作品集

react-portfolio-template
react-portfolio-template 是一个由 Ryan Balieiro 开发的 React 作品集模板,定位为“sleek, futuristic”,适合开发者展示个人履历。
React · 作品集

portfolio
Personal website, Data scientist portfolio template
React · 作品集

react-portfolio
react-portfolio 是一个面向开发者的个人作品集模板,基于 React 16 和 Create React App 构建,界面样式采用 Material-UI。
React · 作品集
