diff --git a/stirling-pdf/src/main/resources/static/css/navbar.css b/stirling-pdf/src/main/resources/static/css/navbar.css index c667f0566..e87079a42 100644 --- a/stirling-pdf/src/main/resources/static/css/navbar.css +++ b/stirling-pdf/src/main/resources/static/css/navbar.css @@ -581,6 +581,8 @@ html[dir="rtl"] .dropdown-menu { margin-left: 0px !important; padding-left: 4px !important; } + + } .go-pro-link { diff --git a/stirling-pdf/src/main/resources/templates/fragments/common.html b/stirling-pdf/src/main/resources/templates/fragments/common.html index af6b7cfac..eef425403 100644 --- a/stirling-pdf/src/main/resources/templates/fragments/common.html +++ b/stirling-pdf/src/main/resources/templates/fragments/common.html @@ -31,29 +31,50 @@ const isHighDPI = systemDPR > 1.4; function scaleNav() { - if (window.innerWidth < 800) { - // Reset/remove scaling on mobile devices + if (window.innerWidth < 600) { + // Scale down navbar on very small screens to reduce height + const currentDPR = window.devicePixelRatio || 1; + const smallScreenScale = Math.max(0.7, 1 / currentDPR * 0.8); // Scale down more on high DPI + const navbarElement = document.querySelector('.navbar'); if (navbarElement) { - navbarElement.style.transform = ''; - navbarElement.style.transformOrigin = ''; - navbarElement.style.width = ''; - navbarElement.style.left = ''; - navbarElement.style.right = ''; - navbarElement.style.marginBottom = ''; + // RTL support - check document direction + const isRTL = document.documentElement.dir === 'rtl' || document.documentElement.getAttribute('dir') === 'rtl'; + + const translateX = isRTL ? '50%' : '-50%'; + navbarElement.style.transform = `translateX(${translateX}) scale(${smallScreenScale})`; + navbarElement.style.transformOrigin = 'top center'; + navbarElement.style.width = `${100 / smallScreenScale}%`; + + if (isRTL) { + navbarElement.style.right = '50%'; + navbarElement.style.left = 'auto'; + } else { + navbarElement.style.left = '50%'; + navbarElement.style.right = 'auto'; + } + + // Adjust bottom margin to prevent gaps + const baseHeight = 60; + const scaledHeight = baseHeight * smallScreenScale; + const marginAdjustment = scaledHeight - baseHeight; + navbarElement.style.marginBottom = `${marginAdjustment}px`; + navbarElement.classList.remove('navbar-expand-lg'); navbarElement.classList.add('navbar-expand-xl'); } - // Reset dropdown scaling + // Keep dropdowns unscaled for better usability const dropdowns = document.querySelectorAll('.dropdown-menu'); dropdowns.forEach(dropdown => { dropdown.style.transform = ''; dropdown.style.transformOrigin = ''; }); - // Reset CSS custom property - document.documentElement.style.setProperty('--navbar-height', ''); + // Set CSS custom property for small screen navbar height + const baseHeight = 60; + const actualScaledHeight = baseHeight * smallScreenScale; + document.documentElement.style.setProperty('--navbar-height', `${actualScaledHeight}px`); return; } const currentDPR = window.devicePixelRatio || 1;