Loading repository dataβ¦
Loading repository dataβ¦
rehan-devs / repository
π½οΈ Modern restaurant landing page with a 3D animated menu book, floating food cards, and smooth GSAP scroll-triggered animations.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A modern, animated restaurant landing page built with Next.js 15, GSAP, and Framer Motion. Features a stunning 3D menu book with scroll-triggered animations, floating food cards, and smooth page transitions.
drip-and-garlic/
βββ app/
β βββ globals.css # Global styles & Tailwind imports
β βββ layout.tsx # Root layout with fonts
β βββ page.tsx # Main landing page
βββ components/
β βββ ui/
β βββ drip-hero.tsx # Hero section with drip animations
β βββ menu-book-3d.tsx # 3D animated menu book
β βββ item-showcase.tsx # Featured items display
β βββ drip-location.tsx # Location & hours section
β βββ drip-landing.tsx # Main landing wrapper
β βββ location-map.tsx # Map component
β βββ loader.tsx # Loading screen animation
βββ lib/
β βββ utils.ts # Utility functions (cn)
βββ public/ # Static assets
βββ .gitignore
βββ next.config.ts
βββ package.json
βββ postcss.config.mjs
βββ tailwind.config.ts
βββ tsconfig.json
git clone https://github.com/rehan-devs/drip-and-garlic.git
cd drip-and-garlic
Install dependencies
npm install
# or
yarn install
# or
pnpm install
Run the development server
npm run dev
# or
yarn dev
# or
pnpm dev
{
"dependencies": {
"next": "15.x",
"react": "19.x",
"react-dom": "19.x",
"gsap": "^3.12.x",
"motion": "^12.x",
"clsx": "^2.x",
"tailwind-merge": "^2.x"
}
}
The theme uses a warm color palette defined throughout the components:
Primary Orange: #E88D2A
Light Orange: #F5A623
Dark Orange: #C76D1A
Background: #0A0A0A
Text Light: #FFF5E6
Text Muted: #A8A29E
Menu Items
Edit the defaultCategories array in components/ui/menu-book-3d.tsx to customize menu items:
const defaultCategories: MenuCategory[] = [
{
title: "Your Category",
emoji: "π",
items: [
{
name: "Item Name",
description: "Item description",
price: "$10",
badge: "π₯ POPULAR",
image: "https://your-image-url.com"
}
]
}
];
Business Info
Update the DripLocation component props for your business details:
<DripLocation
heading="Find us"
address="Your Address Here"
phone="(555) 123-4567"
instagram="@yourbusiness"
hours={[
{ days: "Mon-Fri", time: "9AM - 9PM" },
{ days: "Sat-Sun", time: "10AM - 10PM" }
]}
/>
Command Description
npm run dev Start development server
npm run build Build for production
npm run start Start production server
npm run lint Run ESLint
Mobile: < 768px (simplified animations)
Desktop: β₯ 768px (full 3D effects)
β‘ Performance
GSAP animations use will-change for GPU acceleration
Images use loading="lazy" for deferred loading
ScrollTrigger is only registered on client-side
Loader component prevents layout shift on initial load
Vercel (Recommended)
Deploy with Vercel
Push to GitHub
Import project in Vercel
Deploy automatically
Other Platforms
Bash
npm run build
npm run start
MIT License - feel free to use this for your own projects!
Food images from Unsplash Icons and emojis from native system fonts Animation inspiration from modern restaurant websites