# Awwwards-Winning 3D adidas Landing Page (Next.js + Three.js)
Live Demo Main Model All Models
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 [![Instagram](https://img.shields.io/badge/Instagram-%23E4405F.svg?logo=Instagram&logoColor=white)](https://www.instagram.com/ali.sanatidev/reels/) [![Static Badge](https://img.shields.io/badge/Youtube-%23FF0033?style=flat&logo=youtube)](https://www.youtube.com/channel/UCZhtUWTtk3bGJiMPN9T4HWA) [![LinkedIn](https://img.shields.io/badge/LinkedIn-%230077B5.svg?logo=linkedin&logoColor=white)](https://www.linkedin.com/in/ali-sanati/) [![TikTok](https://img.shields.io/badge/tiktok-black?style=flat&logo=TikTok)](https://www.tiktok.com/@ali_sanati_dev) [![X](https://img.shields.io/badge/X-black?style=flat&logo=x )](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!