明暗主题切换,偏好持久保存并带平滑颜色过渡
personal-portfolio — Next.js 作品集模板
作者 CohenReiland
基于 Next.js 与 React 的个人作品集网站模板,包含明暗主题切换、Strava 跑步数据接入、动画组件与响应式布局,采用 MIT 许可。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
通过 Strava API 获取跑步统计,数据每小时刷新
自定义动画组件,包括智能手表展示与跑步统计面板
响应式布局,适配移动端与桌面端浏览
项目展示区支持在线链接、截图与技术标签
联系区提供邮箱复制到剪贴板、GitHub 与 LinkedIn 链接
模板详细介绍
这是一个使用 Next.js、React 和 TypeScript 构建的个人作品集网站模板,代码以 MIT 许可开源。页面按 Hero、About、Skills、Projects、Contact 等区块组织,导航支持平滑滚动。主题方面提供明暗模式切换,用户偏好会在会话之间保留。About 区块通过 Strava API 展示跑步统计数据,并说明数据每小时刷新一次。界面包含自定义动画组件,例如智能手表展示、跑步统计面板和渐变区块过渡。项目展示区用于列出精选项目,可附在线链接、截图与技术标签;联系区提供邮箱复制到剪贴板以及 GitHub、LinkedIn 链接。模板要求 Node.js 20.9.0 或更高版本,Strava 凭据为可选配置,未配置时跑步统计功能不可用。演示站点部署在 Vercel。仓库未声明除 MIT 代码许可之外的其他素材授权情况,演示图片、字体、图标等第三方资源需自行核对各自许可。
适合你的项目吗?
适用场景
- 搭建个人作品集网站,集中展示项目与联系方式
- 在个人主页中接入 Strava 跑步数据,呈现运动统计
- 作为 Next.js 与 React 的练习项目,参考动画组件与主题切换实现
- 部署到 Vercel 等平台,作为可公开访问的个人站点
适合人群
- 需要个人作品集网站模板的开发者或学生
- 希望展示跑步等运动数据并已使用 Strava 的用户
- 熟悉 Next.js、React 与 TypeScript,能自行修改内容与样式的人
- 接受 MIT 许可条款并会自行核对第三方素材授权的使用者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 20.9.0 或更高版本,以及 npm、yarn、pnpm 或 bun 之一
- 2
克隆仓库后运行 npm install 安装依赖
- 3
如需跑步统计,在 .env.local 中配置 STRAVA_CLIENT_ID、STRAVA_CLIENT_SECRET 与 STRAVA_REFRESH_TOKEN;不配置则相关功能不可用
- 4
运行 npm run dev 启动开发服务器,默认访问 http://localhost:3000
- 5
生产构建使用 npm run build 与 npm start
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- Strava 跑步统计功能需要自行申请 Strava API 凭据(客户端 ID、密钥与刷新令牌);未配置时该功能不可用,属于可选的外部服务依赖。
- 使用 Strava 集成需在 .env.local 中配置环境变量,涉及第三方服务账号与密钥。
- 跑步统计数据依赖 Strava API 并每小时刷新一次,需保持外部服务可用。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
Strava API credentials (optional for running stats)
README 原文
Create a `.env.local` file for Strava integration (optional):
README 原文
https://github.com/CohenReiland/personal-portfolio/blob/main/LICENSEhttps://github.com/CohenReiland/personal-portfolio/blob/main/README.mdRunning stats refresh hourly via Strava API.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-13。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 85 / 100
- 技术栈
- Next.js · React
- 网站类型
- 作品集
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-02-24
- 截图检查日期
- 2026-10-13
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-13
查看当时使用的来源资料
SHA-256: 307e8d8c44e6e827772ee65804f7e27b4247ebde527112545344b120c4edc923
2026-10-13T06:57:33.688Z
来源文件 / 仓库# Personal Portfolio A modern, responsive portfolio website built with Next.js and React, featuring dark/light theme support, Strava API integration, and smooth animations. ## Features - **Theme Toggle**: Persistent dark and light mode with smooth color transitions - **Strava Integration**: Running statistics fetched from Strava API with real-time data - **Responsive Design**: Fully responsive layout optimized for mobile and desktop viewing - **Custom Components**: Animated smartwatch display, running stats dashboard, and gradient section transitions - **Project Showcase**: Featured projects with live links, screenshots, and technology tags - **Contact Integration**: Direct email with copy-to-clipboard, GitHub, and LinkedIn links ## Demo [](https://cohen-reiland.vercel.app/) *Click the image above to go to the website* ## Tech Stack - Next.js 16.1.1 - React 19.2.3 - TypeScript 5.9.3 - Tailwind CSS 4.1.18 - Framer Motion 12.24.10 - Lucide React (icons) - Strava API ## Getting Started ### Prerequisites - Node.js 20.9.0 or higher - npm, yarn, pnpm, or bun - Strava API credentials (optional for running stats) ### Setup 1. Clone the repository 2. Install dependencies: ```bash npm install ``` 3. Create a `.env.local` file for Strava integration (optional): ```env STRAVA_CLIENT_ID=your_client_id STRAVA_CLIENT_SECRET=your_client_secret STRAVA_REFRESH_TOKEN=your_refresh_token ``` 4. Run the development server: ```bash npm run dev ``` 5. Open [http://localhost:3000](http://localhost:3000) in your browser ### Build for Production ```bash npm run build npm start ``` ## Usage Navigate through sections with smooth scrolling: - **Hero**: Introduction with animated smartwatch component - **About**: Personal background with live Strava running statistics - **Skills**: Programming languages, frameworks, and current learning - **Projects**: Featured projects with GitHub links and technology stacks - **Contact**: Direct links to email, GitHub, and LinkedIn Theme preference persists across sessions. Running stats refresh hourly via Strava API. ## Project Structure ``` ├── app/ │ ├── api/strava/ │ ├── layout.tsx │ ├── page.tsx │ └── globals.css ├── components/ │ ├── about/ │ ├── watch/ │ ├── Navbar.tsx │ └── ThemeProvider.tsx └── public/ ``` ## Deployment Deployed on Vercel at [cohen-reiland.vercel.app](https://cohen-reiland.vercel.app/) ## License MIT License - See [LICENSE](LICENSE) for details ## Author Cohen Reiland Computer Science Sophomore North Dakota State University
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

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 · 作品集
