diff --git a/public/zomato-clone/.gitignore b/public/zomato-clone/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/public/zomato-clone/accordion.js b/public/zomato-clone/accordion.js deleted file mode 100644 index 71b04d8d3..000000000 --- a/public/zomato-clone/accordion.js +++ /dev/null @@ -1,277 +0,0 @@ -/* =================================================== - accordion.js — Zomato Clone Main JS - =================================================== */ - -document.addEventListener("DOMContentLoaded", () => { - /* ──────────────────────────────────────────────── - 1. ACCORDION - ──────────────────────────────────────────────── */ - const accordionContainers = document.querySelectorAll(".accordion-container"); - - accordionContainers.forEach((container) => { - container.addEventListener("click", function () { - const data = this.nextElementSibling; - const icon = this.querySelector("i.fa-chevron-down"); - - // Close all others - accordionContainers.forEach((other) => { - if (other !== this) { - other.nextElementSibling.classList.remove("show"); - const otherIcon = other.querySelector("i.fa-chevron-down"); - if (otherIcon) otherIcon.classList.remove("animate"); - } - }); - - data.classList.toggle("show"); - if (icon) icon.classList.toggle("animate"); - }); - }); - - /* ──────────────────────────────────────────────── - 2. LOCATION DROPDOWN - ──────────────────────────────────────────────── */ - const states = [ - "Andhra Pradesh", - "Assam", - "Bihar", - "Chandigarh", - "Delhi NCR", - "Goa", - "Gujarat", - "Hyderabad", - "Jaipur", - "Karnataka", - "Kerala", - "Kolkata", - "Lucknow", - "Maharashtra", - "Mumbai", - "Noida", - "Pune", - "Punjab", - "Rajasthan", - "Tamil Nadu", - "Uttar Pradesh", - "Uttarakhand", - "West Bengal", - ]; - - const locationInput = document.querySelector(".location-input"); - const dropdown = document.querySelector(".location-dropdown"); - const toggleBtn = document.querySelector(".dropdown-toggle"); - - if (locationInput && dropdown) { - function renderDropdown(list) { - dropdown.innerHTML = ""; - if (list.length === 0) { - dropdown.innerHTML = ``; - return; - } - list.forEach((state) => { - const item = document.createElement("div"); - item.classList.add("dropdown-item"); - item.textContent = state; - item.addEventListener("click", () => { - locationInput.value = state; - dropdown.classList.add("hidden"); - }); - dropdown.appendChild(item); - }); - } - - if (toggleBtn) { - toggleBtn.addEventListener("click", (e) => { - e.stopPropagation(); - renderDropdown(states); - dropdown.classList.toggle("hidden"); - }); - } - - locationInput.addEventListener("input", () => { - const val = locationInput.value.toLowerCase(); - const filtered = states.filter((s) => s.toLowerCase().includes(val)); - renderDropdown(filtered); - dropdown.classList.remove("hidden"); - }); - - locationInput.addEventListener("focus", () => { - renderDropdown(states); - dropdown.classList.remove("hidden"); - }); - - document.addEventListener("click", (e) => { - if (!e.target.closest(".location")) { - dropdown.classList.add("hidden"); - } - }); - } - - /* ──────────────────────────────────────────────── - 3. SEARCH FUNCTIONALITY - ──────────────────────────────────────────────── */ - window.searchFood = function () { - const val = document.getElementById("searchInput")?.value?.trim(); - if (!val) { - showToast("Please enter something to search!"); - return; - } - showToast(`Searching for: "${val}"`); - }; - - const searchInput = document.getElementById("searchInput"); - if (searchInput) { - searchInput.addEventListener("keydown", (e) => { - if (e.key === "Enter") window.searchFood(); - }); - } - - window.handleLocation = function (event) { - if (event.key === "Enter") { - const loc = document.getElementById("locationInput")?.value?.trim(); - if (!loc) { - showToast("Please enter a location!"); - return; - } - showToast(`Location set: ${loc}`); - } - }; - - /* ──────────────────────────────────────────────── - 4. DARK MODE TOGGLE - ──────────────────────────────────────────────── */ - const darkBtn = document.getElementById("darkModeToggle"); - - function applyTheme(isDark) { - if (isDark) { - document.body.classList.add("dark-mode"); - if (darkBtn) darkBtn.textContent = "☀️ Light Mode"; - } else { - document.body.classList.remove("dark-mode"); - if (darkBtn) darkBtn.textContent = "🌙 Dark Mode"; - } - } - - // Load saved preference - const savedTheme = localStorage.getItem("zomato-theme"); - applyTheme(savedTheme === "dark"); - - if (darkBtn) { - darkBtn.addEventListener("click", () => { - const isDark = document.body.classList.contains("dark-mode"); - applyTheme(!isDark); - localStorage.setItem("zomato-theme", isDark ? "light" : "dark"); - }); - } - - /* ──────────────────────────────────────────────── - 5. MOBILE NAV TOGGLE - ──────────────────────────────────────────────── */ - window.toggleMobileNav = function () { - const nav = document.getElementById("mobileNav"); - const btn = document.getElementById("hamburgerBtn"); - if (!nav) return; - nav.classList.toggle("mobile-open"); - if (btn) btn.classList.toggle("active"); - }; - - // Close on nav link click - document.querySelectorAll("#mobileNav .nav-item a").forEach((link) => { - link.addEventListener("click", () => { - document.getElementById("mobileNav")?.classList.remove("mobile-open"); - document.getElementById("hamburgerBtn")?.classList.remove("active"); - }); - }); - - /* ──────────────────────────────────────────────── - 6. TOAST NOTIFICATION HELPER - ──────────────────────────────────────────────── */ - function showToast(message, duration = 2800) { - // Remove existing - document.querySelector(".z-toast")?.remove(); - - const toast = document.createElement("div"); - toast.className = "z-toast"; - toast.textContent = message; - Object.assign(toast.style, { - position: "fixed", - bottom: "2.4rem", - left: "50%", - transform: "translateX(-50%) translateY(20px)", - background: "#1c1c1c", - color: "#fff", - padding: "1.2rem 2.2rem", - borderRadius: "99px", - fontSize: "1.45rem", - fontFamily: "Outfit, sans-serif", - fontWeight: "400", - boxShadow: "0 8px 30px rgba(0,0,0,0.25)", - zIndex: "99999", - opacity: "0", - transition: "opacity 0.25s ease, transform 0.25s ease", - whiteSpace: "nowrap", - }); - - document.body.appendChild(toast); - requestAnimationFrame(() => { - toast.style.opacity = "1"; - toast.style.transform = "translateX(-50%) translateY(0)"; - }); - - setTimeout(() => { - toast.style.opacity = "0"; - toast.style.transform = "translateX(-50%) translateY(12px)"; - setTimeout(() => toast.remove(), 300); - }, duration); - } - - // ================== DARK MODE ================== - const darkModeBtn = document.getElementById("darkModeToggle"); -const icon = document.getElementById("icon"); - -// Load saved theme -if (localStorage.getItem("theme") === "dark") { - document.body.classList.add("dark-mode"); - icon.textContent = "light_mode"; -} else { - icon.textContent = "dark_mode"; -} - -// Toggle -darkModeBtn.addEventListener("click", () => { - - document.body.classList.toggle("dark-mode"); - - if (document.body.classList.contains("dark-mode")) { - icon.textContent = "light_mode"; - localStorage.setItem("theme", "dark"); - } else { - icon.textContent = "dark_mode"; - localStorage.setItem("theme", "light"); - } - -}); - - - /* ──────────────────────────────────────────────── - 7. STICKY NAVBAR on scroll - ──────────────────────────────────────────────── */ - const header = document.querySelector("header"); - if (header) { - window.addEventListener("scroll", () => { - if (window.scrollY > 60) { - header.style.position = "fixed"; - header.style.top = "0"; - header.style.background = document.body.classList.contains("dark-mode") - ? "rgba(15,15,15,0.97)" - : "rgba(226,55,68,0.97)"; - header.style.backdropFilter = "blur(12px)"; - header.style.boxShadow = "0 2px 20px rgba(0,0,0,0.15)"; - } else { - header.style.position = "absolute"; - header.style.background = "transparent"; - header.style.backdropFilter = ""; - header.style.boxShadow = ""; - } - }); - } -}); diff --git a/public/zomato-clone/app.css b/public/zomato-clone/app.css deleted file mode 100644 index 5a05e8315..000000000 --- a/public/zomato-clone/app.css +++ /dev/null @@ -1,358 +0,0 @@ -/* ===== APP DOWNLOAD SECTION ===== */ -.app-section { - display: flex; - justify-content: center; - width: 100%; - background: linear-gradient(135deg, #fff8f8 0%, #fff4f0 100%); - border-top: 1px solid rgba(226, 55, 68, 0.08); - border-bottom: 1px solid rgba(226, 55, 68, 0.08); - transition: background var(--transition); -} - -body.dark-mode .app-section { - background: linear-gradient(135deg, #1c1212 0%, #1a1515 100%); - border-color: rgba(226, 55, 68, 0.15); -} - -.app-section .content { - position: relative; - max-width: 92rem; - margin: 0 auto; - display: flex; - justify-content: center; - align-items: center; - gap: 6rem; - padding: 5rem 2rem; - flex-wrap: nowrap; -} - -.app-section .phone-image { - position: relative; - width: 24rem; - height: 46rem; - flex-shrink: 0; - filter: drop-shadow(0 24px 48px rgba(0, 0, 0, 0.18)); - animation: floatPhone 3.5s ease-in-out infinite; -} - -@keyframes floatPhone { - 0%, - 100% { - transform: translateY(0); - } - 50% { - transform: translateY(-10px); - } -} - -.app-section .phone-image img { - width: 100%; - height: 100%; - object-fit: contain; -} - -.app-info { - flex: 1; - max-width: 48rem; -} - -.app-section .phone-title { - color: var(--text-primary); - margin: 0 0 1.2rem; - font-weight: 700; - font-size: 4rem; - line-height: 1.2; - letter-spacing: -0.02em; -} - -.app-section .app-description { - margin: 0 0 2.8rem; - color: var(--text-secondary); - font-size: 1.65rem; - font-weight: 300; - line-height: 1.7; -body.dark-mode .explore-options .heading { - color: white; -} -/* Buttons */ -body.dark-mode button { - color: white; -} - -/* Radio selector */ -.app-section .option-selector { - display: flex; - font-size: 1.55rem; - gap: 2.4rem; - margin-bottom: 1.8rem; -} - -.radio-option { - display: flex; - align-items: center; - gap: 0.7rem; - cursor: pointer; -} -body.dark-mode .popular-localities .title { - color: white; -} - -.radio-option label { - cursor: pointer; - color: var(--text-secondary); - font-weight: 400; - transition: color var(--transition); -} - -.radio-option input[type="radio"] { - accent-color: var(--red); - width: 1.6rem; - height: 1.6rem; - cursor: pointer; -} - -.radio-option input[type="radio"]:checked + label { - color: var(--red); - font-weight: 600; -} - -/* Email input */ -.email-input { - display: flex; - margin-bottom: 1.2rem; - gap: 10px; -} - -.email-input .email { - padding: 1.3rem 1.5rem; - height: 5rem; - background: var(--bg-white); - border: 1.5px solid var(--border-dark); - font-size: 1.5rem; - font-family: "Outfit", sans-serif; - width: 100%; - outline: none; - border-radius: var(--radius-sm); - color: var(--text-primary); - font-weight: 300; - transition: - border-color var(--transition), - box-shadow var(--transition); -} - -.email-input .email:focus { - border-color: var(--red); - box-shadow: 0 0 0 3px rgba(226, 55, 68, 0.1); -} - -.email-input .email::placeholder { - color: var(--text-muted); -} - -.email-input .btn { - background: var(--red); - color: #fff; - border: none; - min-width: 16rem; - border-radius: var(--radius-sm); - font-size: 1.5rem; - font-weight: 600; - font-family: "Outfit", sans-serif; - padding: 0 2rem; - cursor: pointer; - white-space: nowrap; - transition: - background var(--transition), - transform var(--transition), - box-shadow var(--transition); - box-shadow: 0 4px 14px rgba(226, 55, 68, 0.3); -} - -.email-input .btn:hover { - background: var(--red-dark); - transform: translateY(-2px); - box-shadow: 0 8px 20px rgba(226, 55, 68, 0.35); -} - -.app-section .caption { - font-size: 1.3rem; - color: var(--text-muted); - margin: 0 0 1rem; - font-weight: 300; -} - -.store .buttons { - display: flex; - gap: 10px; - flex-wrap: wrap; -} - -.store .buttons img { - width: 13.5rem; - height: 4rem; - object-fit: contain; - cursor: pointer; - border-radius: 8px; - transition: - transform var(--transition), - opacity var(--transition); - filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.1)); -} - -.store .buttons img:hover { - transform: translateY(-2px); - opacity: 0.9; -} - -/* Dark mode text */ -body.dark-mode .app-section .phone-title { - color: #f0f0f0; -} -body.dark-mode .app-section .app-description { - color: #aaa; -} -body.dark-mode .email-input .email { - background: #252525; - color: #f0f0f0; - border-color: #404040; -} -body.dark-mode .app-section .caption { - color: #777; -} - -/* ===== RESPONSIVE ===== */ -@media (max-width: 800px) { - .app-section .content { - flex-direction: column; - gap: 3rem; - padding: 4rem 2.4rem; - } - .app-section .phone-image { - display: none; - } - .app-section .phone-title { - font-size: 3rem; - } - .app-section .option-selector { - font-size: 1.5rem; - } - - @media (max-width: 800px) { - .content { - margin-top: 7.5rem; - max-width: 42.4rem; - margin: 0px 2.4rem; - } - - .content .phone-image { - display: none; - } - - .app-section { - padding: 0 1rem; - } - - } - -/* Dark Mode Styles */ -body.dark-mode { - background-color: #121212; -} - - -/* Cards / Sections */ -body.dark-mode .card, -body.dark-mode .container, -body.dark-mode .box { - background-color: #f9f5f5; - color: #ffffff; -} - -body.dark-mode .explore-options{ color: grey;} -/* Buttons */ -body.dark-mode button { - background-color: #333; - color: white; -} - - -/* APP SECTION DARK MODE */ -body.dark-mode .app-section { - background-color: #1e1e1e; - color: rgb(152, 151, 151); -} - -/* Text inside app section */ -body.dark-mode .phone-title { - color: white; -} - -body.dark-mode .app-description { - color: #ccc; -} - -/* Input */ -body.dark-mode .email-input .email { - background-color: #2a2a2a; - color: white; - border: 1px solid #555; -} - -/* Button */ -body.dark-mode .email-input .btn { - background-color: #ff4d4d; - color: white; -} - -/* Caption */ -body.dark-mode .caption { - color: #aaa; -} - -/* ================= FINAL LIGHT MODE (WORKING) ================= */ - - - -/* Restore app section soft color */ -body:not(.dark-mode) .app-section { - background-color: rgb(255, 251, 247) !important; -} - -/* Buttons */ -body:not(.dark-mode) button { - background-color: #f0f0f0 !important; - color: black !important; -} - -/* Input */ -body:not(.dark-mode) input { - background-color: white !important; - color: black !important; -} - -#darkModeToggle { - position: relative; - z-index: 1000; - cursor: pointer; -} - -#darkModeToggle { - width: 40px; - height: 40px; - - border-radius: 50%; /* circle */ - border: 2px solid #ff4d4d; /* red outline */ - - display: flex; - align-items: center; - justify-content: center; - - background: transparent; /* no background */ - cursor: pointer; - - font-size: 22px; /* icon size */ - border: 2px solid #ff4d4d; /* icon color */ - - transition: 0.3s ease; -} - diff --git a/public/zomato-clone/brands.css b/public/zomato-clone/brands.css deleted file mode 100644 index b959df2fd..000000000 --- a/public/zomato-clone/brands.css +++ /dev/null @@ -1,199 +0,0 @@ -/* ===== BRANDS SECTION ===== */ -.brands-section { - padding: 7rem 8%; - text-align: center; - background: var(--bg); - transition: background var(--transition); -} - -.brands-header { - margin-bottom: 5rem; -} - -.brands-header h2 { - font-size: 7rem; - font-weight: 800; - color: var(--text-primary); - letter-spacing: -0.04em; - line-height: 1; -} - -.headerpbox { - display: inline-block; - margin-top: 1rem; -} - -.headerpbox p { - font-size: 1.3rem; - color: var(--text-muted); - letter-spacing: 0.28em; - font-weight: 500; - text-transform: uppercase; -} - -/* Brand cards grid */ -.brand-cards { - display: flex; - justify-content: center; - gap: 2rem; - flex-wrap: wrap; -} - -.brand-card { - width: 24rem; - padding: 3.2rem 2.8rem; - border-radius: var(--radius-lg); - transition: - transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), - box-shadow 0.28s ease; - min-height: 36rem; - display: flex; - flex-direction: column; - align-items: center; - text-align: center; - cursor: pointer; - border: 1.5px solid transparent; - position: relative; - overflow: hidden; -} - -.brand-card::before { - content: ""; - position: absolute; - inset: 0; - opacity: 0; - transition: opacity 0.3s ease; - border-radius: inherit; - background: linear-gradient( - 135deg, - rgba(255, 255, 255, 0.6) 0%, - transparent 100% - ); -} - -.brand-card:hover::before { - opacity: 1; -} - -.brand-card:hover { - transform: translateY(-10px) scale(1.02); - box-shadow: 0 24px 60px rgba(0, 0, 0, 0.14); -} - -.brand-card img { - width: 9rem; - height: 9rem; - border-radius: 2rem; - object-fit: contain; - box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1); - transition: transform 0.3s ease; -} - -.brand-card:hover img { - transform: scale(1.06) rotate(2deg); -} - -.brand-card h3 { - margin-top: 1.8rem; - font-size: 2.4rem; - font-weight: 700; - color: var(--text-primary); - letter-spacing: -0.02em; -} - -.brand-card p { - font-size: 1.4rem; - color: var(--text-secondary); - line-height: 1.6; - margin: 1.2rem 0 1.8rem; - font-weight: 300; - flex: 1; -} - -.brand-card a { - text-decoration: none; - color: var(--red); - font-weight: 600; - font-size: 1.4rem; - display: inline-flex; - align-items: center; - gap: 4px; - padding: 0.6rem 1.4rem; - border-radius: 99px; - background: rgba(226, 55, 68, 0.08); - transition: - background var(--transition), - gap var(--transition); -} - -.brand-card a:hover { - background: rgba(226, 55, 68, 0.16); - gap: 8px; -} - -/* Card colors */ -.zomato-card { - background: #fff2f3; - border-color: rgba(226, 55, 68, 0.15); -} -.blinkit-card { - background: #fffde7; - border-color: rgba(255, 214, 0, 0.25); -} -.district-card { - background: #f3ecff; - border-color: rgba(106, 13, 132, 0.12); -} -.hyperpure-card { - background: #f0fff4; - border-color: rgba(39, 174, 96, 0.15); -} - -/* Dark mode */ -body.dark-mode .zomato-card { - background: #2a1a1b; - border-color: rgba(226, 55, 68, 0.2); -} -body.dark-mode .blinkit-card { - background: #252008; - border-color: rgba(255, 214, 0, 0.15); -} -body.dark-mode .district-card { - background: #1e1525; - border-color: rgba(150, 50, 200, 0.2); -} -body.dark-mode .hyperpure-card { - background: #0d2018; - border-color: rgba(39, 174, 96, 0.2); -} -body.dark-mode .brand-card h3 { - color: #f0f0f0; -} -body.dark-mode .brand-card p { - color: #999; -} - -/* ===== RESPONSIVE ===== */ -@media (max-width: 800px) { - .brands-section { - padding: 5rem 5%; - } - .brands-header h2 { - font-size: 5rem; - } - .brand-card { - width: 46%; - min-width: 16rem; - min-height: auto; - padding: 2.4rem 2rem; - } -} - -@media (max-width: 480px) { - .brands-header h2 { - font-size: 3.6rem; - } - .brand-card { - width: 100%; - } -} diff --git a/public/zomato-clone/explore.css b/public/zomato-clone/explore.css deleted file mode 100644 index 9d5b30c3f..000000000 --- a/public/zomato-clone/explore.css +++ /dev/null @@ -1,159 +0,0 @@ -/* ===== EXPLORE OPTIONS ===== */ -.explore-options { - padding: 5rem 0 6rem; - width: 112rem; - max-width: calc(100% - 4rem); - margin: 0 auto; -} - -.explore-options .heading { - margin: 0 0 2.4rem; - color: var(--text-primary); - font-size: 2.8rem; - font-weight: 700; - letter-spacing: -0.02em; -} - -.accordions { - display: flex; - flex-direction: column; - gap: 1rem; -} - -.accordion { - display: flex; - flex-direction: column; - border-radius: var(--radius-md); - padding: 0; - border: 1.5px solid var(--border); - background: var(--bg-white); - cursor: pointer; - overflow: hidden; - transition: - border-color var(--transition), - box-shadow var(--transition); -} - -.accordion:hover { - border-color: rgba(226, 55, 68, 0.3); - box-shadow: var(--shadow-sm); -} - -.accordion-container { - display: flex; - align-items: center; - justify-content: space-between; - font-size: 1.8rem; - font-weight: 500; - color: var(--text-primary); - padding: 1.8rem 2.2rem; - transition: background var(--transition); -} - -.accordion-container:hover { - background: rgba(226, 55, 68, 0.03); -} - -.accordion-container i { - font-size: 1.4rem; - color: var(--text-muted); - transition: - transform 0.25s ease, - color var(--transition); - flex-shrink: 0; -} - -.animate { - transform: rotate(180deg) !important; - color: var(--red) !important; -} - -/* Accordion data panel */ -.accordion-data { - display: none; - padding: 0 2.2rem 2rem; - border-top: 1px solid var(--border); - animation: slideDown 0.22s ease; -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-8px); - } - - .explore-options .heading { - margin: 0px 0px 2rem; - color: rgb(117, 116, 114); - font-size: 3rem; - line-height: 4rem; - font-weight: 700; - to { - opacity: 1; - transform: translateY(0); - } -} - -.show { - display: block; -} - -.accordion-data ul { - display: flex; - flex-wrap: wrap; - list-style: none; - align-items: center; - padding-top: 1.4rem; - gap: 0.2rem 0; -} - -.accordion-data li { - text-decoration: none; - color: var(--text-muted); - font-size: 1.5rem; - line-height: 1.9; - margin-right: 0.8rem; - font-weight: 300; - cursor: pointer; - transition: color var(--transition); -} - -.accordion-data li:hover { - color: var(--red); -} - -.accordion-data .small-circle { - display: inline-block; - width: 3px; - height: 3px; - background: var(--border-dark); - border-radius: 50%; - margin-right: 0.8rem; - margin-bottom: 0.3rem; - vertical-align: middle; -} - -/* Dark mode */ -body.dark-mode .accordion { - background: var(--bg-white); - border-color: var(--border); -} -body.dark-mode .accordion-container { - color: var(--text-primary); -} - -/* ===== RESPONSIVE ===== */ -@media (max-width: 800px) { - .explore-options { - max-width: calc(100% - 4rem); - width: auto; - margin: 0 2rem; - } - .accordion-container { - font-size: 1.6rem; - padding: 1.5rem 1.8rem; - } - .accordion-data li { - font-size: 1.4rem; - } -} diff --git a/public/zomato-clone/footer.css b/public/zomato-clone/footer.css deleted file mode 100644 index e33eefb39..000000000 --- a/public/zomato-clone/footer.css +++ /dev/null @@ -1,301 +0,0 @@ -/* ===== FOOTER ===== */ -footer { - width: 100%; - background: var(--bg-white); - display: flex; - justify-content: center; - margin-top: auto; - flex-wrap: wrap; - border-top: 1px solid var(--border); - transition: background var(--transition); -} - -.footer-data { - max-width: 112rem; - width: 112rem; - padding: 5rem 2rem 2.4rem; - position: relative; -} - -/* Footer top */ -footer .footer-top { - display: flex; - align-items: center; - width: 100%; - justify-content: space-between; - margin-bottom: 4.5rem; - flex-wrap: wrap; - gap: 2rem; -} - -.footer-top img.logo-img { - height: 2.9rem; - width: auto; - object-fit: contain; -} - -.footer-top .row { - gap: 12px; - align-items: center; -} - -/* Country dropdown */ -.footer-top .country-dropdown { - min-width: 10rem; - width: max-content; - max-width: 100%; - cursor: pointer; - position: relative; - padding: 0.7rem 1.2rem; - border: 1.5px solid var(--border-dark); - border-radius: var(--radius-sm); - display: flex; - font-size: 1.45rem; - font-weight: 400; - gap: 0.8rem; - align-items: center; - background: var(--bg-white); - color: var(--text-primary); - transition: - border-color var(--transition), - box-shadow var(--transition); - user-select: none; -} - -.footer-top .country-dropdown:hover { - border-color: var(--red); - box-shadow: 0 4px 16px rgba(226, 55, 68, 0.1); -} - -.footer-top .country-dropdown i.fa-chevron-down { - transition: transform 0.22s ease; - color: var(--text-muted); - font-size: 1.1rem; -} - -.footer-top .country-dropdown:hover i.fa-chevron-down, -.footer-top .country-dropdown:focus-within i.fa-chevron-down { - transform: rotate(180deg); - color: var(--red); -} - -.country-dropdown img.flag { - height: 2rem; - width: auto; - border-radius: 2px; -} - -.country-options { - position: absolute; - bottom: calc(100% + 8px); - left: 0; - min-width: 100%; - background: var(--bg-white); - border-radius: var(--radius-sm); - border: 1.5px solid var(--border); - box-shadow: var(--shadow-lg); - overflow: hidden; - opacity: 0; - visibility: hidden; - transform: translateY(6px); - transition: - opacity 0.2s ease, - transform 0.2s ease, - visibility 0.2s; - z-index: 100; -} - -.footer-top .country-dropdown:hover .country-options, -.footer-top .country-dropdown:focus-within .country-options { - opacity: 1; - visibility: visible; - transform: translateY(0); -} - -.country-option { - padding: 0.9rem 1.2rem; - font-size: 1.4rem; - color: var(--text-secondary); - cursor: pointer; - white-space: nowrap; - transition: - background var(--transition), - color var(--transition); -} -.country-option:not(:last-child) { - border-bottom: 1px solid var(--border); -} -.country-option:hover { - background: var(--red-light); - color: var(--red); -} - -/* Middle links */ -footer .middle { - width: 100%; - margin-bottom: 4rem; -} - -.middle .footer-links { - position: relative; - flex-grow: 0; - flex-shrink: 0; - max-width: 18%; - padding: 0; -} - -.middle.row { - justify-content: space-between; - flex-wrap: wrap; - gap: 2rem 0; -} - -.middle .footer-title { - font-size: 1.2rem; - letter-spacing: 0.18em; - text-transform: uppercase; - font-weight: 700; - color: var(--text-primary); - margin: 0 0 1.4rem; -} - -.middle ul { - list-style: none; -} - -.middle ul li { - font-size: 1.4rem; - line-height: 1.5; - color: var(--text-muted); - margin: 0.55rem 0; - cursor: pointer; - transition: color var(--transition); - font-weight: 300; -} - -.middle ul li:hover { - color: var(--red); -} - -.middle .column { - gap: 24px; -} -.middle .column .footer-links { - max-width: fit-content; -} - -/* Socials */ -.socials ul { - display: flex; - gap: 8px; - margin: 0.8rem 0 1.6rem; - list-style: none; - flex-wrap: wrap; -} - -.footer-links .socials li { - margin: 0; - width: fit-content; -} - -.socials li a { - display: inline-flex; - text-decoration: none; - color: #fff; - width: 3.2rem; - height: 3.2rem; - background: var(--text-primary); - border-radius: 50%; - align-items: center; - justify-content: center; - font-size: 1.4rem; - transition: - transform 0.22s ease, - box-shadow 0.22s ease, - background 0.22s ease; -} - -.socials li a:hover { - transform: translateY(-4px); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); - background: var(--red); -} - -.footer-links .buttons { - display: flex; - gap: 8px; - flex-wrap: wrap; -} -.footer-links .buttons img { - width: 13rem; - height: 3.8rem; - object-fit: contain; - border-radius: 6px; - cursor: pointer; - transition: transform var(--transition); -} -.footer-links .buttons img:hover { - transform: translateY(-2px); -} - -/* Divider + end */ -footer hr { - border: none; - border-top: 1px solid var(--border); - margin-top: 1rem; -} - -footer .end { - font-size: 1.25rem; - color: var(--text-muted); - line-height: 1.7; - margin-top: 1.8rem; - font-weight: 300; -} - -/* Dark mode */ -body.dark-mode footer { - background: #161616; - border-color: #222; -} -body.dark-mode .footer-top .country-dropdown { - background: #1e1e1e; - border-color: #333; -} -body.dark-mode .country-options { - background: #1e1e1e; - border-color: #333; -} -body.dark-mode .socials li a { - background: #2a2a2a; -} - -/* ===== RESPONSIVE ===== */ -@media (max-width: 800px) { - .footer-data { - padding: 4rem 2.4rem 2rem; - width: 100%; - } - .socials { - display: none; - } - - footer .footer-top { - flex-direction: column; - align-items: flex-start; - } - - .middle .footer-links { - max-width: 46%; - margin-bottom: 2.4rem; - } - .middle.row { - gap: 0; - } -} - -@media (max-width: 480px) { - .middle .footer-links { - max-width: 100%; - } -} diff --git a/public/zomato-clone/index.css b/public/zomato-clone/index.css deleted file mode 100644 index 650e7765a..000000000 --- a/public/zomato-clone/index.css +++ /dev/null @@ -1,119 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@200;300;400;500;600;700;800&family=Playfair+Display:wght@400;500;600&display=swap"); - -:root { - --red: #e23744; - --red-dark: #c72d39; - --red-light: #fff0f1; - --red-mid: #ff6b78; - --bg: #fafafa; - --bg-white: #ffffff; - --text-primary: #1c1c1c; - --text-secondary: #4f4f4f; - --text-muted: #969696; - --border: #ebebeb; - --border-dark: #d0d0d0; - --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.07); - --shadow-md: 0 4px 20px rgba(0, 0, 0, 0.1); - --shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.14); - --radius-sm: 8px; - --radius-md: 14px; - --radius-lg: 22px; - --transition: 0.22s cubic-bezier(0.4, 0, 0.2, 1); -} - -body.dark-mode { - --bg: #111111; - --bg-white: #1a1a1a; - --text-primary: #f0f0f0; - --text-secondary: #b0b0b0; - --text-muted: #666; - --border: #2a2a2a; - --border-dark: #333; - --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.3); - --shadow-md: 0 4px 20px rgba(0, 0, 0, 0.4); - --shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.5); -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; - max-width: 100%; -} - -html { - font-family: "Outfit", sans-serif; - scroll-behavior: smooth; - font-size: 10px; -} - -body { - overflow-x: hidden; - background-color: var(--bg); - color: var(--text-primary); - transition: - background-color 0.3s ease, - color 0.3s ease; -} - -a { - text-decoration: none; -} - -.row { - display: flex; -} -.column { - display: flex; - flex-direction: column; -} - -/* Scrollbar */ -::-webkit-scrollbar { - width: 6px; -} -::-webkit-scrollbar-track { - background: transparent; -} -::-webkit-scrollbar-thumb { - background: var(--border-dark); - border-radius: 99px; -} -::-webkit-scrollbar-thumb:hover { - background: var(--red); -} - -/* Location dropdown */ -.location { - position: relative; - cursor: pointer; -} -.location-dropdown { - position: absolute; - top: 50px; - left: 0; - width: 100%; - background: var(--bg-white); - border: 1px solid var(--border); - border-radius: var(--radius-sm); - display: none; - z-index: 1000; - box-shadow: var(--shadow-md); - overflow: hidden; - max-height: 200px; - overflow-y: auto; -} -.dropdown-item { - padding: 10px 14px; - cursor: pointer; - font-size: 1.4rem; - color: var(--text-secondary); - transition: background var(--transition); -} -.dropdown-item:hover { - background: var(--red-light); - color: var(--red); -} -.hidden { - display: none !important; -} diff --git a/public/zomato-clone/index.html b/public/zomato-clone/index.html index 973a3daa4..c30b5eb40 100644 --- a/public/zomato-clone/index.html +++ b/public/zomato-clone/index.html @@ -1,204 +1,543 @@ - - + - - - Document - - - + + + Zomato – Discover the best food & drinks + + + + -
-
-
- zomato - India's #1
- Food Delivery App
- Experience fast & easy online ordering
- on the Zomato app
-
-
-
- -
- Get it onGoogle Play -
-
-
- -
- Download on theApp Store -
-
-
-
Scroll Down  
-
-
-
-
-
-
-
-
Better food for
- more people
-
For over a decade, we’ve enabled our
customers to discover new tastes,
- delivered right to their doorstep
-
-
-
-
- 3,00,000+ - restaurants -
-
-
-
-
- 800+ - cities -
-
-
-
-
- 3 - Billion+ - orders delivered -
-
-
-
+ + +
+ + Free delivery on your first 3 orders  ·  Use code WELCOME50 for 50% off + +
+ + + -
-
-
- + +
+
+
+
+
🍽️ Food delivery & dining
+

Discover the best
food & drinks in
Delhi NCR

+

Order online, explore restaurants, and enjoy
the city's best culinary experiences.

+ -
- POWERING INDIA’S
- CHANGING LIFESTYLES +
+ 🍕 Pizza + 🍔 Burgers + 🍜 Chinese + 🍛 Biryani + 🥟 Momos + 🧁 Desserts
-
-
-
-
-
zomato
-
Get the app now to start to start
ordering your favourite
dishes!
-
Check it out >
+
+
+
+
Orders today
12,450+
-
-
-
blinkit
-
Choose from 30,000+
products & get them
delivered at your
doorstep
-
Check it out >
+
+
+
Avg delivery
~30 mins
-
-
-
district
-
The best of events,
movies , dining, and
everything you love!
-
Check it out >
+
+ Food
-
-
-
hyperpure
-
Offering complete supply
chain solution for your
restaurant
-
Check it out >
+
+
+
Restaurants
5,000+ nearby
-
-
-
-
zomato
-
-
- Eternal - Zomato - Blinkit - District - Hyperpure - Feeding India - Investor Relations -
-
- For Restaurants - Partner With Us - Apps For You - Restaurant Consulting -
-
- For Delivery
Partners
- Partner With Us - Apps For You -
-
Learn More - Privacy - Security - Terms of Service - Help & Support - Report a Fraud - Blog -
-
- -
-
-
-
-
-
-
-
- -
-
-
- -
-
- Google Play -
-
-
-
- -
-
App Store -
-
+
-
+ +
+
+ +
+
Nightlife and Clubs
+
Explore the city's top nightlife outlets
+
+
+
-
+ +
+
+

What's on your mind?

+

Browse by cuisine or category

+
+
+
🍕
Pizza
+
🍔
Burgers
+
🍜
Chinese
+
🍛
Biryani
+
🥗
Healthy
+
🍣
Sushi
+
🧁
Desserts
+
Cafes
+
🍱
South Indian
+
🥩
Kebabs
+
🌮
Rolls
+
🥟
Momos
+
+
+ +
+
+
+

Collections

+

Explore curated lists of top restaurants, cafes, pubs, and bars in Delhi NCR, based on trends

+
+ All collections in Delhi NCR → +
+
+
+ +
Winners of Zomato Restaurant Awards
32 Places ›
+
+
+ +
22 Best Insta-worthy Places
22 Places ›
+
+
+ +
21 Romantic Dining Places
21 Places ›
+
+
+ +
18 Thrilling Live Cricket Screenings
18 Places ›
+
+
+
+ +
+
+

Popular localities in and around Delhi NCR

+

Find the best restaurants in your neighbourhood

+
+
+
Connaught Place
252 Places
+
Sector 29
144 Places
+
Sector 18, Noida
205 Places
+
Rajouri Garden
296 Places
+
Saket
307 Places
+
DLF Cyber City
153 Places
+
Golf Course Road
154 Places
+
DLF Phase 4
221 Places
+
+
+ +
+
+

eternal

+

Powering India's Changing Lifestyles

+
+
+
+ Zomato +

zomato

+

Get the app now to start ordering your favorite dishes!

+ Check it out → +
+
+ Blinkit +

blinkit

+

Choose from 30,000+ products delivered to your doorstep.

+ Check it out → +
+
+ District +

district

+

The best of events, movies, dining, and everything you love!

+ Check it out →
-
+
+ Hyperpure +

hyperpure

+

Offering complete supply chain solution for your restaurant.

+ Check it out → +
+
+
-