From cb4ae6af526ba1053e123fcf95fb93ecc21f8a5b Mon Sep 17 00:00:00 2001 From: Jalil Arfaoui Date: Thu, 12 Mar 2026 12:06:10 +0100 Subject: [PATCH] =?UTF-8?q?Menu=20mobile=20plein=20=C3=A9cran,=20CSS-only?= =?UTF-8?q?=20(checkbox=20hack),=20suppression=20JS=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/js/main.js | 38 +----------- src/components/header.astro | 114 +++++++++++++++++++++++------------- src/utils/i18n.ts | 1 + 3 files changed, 74 insertions(+), 79 deletions(-) diff --git a/src/assets/js/main.js b/src/assets/js/main.js index 7b0b75c..fb5fdd2 100644 --- a/src/assets/js/main.js +++ b/src/assets/js/main.js @@ -16,7 +16,6 @@ document.addEventListener("DOMContentLoaded", () => { stickyHeaderFuncionality(); applyMenuItemClasses(); evaluateHeaderPosition(); - mobileMenuFunctionality(); }); window.stickyHeaderFuncionality = () => { @@ -33,54 +32,19 @@ window.evaluateHeaderPosition = () => { ); headerElement.classList.add(...stickyClasses); headerElement.classList.remove(...unstickyClasses); - document.getElementById("menu").classList.add("top-[56px]"); - document.getElementById("menu").classList.remove("top-[75px]"); } else { headerElement.firstElementChild.classList.remove(...stickyClassesContainer); headerElement.firstElementChild.classList.add(...unstickyClassesContainer); headerElement.classList.add(...unstickyClasses); headerElement.classList.remove(...stickyClasses); - document.getElementById("menu").classList.remove("top-[56px]"); - document.getElementById("menu").classList.add("top-[75px]"); } }; window.applyMenuItemClasses = () => { - const menuItems = document.querySelectorAll("#menu a"); + const menuItems = document.querySelectorAll("#menu a, #mobileMenu a"); for (let i = 0; i < menuItems.length; i++) { if (menuItems[i].pathname === window.location.pathname) { menuItems[i].classList.add("text-neutral-900", "dark:text-white"); } } }; - -function mobileMenuFunctionality() { - document.getElementById("openMenu").addEventListener("click", () => { - openMobileMenu(); - }); - - document.getElementById("closeMenu").addEventListener("click", () => { - closeMobileMenu(); - }); -} - -window.openMobileMenu = () => { - document.getElementById("openMenu").classList.add("hidden"); - document.getElementById("closeMenu").classList.remove("hidden"); - document.getElementById("menu").classList.remove("hidden"); - document.getElementById("mobileMenuBackground").classList.add("opacity-0"); - document.getElementById("mobileMenuBackground").classList.remove("hidden"); - - setTimeout(() => { - document - .getElementById("mobileMenuBackground") - .classList.remove("opacity-0"); - }, 1); -}; - -window.closeMobileMenu = () => { - document.getElementById("closeMenu").classList.add("hidden"); - document.getElementById("openMenu").classList.remove("hidden"); - document.getElementById("menu").classList.add("hidden"); - document.getElementById("mobileMenuBackground").classList.add("hidden"); -}; diff --git a/src/components/header.astro b/src/components/header.astro index faf8124..b49bfea 100644 --- a/src/components/header.astro +++ b/src/components/header.astro @@ -29,6 +29,9 @@ const menus = { const currentMenus = menus[currentLang] || menus.fr; --- + + +
- + +
+ + + { + currentMenus.map((menu) => ( + + {menu.name} + + )) + } +
+ + + diff --git a/src/utils/i18n.ts b/src/utils/i18n.ts index 3532022..a52574b 100644 --- a/src/utils/i18n.ts +++ b/src/utils/i18n.ts @@ -64,6 +64,7 @@ export const translations = { lightMode: { fr: 'Mode clair', en: 'Light mode', ar: 'الوضع الفاتح' }, }, ui: { + openMenu: { fr: 'Ouvrir le menu', en: 'Open menu', ar: 'فتح القائمة' }, closeMenu: { fr: 'Fermer le menu', en: 'Close menu', ar: 'إغلاق القائمة' }, changeTheme: { fr: 'Changer le thème', en: 'Change theme', ar: 'تغيير المظهر' }, themeAuto: { fr: 'Thème : automatique', en: 'Theme: auto', ar: 'المظهر: تلقائي' },