Next.jsReact企业官网

Foodie-Spot — Next.js 企业官网模板

作者 zainshah3464

Foodie Spot 是一个基于 Next.js 的餐厅单页网站模板,采用深色主题,通过 WhatsApp 直接下单,并带有滚动驱动的动画效果,适合餐厅和小型餐饮商家展示菜单与联系方式。

看看你的网站会是什么样

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

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

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

全部页面与视图 2

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

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

值得关注的模板亮点

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

01

单页结构,包含首屏、故事、菜单、画廊、评价、联系与页脚等区块

02

菜单支持按分类筛选,并带有 Framer Motion 布局动画

03

通过 WhatsApp 直接下单,点击菜品按钮会打开预填消息的对话

04

画廊支持悬停缩放和点击灯箱预览

05

深色主题搭配橙色强调色,动画包含视差与渐进显示

06

包含 Open Graph、Twitter Cards 和 JSON-LD 结构化数据

模板详细介绍

Foodie Spot 是一个餐厅单页网站模板,使用 Next.js 构建,页面包含首屏、品牌故事、菜单、图片画廊、顾客评价、联系与地图以及页脚等区块。菜单支持按分类筛选,画廊提供悬停缩放和灯箱预览,联系区嵌入 Google 地图并展示地址、电话和营业时间。下单流程不依赖后端:顾客点击菜品上的“Order Now”按钮后,会打开 WhatsApp 并预填包含菜名和数量询问的消息,由商家在 WhatsApp 中接收订单。

模板采用深色背景与橙色强调色,动画由 Framer Motion 驱动,包括视差、渐进显示和布局过渡。项目说明中将其定位为前端演示,没有后端,所有图片来自 Unsplash,可替换为自己的素材。README 提到已包含 Open Graph、Twitter Cards 和 JSON-LD 结构化数据,以及内联 SVG 图标。

使用前需要留意:该模板没有后端和支付集成,订单完全依赖 WhatsApp 链接;演示图片、字体等第三方素材的许可需单独核对,不能仅凭代码的 MIT 许可判断。README 的路线图中仍有未完成项,说明部分功能可能尚未实现。

Next.js企业官网

适合你的项目吗?

适用场景

  • 为餐厅或小型餐饮商家搭建展示菜单和联系方式的单页网站
  • 需要顾客通过 WhatsApp 直接下单、不接入后端订单系统的场景
  • 作为学习 Next.js 与 Framer Motion 滚动动画和布局过渡的示例项目
  • 快速替换菜品、评价、联系方式等文案后用于演示或原型

适合人群

  • 餐厅、快餐店、外卖店等需要在线展示菜单的餐饮商家
  • 希望用 WhatsApp 接收订单、不引入支付或订单后端的经营者
  • 需要单页深色主题网站模板的前端开发者或设计者

上手与定制指南

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

  1. 1

    需要 Node.js v18.18 或更高版本,使用 npm、yarn、pnpm 或 bun 安装依赖后运行 npm run dev

  2. 2

    项目没有必需的环境变量,可选设置 NEXT_PUBLIC_SITE_URL 用于 SEO 和元数据

  3. 3

    替换 WhatsApp 号码时需使用国际格式且不带加号,例如 923710371689,并同步修改 Hero、Menu、Contact 等组件中的链接

  4. 4

    菜品、评价、联系信息和画廊图片分别位于 Menu.tsx、Reviews.tsx、Contact.tsx 和 Gallery.tsx 的数组或配置中

  5. 5

    演示图片来自 Unsplash,替换为自有素材时需自行确认素材许可

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

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

使用时需要遵守

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

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 该模板仅为前端演示,没有后端服务;订单不经过服务器或数据库,需依赖外部方式接收。
  • 下单功能依赖 WhatsApp:顾客点击后跳转到 WhatsApp 并发送预填消息,商家需有可用的 WhatsApp 账号接收订单。
  • 使用前必须把代码中多处硬编码的示例 WhatsApp 号码替换为自己的号码,且需使用国际格式、不带加号。
  • 演示图片来自 Unsplash,需自行替换;这些第三方素材的许可需单独核对,不随代码的 MIT 许可一并授予。
  • 页面图片依赖联网从 Unsplash 加载,离线或网络受限时图片可能无法显示。
  • 联系区嵌入 Google 地图,页面会加载 Google 的外部服务,可能受其可用性与条款约束。
  • 项目无需必需的环境变量即可运行;仅可选设置 NEXT_PUBLIC_SITE_URL 用于 SEO 与元数据。
  • 当前不支持在线支付,仅支持 WhatsApp 下单;支付功能仍在路线图中,尚未实现。
  • 项目目前没有单元测试,测试计划在 v2.0 才加入,不应视为已具备测试保障。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

The site is a front‑end demo with no backend.

README 原文

Customers can place orders via WhatsApp with pre‑filled messages.

README 原文

Replace `923710371689` in all `href` attributes (Hero, Menu, Contact, etc.) with your own WhatsApp number (include country code, no plus sign).

README 原文

All images are from Unsplash and can be replaced with your own.

README 原文

Ensure you have internet connection; images are from Unsplash.

README 原文

Embedded Google Map

README 原文

No mandatory environment variables are needed to run the project.

README 原文

Not yet, but it's on the roadmap. Currently only WhatsApp ordering is supported.

README 原文

No unit tests yet — planned for v2.0

README 原文
https://github.com/zainshah3464/Foodie-Spot/blob/main/LICENSEhttps://github.com/zainshah3464/Foodie-Spot/blob/main/README.md

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

项目核对记录与介绍依据

模板资料

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

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

这个项目需要核对什么

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

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

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

查看具体选型方法 →

介绍的制作与核对状态

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

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

查看当时使用的来源资料

SHA-256: bef955cda65a95ca08c6327c3aa6f245cb2368ccfb9a7d9e90b87e707cfdea30

2026-10-13T08:11:53.975Z

来源文件 / 仓库
<!-- PROJECT LOGO -->
<br />
<div align="center">
  <a href="https://foodiespot.pk">
    <img src="https://images.unsplash.com/photo-1504674900247-0877df9cc836?q=80&w=200&h=80&auto=format&fit=crop" alt="Foodie Spot Logo" width="200" height="80">
  </a>

  <h1 align="center">FOODIE SPOT — Delicious Food, Delivered Hot & Fresh</h1>

  <p align="center">
    Modern single-page restaurant website with direct WhatsApp ordering, scroll-driven animations, and a clean dark theme.
    <br />
    <a href="https://foodiespot-demo.vercel.app"><strong>View Live Demo »</strong></a>
    <br />
    <br />
    <a href="https://github.com/zainshah3464/Foodie-Spot">GitHub Repository</a>
    ·
    <a href="https://github.com/zainshah3464/Foodie-Spot/issues">Report Bug</a>
    ·
    <a href="https://github.com/zainshah3464/Foodie-Spot/issues">Request Feature</a>
  </p>
</div>

<!-- BADGES -->
<p align="center">
  <a href="https://github.com/zainshah3464/Foodie-Spot/actions">
    <img src="https://img.shields.io/github/actions/workflow/status/zainshah3464/Foodie-Spot/deploy.yml?style=flat-square" alt="Build Status">
  </a>
  <a href="https://foodiespot-demo.vercel.app">
    <img src="https://img.shields.io/github/deployments/zainshah3464/Foodie-Spot/production?style=flat-square&label=vercel" alt="Deployment">
  </a>
  <a href="LICENSE">
    <img src="https://img.shields.io/github/license/zainshah3464/Foodie-Spot?style=flat-square" alt="License">
  </a>
  <img src="https://img.shields.io/badge/Next.js-16-black?style=for-the-badge&logo=next.js&logoColor=white" alt="Next.js">
  <img src="https://img.shields.io/badge/TypeScript-5-blue?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript">
  <img src="https://img.shields.io/badge/Tailwind%20CSS-4-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white" alt="Tailwind">
  <img src="https://img.shields.io/badge/Framer%20Motion-11-purple?style=for-the-badge&logo=framer&logoColor=white" alt="Framer Motion">
  <img src="https://img.shields.io/badge/Google%20Fonts-Poppins-orange?style=for-the-badge" alt="Fonts">
</p>

<!-- TABLE OF CONTENTS -->
<details>
  <summary>Table of Contents</summary>
  <ol>
    <li><a href="#about-the-project">About The Project</a></li>
    <li><a href="#features">Features</a></li>
    <li><a href="#tech-stack">Tech Stack</a></li>
    <li><a href="#getting-started">Getting Started</a></li>
    <li><a href="#environment-variables">Environment Variables</a></li>
    <li><a href="#project-structure">Project Structure</a></li>
    <li><a href="#key-components">Key Components</a></li>
    <li><a href="#how-it-works">How It Works</a></li>
    <li><a href="#customization">Customization</a></li>
    <li><a href="#performance-optimizations">Performance Optimizations</a></li>
    <li><a href="#mobile-responsiveness">Mobile Responsiveness</a></li>
    <li><a href="#accessibility">Accessibility</a></li>
    <li><a href="#troubleshooting">Troubleshooting</a></li>
    <li><a href="#roadmap">Roadmap</a></li>
    <li><a href="#changelog">Changelog</a></li>
    <li><a href="#testing">Testing</a></li>
    <li><a href="#code-style">Code Style</a></li>
    <li><a href="#deployment">Deployment</a></li>
    <li><a href="#contributing">Contributing</a></li>
    <li><a href="#license">License</a></li>
    <li><a href="#developer">Developer</a></li>
    <li><a href="#support">Support</a></li>
    <li><a href="#faq">FAQ</a></li>
    <li><a href="#acknowledgments">Acknowledgments</a></li>
  </ol>
</details>

---

## About The Project

**Foodie Spot** is a modern, fully responsive single-page restaurant website built with **Next.js** and **Framer Motion**. It features an elegant dark theme with subtle orange accents, smooth scroll-driven animations, and a direct WhatsApp ordering system—no commission, no app download. The project serves as a demo to help restaurants and small food businesses establish a professional online presence quickly.

> **Note:** All images are from Unsplash and can be replaced with your own. The site is a front‑end demo with no backend.

<p align="center">
  <img src="https://images.unsplash.com/photo-1504674900247-0877df9cc836?q=80&w=1200&auto=format&fit=crop" alt="Foodie Spot Demo" width="80%">
</p>

---

## Features

- 🍔 **Fully Responsive** – Optimized for mobile, tablet, and desktop.
- 🎬 **Scroll‑Driven Animations** – Parallax effects, progressive reveals, and smooth transitions powered by Framer Motion.
- 📱 **WhatsApp Direct Ordering** – Customers can place orders via WhatsApp with pre‑filled messages.
- 🍕 **Dynamic Menu with Category Filters** – Filter dishes by category (Burger, Pizza, Biryani, etc.) with smooth layout animations.
- 🖼️ **Interactive Gallery with Lightbox** – Hover‑to‑zoom and click‑to‑preview food images.
- ⭐ **Testimonials Section** – Customer reviews with star ratings and avatars.
- 📍 **Contact & Map** – Embedded Google Map, contact details, and WhatsApp CTA.
- 🔍 **Professional Metadata** – Open Graph, Twitter Cards, and JSON‑LD structured data for SEO and social sharing.
- 🎨 **Custom SVG Favicon** – Inline SVG favicon with a burger icon (path‑based), no external files.
- 🌙 **Clean, Minimal Design** – Dark background (`#0d0d0d`) with subtle neutral borders and orange accent gradients.

---

## Tech Stack

| Category          | Technology                                                                                     |
| ----------------- | ---------------------------------------------------------------------------------------------- |
| **Framework**     | [Next.js 16](https://nextjs.org/) (App Router)                                                  |
| **Language**      | [TypeScript 5](https://www.typescriptlang.org/)                                                 |
| **Styling**       | [Tailwind CSS 4](https://tailwindcss.com/)                                                      |
| **Animations**    | [Framer Motion 11](https://www.framer.com/motion/)                                               |
| **Fonts**         | [Poppins](https://fonts.google.com/specimen/Poppins)                                             |
| **Icons**         | Custom inline SVG + [Lucide Icons](https://lucide.dev/) (optional)                              |
| **Images**        | [Unsplash](https://unsplash.com/) (replaceable with own)                                        |

---

## Getting Started

### Prerequisites

- Node.js (v18.18 or higher)
- npm / yarn / pnpm / bun

### Installation

1. Clone the repository
   ```bash
   git clone https://github.com/zainshah3464/Foodie-Spot.git
   cd Foodie-Spot
   ```

2. Install dependencies
   ```bash
   npm install
   # or
   yarn install
   # or
   pnpm install
   ```

3. Run the development server
   ```bash
   npm run dev
   ```

4. Open [http://localhost:3000](http://localhost:3000) to view it in your browser.

---

## Environment Variables

| Variable | Description | Required | Default |
|----------|-------------|----------|---------|
| `NEXT_PUBLIC_SITE_URL` | Base URL for SEO and metadata | No | `http://localhost:3000` |
| *(None required for this demo)* | | | |

No mandatory environment variables are needed to run the project. If you wish to override the default site URL, create a `.env.local` file and set `NEXT_PUBLIC_SITE_URL`.

---

## Project Structure

```
src/
├── app/
│   ├── layout.tsx          # Root layout with metadata & fonts
│   ├── page.tsx            # Main page assembling all sections
│   └── globals.css         # Global styles & animations
├── components/
│   ├── Hero.tsx            # Hero section with parallax
│   ├── About.tsx           # About/Story section with stats
│   ├── Menu.tsx            # Menu with category filters
│   ├── Gallery.tsx         # Photo gallery with lightbox
│   ├── Reviews.tsx         # Testimonials
│   ├── Contact.tsx         # Contact details & map
│   └── Footer.tsx          # Footer with social links
├── public/                 # Static assets (if any)
├── package.json
└── README.md
```

---

## Key Components

### Hero Section
- Parallax effect on scroll.
- Animated headline and CTA buttons.
- Direct WhatsApp order button.

### Menu Section
- Category filter buttons (Burger, Pizza, Biryani, etc.).
- Framer Motion layout animations for smooth filtering.
- Each dish card with name, description, price, and "Order Now" button.

### Gallery Section
- Grid of food images with hover zoom.
- Lightbox modal for full‑size preview.

### Reviews Section
- Testimonial cards with avatar, name, rating stars, and feedback.
- Subtle entry animations.

### Contact Section
- Embedded Google Map.
- Contact details (address, phone, hours).
- WhatsApp CTA button.

### Footer
- Social media icons, quick links, and copyright.

---

## How It Works

### Ordering Flow
1. Customer browses menu.
2. Clicks "Order Now" on any dish.
3. WhatsApp opens with a pre‑filled message containing the item name and quantity request.
4. Customer sends message; restaurant receives order directly.

### Animation Pipeline
- **Framer Motion** handles all scroll‑triggered animations (`whileInView`) and layout transitions.
- No external smooth scroll library – native CSS `scroll-behavior: smooth` for anchor links.
- GSAP not used; Framer Motion is sufficient for this project.

---

## Customization

### Replace Content
- **Menu items**: Edit the `menuItems` array in `components/Menu.tsx`.
- **Testimonials**: Modify the `reviews` array in `components/Reviews.tsx`.
- **Contact details**: Update the `contactInfo` array and WhatsApp number in `components/Contact.tsx`.
- **Gallery images**: Change the `galleryImages` array in `components/Gallery.tsx`.
- **About stats**: Adjust the `stats` array in `components/About.tsx`.

### Change Colors
The theme uses a dark background (`#0d0d0d`) and orange accent (`#f97316`). You can change these in `globals.css` and by searching for the hex codes or Tailwind classes (`bg-[#0d0d0d]`, `from-orange-400 to-red-500`, etc.).

### Update Metadata & SEO
- Edit `app/layout.tsx`:
  - Replace `baseUrl` with your domain.
  - Update the Open Graph image URL to your own hosted image.
  - Adjust site title, description, and keywords.

### WhatsApp Number
Replace `923710371689` in all `href` attributes (Hero, Menu, Contact, etc.) with your own WhatsApp number (include country code, no plus sign).

---

## Performance Optimizations

- **Image Optimization** – Uses `next/image` with lazy loading and appropriate sizes.
- **Code Splitting** – Automatic by Next.js; no heavy libraries.
- **Font Optimization** – `next/font` with subsetting.
- **Reduced Motion** – Respects `prefers-reduced-motion` via CSS and Framer Motion `useReducedMotion`.
- **Minimal Dependencies** – Only essential packages.

---

## Mobile Responsiveness

- Fluid typography using `clamp()` and responsive Tailwind classes.
- Touch‑friendly buttons and interactive elements.
- Menu filters wrap horizontally on small screens.
- Gallery grid collapses to single column on mobile.
- WhatsApp buttons work seamlessly on mobile (opens app).

---

## Accessibility

- Semantic HTML (`<header>`, `<nav>`, `<main>`, `<section>`, `<footer>`).
- ARIA labels on icon buttons and interactive elements.
- Keyboard navigable (all buttons are real `<button>` elements).
- Sufficient color contrast (dark background with light text).
- `prefers-reduced-motion` support.

---

## Troubleshooting

### Images not loading?
- Ensure you have internet connection; images are from Unsplash.
- Replace with local images in `/public` if needed.

### WhatsApp link not opening?
- Check that the number is in international format without `+` (e.g., `923710371689`).
- Test on a device with WhatsApp installed.

### Build errors?
- Delete `node_modules` and `package-lock.json`, then `npm install`.
- Ensure you are using Node v18.18+.

---

## Roadmap

- [x] Hero section with parallax
- [x] Menu with category filters
- [x] Gallery lightbox
- [x] Testimonials
- [x] WhatsApp ordering
- [ ] Add online payment integration
- [ ] Multi‑language support
- [ ] CMS integration for menu items
- [ ] Unit and E2E testing

---

## Changelog

### v1.0.0 (Feb 2026)
- Initial release
- Fully responsive design
- WhatsApp ordering
- Framer Motion animations
- Professional metadata and SEO

---

## Testing

```bash
npm run lint
npm run type-check
# No unit tests yet — planned for v2.0
```

---

## Code Style

- **ESLint** — `next lint` (Next.js default config)
- **Prettier** — `.prettierrc` with `singleQuote: true`, `semi: false`
- **Commit Convention** — Conventional Commits (`feat:`, `fix:`, `docs:`)

---

## Deployment

### Deploy on Vercel

1. Push your repository to GitHub.
2. Import the project into [Vercel](https://vercel.com).
3. Set framework preset to **Next.js**.
4. Deploy – no additional configuration needed.

### Deploy on Netlify

1. Build command: `npm run build`
2. Publish directory: `.next`
3. Add environment variables if needed (none required for this demo).

---

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

---

## License

Distributed under the MIT License. See [LICENSE](LICENSE) for more information.

---

## Developer

**Zain Shah**  
*Full‑Stack Developer & Software Engineer*

A passionate developer focused on creating modern, high‑performance web experiences. This project showcases advanced front‑end techniques with animations and responsive design.

- **Portfolio:** [zain-main-web.vercel.app](https://zain-main-web.vercel.app/)
- **GitHub:** [@zainshah3464](https://github.com/zainshah3464)
- **Instagram:** [@zainshah3464](https://www.instagram.com/zainshah3464)
- **Email:** [[email protected]](mailto:[email protected])

---

## Support

Issues ke liye [GitHub Issues](https://github.com/zainshah3464/Foodie-Spot/issues) use karein.  
Direct contact: [Email](mailto:[email protected])

---

## FAQ

### Q: Can I use this project for my own restaurant?
**A:** Absolutely! Just replace the placeholder content with your own (menu items, images, contact details, WhatsApp number).

### Q: Where do the food images come from?
**A:** They are from Unsplash. For production, replace them with your own high‑quality photos.

### Q: Is there a backend?
**A:** No, this is a front‑end only demo. Orders go directly to WhatsApp, no database or server required.

### Q: Does it support online payments?
**A:** Not yet, but it's on the roadmap. Currently only WhatsApp ordering is supported.

---

## Acknowledgments

- [Next.js Documentation](https://nextjs.org/docs)
- [Framer Motion](https://www.framer.com/motion/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Unsplash](https://unsplash.com/) for placeholder images
- [Google Fonts](https://fonts.google.com/) for typography
- [Lucide Icons](https://lucide.dev/) for some SVG icons
反馈内容错误

看看同类模板

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