Next.jsReact作品集

portfolio-app — Next.js 作品集模板

作者 aakif123

基于 Next.js 与 TypeScript 的个人作品集网站模板,采用深色主题,包含导航、Hero、关于、经历、技能、项目、联系表单与页脚等区块,使用 Tailwind CSS 与自定义 CSS 动画,联系表单通过 Web3Forms 提交。

看看你的网站会是什么样

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

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

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

全部页面与视图 2

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

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

值得关注的模板亮点

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

01

单页作品集结构,包含导航、Hero、关于、经历、技能、项目、联系表单和页脚组件

02

深色主题搭配青色与蓝色渐变强调色,使用 Poppins 字体

03

自定义 CSS 动画:淡入、上移与 Hero 区背景 blob 位移

04

技能区以进度条展示熟练度,经历卡片悬停展开职责与技能详情

05

联系表单通过 Web3Forms 提交,带表单校验与加载、成功、失败状态

06

作品集数据集中在 src/lib/data.ts,便于统一替换为个人内容

模板详细介绍

这是一个用于搭建个人作品集页面的 Next.js 模板,仓库为 aakif123/portfolio-app,采用 MIT 许可。页面结构按单页分区组织:固定导航栏、全屏 Hero、关于、经历、技能、项目、联系表单与页脚,各区块由 src/components 下的独立组件实现,作品集数据集中在 src/lib/data.ts。

视觉上使用深色背景搭配青色/蓝色渐变强调色,字体为 Google Fonts 的 Poppins,动画包括自定义 CSS 的淡入、上移和背景 blob 位移,以及技能进度条、经历卡片悬停展开等交互。联系表单接入 Web3Forms,提交状态包含加载、成功与失败提示。

使用前需注意:模板内容为示例数据,包括经历、技能百分比、项目条目和 Unsplash 占位图片,需要替换为本人信息;联系表单的 Web3Forms access key 直接写在代码中,应替换为自己的 key;个人照片需放置为 public/profile.jpg。README 提到 Framer Motion 与 EmailJS 已安装但使用有限或未启用,实际生效的联系表单方案是 Web3Forms。仓库未提供环境变量配置,部署说明以 Vercel 为例。

Next.js作品集

适合你的项目吗?

适用场景

  • 搭建个人开发者或设计师的单页作品集网站
  • 作为 Next.js App Router 与 Tailwind CSS 的练习或改造起点
  • 需要带联系表单的作品集页面,并希望使用第三方表单服务接收邮件

适合人群

  • 熟悉 Next.js 与 TypeScript,能自行替换组件内示例数据的开发者
  • 希望快速获得深色风格作品集页面结构,再按需调整样式的人
  • 接受使用 Web3Forms 等外部表单服务处理联系表单提交的用户

上手与定制指南

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

  1. 1

    克隆仓库后执行 npm install,再用 npm run dev 启动本地开发服务器(默认 http://localhost:3000)

  2. 2

    将个人照片命名为 profile.jpg 放入 public 目录,README 建议尺寸为 800x800 的方形图片

  3. 3

    替换 src/lib/data.ts 中的经历、技能与项目数据,以及项目区使用的 Unsplash 占位图片

  4. 4

    联系表单的 Web3Forms access key 写在代码中,需替换为自己的 key,并确认接收邮箱

  5. 5

    README 说明当前无需环境变量;若改用 EmailJS,需要自行配置其 Service ID、Template ID 与 Public Key

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

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

使用时需要遵守

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

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 联系表单依赖第三方服务 Web3Forms,代码中硬编码了作者的 access key 与接收邮箱;使用者需替换为自己的 key 和邮箱,否则表单提交会发送到作者邮箱。
  • 若改用 EmailJS 方案,需要注册 EmailJS 账号并自行获取 Service ID、Template ID 与 Public Key 等凭据。
  • 项目区图片使用 Unsplash 占位图,需自行替换;使用这些图片可能涉及第三方素材许可问题。
  • 致谢部分说明项目占位图片来自 Unsplash,属于第三方素材,其许可与项目代码许可相互独立。
  • 使用前需自行准备并放置个人照片为 public/profile.jpg,模板本身不包含该图片。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

- **Access Key**: `6ef92cff-a83c-43fa-833b-9b387ba60caf` - **Email**: [email protected] - **Features**: Unlimited submissions, no signup required

README 原文

### Alternative: EmailJS (Installed but not active) To switch to EmailJS: 1. Sign up at [emailjs.com](https://www.emailjs.com) 2. Get Service ID, Template ID, Public Key

README 原文

- Project image (Unsplash placeholders)

README 原文

- Unsplash for project placeholder images

README 原文

- Place your photo as `profile.jpg` in the `public/` folder

README 原文
https://github.com/aakif123/portfolio-app/blob/master/LICENSEhttps://github.com/aakif123/portfolio-app/blob/master/README.md

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

项目核对记录与介绍依据

模板资料

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

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

这个项目需要核对什么

记录的仓库更新时间
2026-05-01
截图检查日期
2026-10-13

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

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

查看具体选型方法 →

介绍的制作与核对状态

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

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

查看当时使用的来源资料

SHA-256: 9f7d6c7b9741d87f22eb572a0b265ede5f640977522ccc302abed8995fe7472a

2026-10-13T06:55:37.645Z

来源文件 / 仓库
# Aakif Khan - Portfolio Website

A modern, responsive portfolio website built with Next.js 14, TypeScript, and Tailwind CSS, featuring dark theme, smooth animations, and a professional contact form.

🌐 **Live Demo**: [aakif-khan-portfolio.vercel.app](https://aakif-khan-portfolio.vercel.app/)
📧 **Email**: [email protected]  
💼 **LinkedIn**: [linkedin.com/in/aakifkhan1299](https://linkedin.com/in/aakifkhan1299)  
👨‍💻 **GitHub**: [github.com/aakifkhan1299](https://github.com/aakifkhan1299)

---

## 🚀 Technologies Used

### Frontend Framework
- **Next.js 14.2.35** - React framework with App Router
- **React 18.3.0** - UI library
- **TypeScript 5.4.0** - Type safety

### Styling & UI
- **Tailwind CSS 3.4.0** - Utility-first CSS framework
- **Poppins Font** - Google Fonts integration
- **Custom CSS Animations** - Fade-in, slide-up, blob animations

### Additional Libraries
- **Framer Motion 11.0.0** - Animation library (installed, minimal usage)
- **EmailJS** - Email service integration (installed)
- **Web3Forms** - Contact form backend (active implementation)

### Development Tools
- **ESLint** - Code linting
- **PostCSS** - CSS processing
- **Git** - Version control
- **Vercel** - Deployment platform

---

## 📋 Features

### Core Features
✅ **Fully Responsive Design** - Mobile-first approach, works on all devices  
✅ **Dark Theme** - Black gradients with cyan/blue accents  
✅ **Smooth Animations** - Custom CSS and Framer Motion animations  
✅ **SEO Optimized** - Meta tags, semantic HTML  
✅ **Fast Performance** - Next.js optimization, lazy loading  
✅ **Contact Form** - Web3Forms integration with email notifications  
✅ **Professional Typography** - Poppins font family  

### Interactive Elements
- Smooth scroll navigation
- Hover effects on all interactive elements
- Animated background blobs in Hero section
- Expandable experience cards (hover to reveal details)
- Progress bars for skills
- Glowing border effects on profile image
- Mobile-friendly hamburger menu

---

## 📄 Section Breakdown

### 1. **Navbar** (`src/components/Navbar.tsx`)
**Technologies**: React, TypeScript, Smooth Scrolling  
**Features**:
- Fixed top navigation with blur effect on scroll
- Smooth scroll to sections
- Mobile hamburger menu with animations
- Clickable logo to return to hero section
- Responsive design (desktop menu + mobile menu)
- Gradient text for brand name
- Border animation on scroll

**Sections**: Home, About, Experience, Skills, Projects, Contact

---

### 2. **Hero Section** (`src/components/Hero.tsx`)
**Technologies**: React, TypeScript, Custom CSS Animations  
**Features**:
- Full-screen landing section
- Animated background with 3 moving blob gradients
- Gradient text for name (cyan to blue)
- Two CTA buttons:
  - "View My Work" - Scrolls to Projects
  - "Contact Me" - Scrolls to Contact form
- Centered layout with professional typography
- Custom blob animation (7s infinite loop)

**Animations**:
- Fade-in animation for heading
- Slide-up animation for text and buttons
- Moving blob background (cyan, blue, purple)

---

### 3. **About Section** (`src/components/About.tsx`)
**Technologies**: React, TypeScript, Next.js Image Component  
**Features**:
- Profile picture with animated glowing border
- Two-column layout (image + content)
- Professional bio text
- Three key statistics:
  - 3.5+ Years Experience
  - 30% Performance Boost
  - 10K+ Daily Users
- Gradient card background
- Pulsing glow effect on profile image

**Profile Image**:
- Location: `public/profile.jpg`
- Circular frame with border
- Cyan-to-blue animated glow
- Hover effect increases glow intensity
- Next.js Image component for optimization

---

### 4. **Experience Section** (`src/components/Experience.tsx`)
**Technologies**: React, TypeScript, Framer Motion (minimal), CSS Transitions  
**Features**:
- Two-column grid layout (responsive to single column on mobile)
- Expandable cards on hover
- Each card shows:
  - **Initial State**: Role, Company, Duration, Limited skills (first 5)
  - **Hover State**: Full responsibilities list, All skills
- Smooth height and opacity transitions
- Border color change on hover (gray to cyan)
- Scale effect on hover (1.02x)
- "Hover to see details" indicator

**Data Structure** (`src/lib/data.ts`):
```typescript
{
  title: string
  company: string
  duration: string
  responsibilities: string[]
  technologies: string[]
}
```

**Experience Cards**:
1. **Software Developer** - Cognizant (Oct 2022 - Present)
2. **Software Engineer Intern** - Cognizant (Mar 2022 - Sep 2022)

---

### 5. **Skills Section** (`src/components/Skills.tsx`)
**Technologies**: React, TypeScript, CSS Grid  
**Features**:
- Three categories: Frontend, Backend, Tools
- Animated progress bars showing proficiency levels
- 18 skills total:
  - **Frontend**: JavaScript (95%), TypeScript (92%), React.js (95%), Angular (90%), HTML5 (98%), CSS3 (95%), Context API (90%), React Hooks (93%)
  - **Backend**: Java (85%), Spring Boot (83%), Microservices (80%), REST APIs (90%), MySQL (82%), Oracle (78%)
  - **Tools**: Git (88%), Agile/SDLC (90%), AWS Basics (70%), CI/CD (75%)
- Gradient backgrounds for each category
- Smooth animation on scroll into view

**Progress Bar Animation**:
- Fills from left to right based on skill level
- Cyan-to-blue gradient fill
- Percentage displayed on right side

---

### 6. **Projects Section** (`src/components/Projects.tsx`)
**Technologies**: React, TypeScript, Next.js Image Component  
**Features**:
- Grid layout (3 columns on desktop, responsive)
- 6 featured projects with:
  - Project image (Unsplash placeholders)
  - Title and description
  - Technology tags
  - External links (GitHub, Live Demo)
- Hover effects:
  - Scale transform
  - Border color change (gray to cyan)
  - Shadow glow increase
- Card-based design with gradients

**Projects Listed**:
1. Enterprise Airline Reservation System
2. Enterprise React Dashboard
3. Angular Component Library
4. Microservices Integration Platform
5. Performance Optimization Suite
6. Responsive E-Commerce Platform

---

### 7. **Contact Section** (`src/components/Contact.tsx`)
**Technologies**: React, TypeScript, Web3Forms API  
**Features**:
- Professional contact form with 3 fields:
  - Name (required)
  - Email (required, email validation)
  - Message (required, textarea)
- Form validation
- Loading state during submission
- Success/Error messages
- Web3Forms integration (unlimited free submissions)
- Gradient button with hover effects
- Glass-morphism card design

**Web3Forms Configuration**:
- Access Key: `6ef92cff-a83c-43fa-833b-9b387ba60caf`
- Email destination: [email protected]
- API endpoint: `https://api.web3forms.com/submit`

**Form States**:
- Idle (ready to submit)
- Loading (animated "Sending...")
- Success (green notification)
- Error (red notification)

---

### 8. **Footer** (`src/components/Footer.tsx`)
**Technologies**: React, TypeScript, SVG Icons  
**Features**:
- Three-column layout:
  - **Column 1**: Brand name, tagline, location
  - **Column 2**: Quick links to sections
  - **Column 3**: Social media icons
- Real SVG logos for:
  - GitHub
  - LinkedIn
  - Gmail
  - Phone
- Hover effects on icons (gray to cyan)
- Copyright notice with current year
- Built with technology mention
- Dark background with gradient

**Social Links**:
- GitHub: [github.com/aakifkhan1299](https://github.com/aakifkhan1299)
- LinkedIn: [linkedin.com/in/aakifkhan1299](https://linkedin.com/in/aakifkhan1299)
- Email: [email protected]
- Phone: +91 9596 318 292

---

## 🎨 Design System

### Color Palette
- **Primary**: Cyan (#06B6D4)
- **Secondary**: Blue (#3B82F6)
- **Accent**: Purple (#9333EA)
- **Background**: Black (#000000) to Gray (#1A1A1A) gradients
- **Text**: White (#FFFFFF), Gray (#E5E5E5), Gray-300 (#D1D5DB)
- **Borders**: Gray-700 (#374151), Gray-800 (#1F2937)

### Typography
- **Font Family**: Poppins (Google Fonts)
- **Weights**: 300 (Light), 400 (Regular), 500 (Medium), 600 (Semi-Bold), 700 (Bold), 800 (Extra-Bold)
- **Headings**: Bold with gradient text effect
- **Body**: Regular weight, gray color

### Spacing
- **Section Padding**: `py-10` (reduced from py-20)
- **Container**: Max-width 7xl (1280px)
- **Grid Gaps**: 4-6 units (1rem - 1.5rem)

### Animations
```css
/* Fade In */
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Slide Up */
@keyframes slide-up {
  from { transform: translateY(50px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* Blob Movement */
@keyframes blob {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(30px, -50px) scale(1.1); }
  66% { transform: translate(-20px, 20px) scale(0.9); }
}
```

---

## 📦 Project Structure

```
portfolio-app/
├── public/
│   ├── profile.jpg              # Your profile picture
│   └── assets/                  # Other static assets
├── src/
│   ├── app/
│   │   ├── globals.css         # Global styles, Tailwind, Poppins font
│   │   ├── layout.tsx          # Root layout, metadata
│   │   └── page.tsx            # Main page, imports all components
│   ├── components/
│   │   ├── Navbar.tsx          # Navigation with smooth scroll
│   │   ├── Hero.tsx            # Landing section with animated blobs
│   │   ├── About.tsx           # Bio with profile picture
│   │   ├── Experience.tsx      # Work history with expandable cards
│   │   ├── Skills.tsx          # Tech skills with progress bars
│   │   ├── Projects.tsx        # Portfolio projects grid
│   │   ├── Contact.tsx         # Contact form with Web3Forms
│   │   └── Footer.tsx          # Footer with social links
│   ├── lib/
│   │   └── data.ts             # All portfolio data (projects, skills, experience)
│   ├── styles/
│   │   └── components.css      # Component-specific styles
│   └── types/
│       └── index.ts            # TypeScript type definitions
├── .gitignore                  # Git ignore file (includes node_modules)
├── LICENSE                     # MIT License
├── next.config.js              # Next.js configuration
├── package.json                # Dependencies and scripts
├── postcss.config.js           # PostCSS configuration
├── tailwind.config.js          # Tailwind CSS configuration
├── tsconfig.json               # TypeScript configuration
└── README.md                   # This file
```

---

## 🛠️ Setup Instructions

### Prerequisites
- Node.js 18+ installed
- npm or yarn package manager
- Git

### Installation

1. **Clone the repository**
```bash
git clone https://github.com/aakif123/portfolio-app.git
cd portfolio-app
```

2. **Install dependencies**
```bash
npm install
```

3. **Add your profile picture**
- Place your photo as `profile.jpg` in the `public/` folder
- Recommended size: 800x800px (square)
- Format: JPG or PNG

4. **Run development server**
```bash
npm run dev
```

5. **Open in browser**
```
http://localhost:3000
```

### Build for Production

```bash
npm run build
npm start
```

---

## 🚀 Deployment

### Vercel Deployment (Recommended)

1. **Push to GitHub**
```bash
git add .
git commit -m "Initial commit"
git push origin master
```

2. **Deploy on Vercel**
- Go to [vercel.com](https://vercel.com)
- Import your GitHub repository
- Vercel auto-detects Next.js settings
- Click "Deploy"

3. **Automatic Updates**
- Every push to master triggers auto-deployment
- Preview deployments for pull requests

### Environment Variables
No environment variables needed for current setup. Web3Forms access key is embedded in code.

---

## 📧 Contact Form Setup

### Current Setup: Web3Forms (Active)
- **Access Key**: `6ef92cff-a83c-43fa-833b-9b387ba60caf`
- **Email**: [email protected]
- **Features**: Unlimited submissions, no signup required
- **API**: `https://api.web3forms.com/submit`

### Alternative: EmailJS (Installed but not active)
To switch to EmailJS:
1. Sign up at [emailjs.com](https://www.emailjs.com)
2. Get Service ID, Template ID, Public Key
3. Uncomment EmailJS code in `Contact.tsx`
4. Replace placeholder IDs with your actual IDs

---

## 🎯 Performance Optimizations

- ✅ Next.js App Router for optimal performance
- ✅ Next.js Image component for automatic image optimization
- ✅ Lazy loading for images
- ✅ Minimal JavaScript bundle
- ✅ Tailwind CSS purging unused styles
- ✅ Fast Font loading (Google Fonts)
- ✅ Smooth scrolling instead of page navigation

---

## 📝 Customization Guide

### Update Personal Information
Edit `src/lib/data.ts`:
- Projects array
- Skills array
- Experiences array

### Change Colors
Edit `tailwind.config.js`:
```javascript
colors: {
  primary: '#06B6D4',  // Cyan
  accent: '#9333EA',   // Purple
}
```

### Modify Sections
Each section is a standalone component in `src/components/`
- Import/export from `src/app/page.tsx`

### Update Contact Email
Change in two places:
1. `src/components/Contact.tsx` - Web3Forms setup
2. `src/components/Footer.tsx` - Email link

---

## 📄 License

MIT License - See [LICENSE](LICENSE) file for details

Copyright (c) 2026 Aakif Khan

---

## 🤝 Contact & Support

**Aakif Khan**
- 📧 Email: [email protected]
- 💼 LinkedIn: [linkedin.com/in/aakifkhan1299](https://linkedin.com/in/aakifkhan1299)
- 👨‍💻 GitHub: [github.com/aakifkhan1299](https://github.com/aakifkhan1299)
- 📱 Phone: +91 9596 318 292
- 📍 Location: Bengaluru, Karnataka, India

---

## 🙏 Acknowledgments

- Next.js Team for the amazing framework
- Tailwind CSS for the utility-first CSS framework
- Web3Forms for the contact form service
- Unsplash for project placeholder images
- Google Fonts for Poppins typography

---

**Built with ❤️ using Next.js, TypeScript, and Tailwind CSS**

Contributions are welcome! Please feel free to submit a pull request or open an issue for any suggestions or improvements.

## License

This project is licensed under the MIT License. See the LICENSE file for details.
反馈内容错误

看看同类模板

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