# Awwwards-Winning 3D adidas Landing Page (Next.js + Three.js)
A polished, scroll-animated **3D landing page** built with Next.js, React Three Fiber, Three.js, and GSAPβdesigned to hit Awwwards-level polish.
---
## π Table of Contents
- [Features](#-features)
- [Project Structure](#-project-structure)
- [Getting Started](#-getting-started)
- [What Youβll Learn](#-what-you'll-learn)
- [Assets](#-assets)
- [Contributing](#-contributing)
- [Contact Me](#-contact-me)
- [Like This Project?](#-like-this-project)
---
## β¨ Features
- π₯ 3D visuals powered by **React Three Fiber** and **Drei**
- β‘ Smooth transitions and scroll-based animations using **Framer Motion**
- π¨ Clean, responsive UI with **TailwindCSS**
- π Working contact form using **EmailJS**
- π§± Beautiful UI enhancements with **Aceternity UI** and **Magic UI**
- π Lightning-fast development with **Vite**
---
## π Project Structure
```bash
app/
βββ shirts/[slug]/page.tsx # Dynamic product routes
βββ layout.tsx # Root layout
βββ page.tsx # Main landing page
components/
βββ Header.tsx / Footer.tsx # UI components
βββ Scene.tsx / Rig.tsx # 3D scene setup
βββ ScrollIndicator.tsx # UI + animation helper
βββ LoadingSkeleton.tsx # Custom loader
βββ FirstGrayModel.tsx # 3D product models
βββ ViewCanvas.tsx # Three.js canvas wrapper
lib/
βββ colors.ts # Theme colors
βββ material.ts # Reusable materials
βββ patchThreeLoadingManager.ts # Preloading manager
βββ useFirstAnimation.ts # Custom animation hook
βββ useTextures.ts # Texture loading helper
public/
βββ icons/ # Static icons
βββ models/ # 3D models
βββ test/ # Misc assets
βββ textures/ # Texture assets
```
---
## π Getting Started
### Prerequisites
- Node.js β₯ 15.x
- npm or Yarn or pnpm
- Basic familiarity with React / Three.js
### Installation
```bash
git clone https://github.com/Ali-Sanati/awwwards-adidas.git
cd awwwards-adidas
npm install
```
### Development
```bash
npm run dev
```
Open http://localhost:3000.
### Production Build
```bash
npm run build
npm run start
```
---
## π§ What Youβll Learn / Why Use This
This repo demonstrates how to blend modern UI and immersive 3D in a production-grade, high-performance web experience. If you're aiming to:
- Build portfolio-level interactive websites
- Level up in React + Three.js
- Learn real-world optimizations (preload, lazy load, smooth transitions)
- Understand scalable file structure and clean code
β¦then this is a solid starting point.
---
## π Assets
Assets used in the project can be found [here](https://drive.google.com/file/d/1NjKulhW4iobgekZAK3YWm8EyeLxL3mOZ/view?usp=drive_link)
---
## π Contributing
Contributions are welcome! If you spot a bug, want to add a new feature, or improve documentation:
1. Fork the repo
2. Create a branch feature/your-feature or fix/issue-name
3. Make your changes & test
4. Submit a Pull Request
Please keep PRs focused, include tests or screenshots when possible, and describe your change.
## π¬ Contact Me
If you have questions or ideas, feel free to open an issue or reach me
[](https://www.instagram.com/ali.sanatidev/reels/)
[](https://www.youtube.com/channel/UCZhtUWTtk3bGJiMPN9T4HWA)
[](https://www.linkedin.com/in/ali-sanati/)
[](https://www.tiktok.com/@ali_sanati_dev)
[](https://x.com/Ali_Sanati_Dev)
Thanks for checking it out! π
---
## β Like This Project?
Star the repo and [subscribe](https://www.youtube.com/channel/UCZhtUWTtk3bGJiMPN9T4HWA??sub_confirmation=1) to the YouTube channel for more dev content!