From 9efd6db977f753aa8518cb30a8e32254b5fb7092 Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Fri, 3 Apr 2026 17:00:44 +0530 Subject: [PATCH] implement interactive restaurant menu page with category filtering and animations --- .../antalya-restaurant-menu/MenuContent.tsx | 10 +- .../antalya-restaurant-menu/menu.module.css | 111 +++++++++++++++--- 2 files changed, 98 insertions(+), 23 deletions(-) diff --git a/src/app/antalya-restaurant-menu/MenuContent.tsx b/src/app/antalya-restaurant-menu/MenuContent.tsx index 7171f63..775a730 100644 --- a/src/app/antalya-restaurant-menu/MenuContent.tsx +++ b/src/app/antalya-restaurant-menu/MenuContent.tsx @@ -136,8 +136,8 @@ export default function MenuPage() { whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }} > - All - All Menu + All + All Menu {/* Category Tabs */} @@ -153,11 +153,11 @@ export default function MenuPage() { {section.category} - {section.category} + {section.category} ))} diff --git a/src/app/antalya-restaurant-menu/menu.module.css b/src/app/antalya-restaurant-menu/menu.module.css index 460d8e6..b7e13cd 100644 --- a/src/app/antalya-restaurant-menu/menu.module.css +++ b/src/app/antalya-restaurant-menu/menu.module.css @@ -89,41 +89,61 @@ .tabs { display: flex; justify-content: center; - gap: 1rem; + gap: 1.5rem; margin-bottom: 5rem; flex-wrap: wrap; + padding: 0 1rem; } .tab { background: transparent; - border: 2px solid #441109; + border: none; color: #441109; - padding: 8px 20px 8px 8px; - font-size: 1rem; + padding: 10px; + font-size: 0.95rem; cursor: pointer; - transition: all 0.3s ease; + transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); font-family: var(--font-playfair); text-transform: uppercase; letter-spacing: 1px; - font-weight: 600; - border-radius: 50px; - display: inline-flex; + font-weight: 700; + display: flex; + flex-direction: column; align-items: center; - gap: 10px; + gap: 12px; + width: 100px; } .tabImage { + width: 70px; + height: 70px; border-radius: 50%; object-fit: cover; - border: 2px solid #fff; + border: 3px solid #fff; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); + transition: all 0.4s ease; } -.tab:hover, -.activeTab { - background-color: #441109; - color: #f5e6d3; - transform: translateY(-2px); - border: 2px solid #441109; +.tabText { + text-align: center; + line-height: 1.2; + transition: color 0.3s ease; +} + +.tab:hover .tabImage, +.activeTab .tabImage { + transform: scale(1.1) translateY(-5px); + border-color: #c49c5c; + box-shadow: 0 8px 25px rgba(196, 156, 92, 0.4); +} + +.tab:hover .tabText, +.activeTab .tabText { + color: #c49c5c; +} + +.activeTab .tabImage { + border-width: 4px; } .menuGrid { @@ -341,16 +361,71 @@ @media (max-width: 968px) { .menuGrid { grid-template-columns: 1fr; - gap: 4rem; + gap: 3rem; + padding: 0 1rem; } .menuCard { - margin-left: 50px; + margin-left: 60px; margin-right: 20px; } } +@media (max-width: 768px) { + .tabs { + gap: 1rem; + margin-bottom: 2.5rem; + } + + .tab { + width: 85px; + padding: 5px; + font-size: 0.8rem; + } + + .tabImage { + width: 60px; + height: 60px; + } + + .sectionHeading { + padding: 60px 15px 30px; + } +} + @media (max-width: 480px) { + .tabs { + gap: 0.8rem; + } + + .tab { + width: 75px; + gap: 8px; + font-size: 0.75rem; + } + + .tabImage { + width: 50px; + height: 50px; + border-width: 2px; + } + + .activeTab .tabImage { + border-width: 3px; + } + + .hero { + padding: 120px 0px; + } + + .heroTitle { + font-size: 2.5rem; + } + + .mainHeading { + font-size: 2rem; + } + .menuCard { margin-left: 0; margin-right: 0;