diff --git a/addons/dine360_theme_shivasakthi/static/src/scss/shop.scss b/addons/dine360_theme_shivasakthi/static/src/scss/shop.scss index ab58896..13dc873 100644 --- a/addons/dine360_theme_shivasakthi/static/src/scss/shop.scss +++ b/addons/dine360_theme_shivasakthi/static/src/scss/shop.scss @@ -20,9 +20,19 @@ transition: all 0.3s ease; } +html, +body, +#wrapwrap, +#wrap { + overflow-x: hidden !important; + max-width: 100% !important; +} + .oe_website_sale { background-color: #ffffff !important; padding: 80px 30px !important; + overflow-x: hidden !important; + max-width: 100% !important; /* Sidebar Navigation */ #products_grid_before { @@ -467,19 +477,34 @@ /* Mobile Layout Tweaks */ @media (max-width: 767px) { + padding: 30px 12px !important; + overflow-x: hidden !important; + max-width: 100% !important; + + .container, + .container-fluid { + padding-left: 0 !important; + padding-right: 0 !important; + max-width: 100% !important; + } + .o_wsale_products_main_row { display: flex !important; flex-direction: column !important; + margin-left: 0 !important; + margin-right: 0 !important; + width: 100% !important; + max-width: 100% !important; } - /* Products Pager Header (Search, Sort, View) */ + /* Products Pager Header (Search on Top, Categories Left, Sort Right) */ .products_pager { display: flex !important; flex-direction: column !important; align-items: stretch !important; width: 100%; margin-bottom: 20px; - gap: 10px; + gap: 12px; > * { margin-bottom: 0 !important; @@ -493,21 +518,70 @@ width: 100% !important; } - /* Sorting and View Switcher under search */ + /* Action Row under search: Categories on Left, Sort on Right */ .justify-content-end, .d-flex:not(.o_wsale_search) { order: 2 !important; display: flex !important; - justify-content: flex-end !important; + justify-content: space-between !important; + align-items: center !important; width: 100% !important; - gap: 5px; + gap: 10px; - .o_sortby_dropdown { + .mobile-cat-bar-btn { margin-right: auto !important; } - .btn-group.o_wsale_apply_grid { - margin-left: 0 !important; + + .o_sortby_dropdown { + margin-left: auto !important; } + + .btn-group.o_wsale_apply_grid, + .o_wsale_apply_grid { + display: none !important; + } + } + } + + /* Mobile Categories Bar Button (Bottom-left of Search) */ + .mobile-cat-bar-btn { + background: #ffb800 !important; + color: #0e1317 !important; + border: 1px solid #ffb800 !important; + font-weight: 800 !important; + font-size: 0.85rem !important; + padding: 8px 14px !important; + border-radius: 8px !important; + box-shadow: 0 3px 10px rgba(255, 184, 0, 0.25) !important; + transition: all 0.2s ease !important; + display: inline-flex !important; + align-items: center !important; + gap: 6px !important; + letter-spacing: 0.3px; + text-transform: uppercase; + + i { + font-size: 0.95rem; + } + + .cat-active-pill { + background: #0e1317; + color: #ffb800; + font-size: 0.7rem; + padding: 2px 7px; + border-radius: 6px; + font-weight: 700; + max-width: 110px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-transform: capitalize; + } + + &:hover, &:active { + background: #e5a500 !important; + transform: translateY(-1px); + box-shadow: 0 5px 14px rgba(255, 184, 0, 0.35) !important; } } @@ -526,7 +600,167 @@ width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; - margin-bottom: 20px; + margin-bottom: 0 !important; + padding: 0 !important; + z-index: 1 !important; + position: static !important; + } + + /* Backdrop for Mobile Categories Drawer */ + .mobile-category-backdrop { + position: fixed !important; + top: 0 !important; + left: 0 !important; + width: 100vw !important; + height: 100vh !important; + height: 100dvh !important; + background: rgba(14, 19, 23, 0.7) !important; + backdrop-filter: blur(4px) !important; + -webkit-backdrop-filter: blur(4px) !important; + z-index: 9999998 !important; + opacity: 0; + visibility: hidden; + transition: opacity 0.3s ease, visibility 0.3s ease; + pointer-events: none; + + &.show { + opacity: 1 !important; + visibility: visible !important; + pointer-events: auto !important; + } + } + + /* Fixed Full-Height Mobile Drawer */ + .mobile-category-offcanvas { + position: fixed !important; + top: 0 !important; + bottom: 0 !important; + left: 0 !important; + width: 300px !important; + max-width: 85vw !important; + height: 100vh !important; + height: 100dvh !important; + background: #ffffff !important; + z-index: 9999999 !important; + display: flex !important; + flex-direction: column !important; + box-shadow: 10px 0 40px rgba(0, 0, 0, 0.35) !important; + transform: translateX(-100%) !important; + transition: transform 0.32s cubic-bezier(0.25, 1, 0.5, 1), visibility 0.32s ease !important; + visibility: hidden; + overflow: hidden !important; + + &.show { + transform: translateX(0) !important; + visibility: visible !important; + } + + .offcanvas-header { + background: #ffffff; + border-bottom: 1px solid #f0f0f0; + padding: 16px 20px; + flex-shrink: 0; + + .drawer-header-icon { + width: 32px; + height: 32px; + background: #ffb800; + border-radius: 6px; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.95rem; + } + + .offcanvas-title { + font-weight: 800 !important; + font-size: 1.05rem !important; + color: #0e1317 !important; + letter-spacing: 0.5px; + } + + .btn-close-drawer { + width: 34px; + height: 34px; + background: #f4f4f4; + border: 1px solid #e5e5e5; + border-radius: 50%; + cursor: pointer; + transition: all 0.2s; + + &:hover { + background: #ffb800; + border-color: #ffb800; + } + } + } + + .offcanvas-body { + padding: 20px 16px; + overflow-y: auto !important; + -webkit-overflow-scrolling: touch !important; + flex: 1 1 auto; + height: calc(100vh - 65px) !important; + max-height: calc(100dvh - 65px) !important; + + .category-list { + list-style: none; + padding: 0; + margin: 0; + + .category-item { + margin-bottom: 10px; + + a { + display: flex; + align-items: center; + padding: 12px 16px; + border-radius: 10px; + text-decoration: none; + background: #fbfbfb; + border: 1px solid #eeeeee; + color: #222222; + font-weight: 700; + font-size: 0.95rem; + text-transform: uppercase; + letter-spacing: 0.3px; + transition: all 0.2s ease; + + img { + width: 26px; + height: 26px; + object-fit: contain; + margin-right: 14px; + } + + span { + color: #222222; + font-weight: 700; + } + + &:hover { + background: #fff8e7; + border-color: #ffb800; + color: #000000; + transform: translateX(4px); + } + + &.active { + background: #ffb800 !important; + border-color: #ffb800 !important; + color: #000000 !important; + font-weight: 900 !important; + box-shadow: 0 4px 12px rgba(255, 184, 0, 0.35) !important; + + span { + color: #000000 !important; + font-weight: 900 !important; + } + } + } + } + } + } } /* Product Grid (2 products per row) */ @@ -538,20 +772,24 @@ padding: 0 !important; .o_wsale_products_grid_table_wrapper { - overflow: visible !important; + overflow: hidden !important; + width: 100% !important; + max-width: 100% !important; table { display: flex !important; flex-direction: column !important; width: 100% !important; + max-width: 100% !important; tbody { display: flex !important; flex-wrap: wrap !important; flex-direction: row !important; width: 100% !important; - margin-left: -5px; - margin-right: -5px; + max-width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; } tr { @@ -559,6 +797,7 @@ flex-wrap: wrap !important; flex-direction: row !important; width: 100% !important; + max-width: 100% !important; } td { @@ -566,7 +805,8 @@ width: 50% !important; max-width: 50% !important; flex: 0 0 50% !important; - padding: 5px !important; /* Tight padding to fit 2 items */ + padding: 4px !important; /* Tight padding to fit 2 items */ + box-sizing: border-box !important; } } } @@ -813,3 +1053,27 @@ color: #000000 !important; box-shadow: 0 6px 20px rgba(254, 205, 79, 0.4) !important; } + +/* Global Highest Z-Index for Mobile Categories Drawer */ +.mobile-category-offcanvas { + position: fixed !important; + top: 0 !important; + bottom: 0 !important; + left: 0 !important; + width: 300px !important; + max-width: 85vw !important; + height: 100vh !important; + height: 100dvh !important; + background: #ffffff !important; + z-index: 9999999 !important; +} + +.mobile-category-backdrop { + position: fixed !important; + top: 0 !important; + left: 0 !important; + width: 100vw !important; + height: 100vh !important; + height: 100dvh !important; + z-index: 9999998 !important; +} diff --git a/addons/dine360_theme_shivasakthi/static/src/scss/theme.scss b/addons/dine360_theme_shivasakthi/static/src/scss/theme.scss index 5f02c33..6ac5c50 100644 --- a/addons/dine360_theme_shivasakthi/static/src/scss/theme.scss +++ b/addons/dine360_theme_shivasakthi/static/src/scss/theme.scss @@ -11,6 +11,8 @@ p, li, .lead, .hero-desc, .blog-excerpt { /* Header Navigation Styles */ header { border: none !important; + z-index: 1050 !important; + position: relative; /* Main Nav (Black/Charcoal by default, absolute transparent on homepage) */ .o_header_main_nav { diff --git a/addons/dine360_theme_shivasakthi/views/shop_page.xml b/addons/dine360_theme_shivasakthi/views/shop_page.xml index 1f8b3b7..af86532 100644 --- a/addons/dine360_theme_shivasakthi/views/shop_page.xml +++ b/addons/dine360_theme_shivasakthi/views/shop_page.xml @@ -6,22 +6,135 @@