From 4fc1fa37d39af3e4951a0f294eb86bc58ab98e1b Mon Sep 17 00:00:00 2001 From: Kaushik Date: Sat, 14 Feb 2026 15:25:48 +0000 Subject: [PATCH 1/2] Fix hamburger menu background and light mode readability Signed-off-by: Kaushik --- dejacode/static/css/dejacode_bootstrap.css | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/dejacode/static/css/dejacode_bootstrap.css b/dejacode/static/css/dejacode_bootstrap.css index b242c496..007cfe8d 100644 --- a/dejacode/static/css/dejacode_bootstrap.css +++ b/dejacode/static/css/dejacode_bootstrap.css @@ -1032,3 +1032,49 @@ select.bootstrap-select-filter { position: absolute; z-index: 1; } +/* -- Responsive Navbar -- */ +/* Collapsed navbar (mobile view) */ +@media (max-width: 1199.98px) { + /* Dark mode */ + [data-bs-theme=dark] #navbarCollapse, + :root:not([data-bs-theme=light]) #navbarCollapse { + background-color: #2d3e50 !important; + margin-top: 0.5rem; + padding: 0.5rem 1rem; + border-radius: 0.25rem; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3); + } + /* Light mode */ + [data-bs-theme=light] #navbarCollapse { + background-color: #ffffff !important; + margin-top: 0.5rem; + padding: 0.5rem 1rem; + border-radius: 0.25rem; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + } + [data-bs-theme=light] #navbarCollapse .nav-link { + color: #212529 !important; + } + [data-bs-theme=light] #navbarCollapse .navbar-nav .nav-link:hover { + color: #0056b3 !important; + } + /* Search form width */ + #navbarCollapse #search-form { + width: 100%; + } + #navbarCollapse #search-form .input-group { + width: 100%; + } + /* DejaCode dropdown width */ + .navbar-brand .dropdown-menu { + width: 100%; + max-width: 300px; + } +} +/* Dropdown positioning */ +.navbar-brand .dropdown-menu { + position: absolute; + top: 100%; + left: 0; + margin-top: 0; +} From 28398250261b1d9e7fa811776f934a74d185da89 Mon Sep 17 00:00:00 2001 From: Kaushik Date: Sat, 14 Feb 2026 15:26:00 +0000 Subject: [PATCH 2/2] Add mutual exclusion for navbar dropdown menus Signed-off-by: Kaushik --- dejacode/static/js/navbar_menu_toggle.js | 33 +++++++++++++++++++++++ dje/templates/includes/navbar_header.html | 1 + 2 files changed, 34 insertions(+) create mode 100644 dejacode/static/js/navbar_menu_toggle.js diff --git a/dejacode/static/js/navbar_menu_toggle.js b/dejacode/static/js/navbar_menu_toggle.js new file mode 100644 index 00000000..de1b4300 --- /dev/null +++ b/dejacode/static/js/navbar_menu_toggle.js @@ -0,0 +1,33 @@ +/* +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# DejaCode is a trademark of nexB Inc. +# SPDX-License-Identifier: AGPL-3.0-only +# See https://github.com/aboutcode-org/dejacode for support or download. +# See https://aboutcode.org for more information about AboutCode FOSS projects. +# +*/ + +// Mutual exclusion for DejaCode dropdown and Hamburger menu +document.addEventListener('DOMContentLoaded', function() { + const dejaCodeDropdown = document.querySelector('.navbar-brand .dropdown-toggle'); + const hamburgerCollapse = document.getElementById('navbarCollapse'); + + if (dejaCodeDropdown && hamburgerCollapse) { + // When DejaCode dropdown opens, close hamburger + dejaCodeDropdown.addEventListener('show.bs.dropdown', function() { + const bsCollapse = bootstrap.Collapse.getInstance(hamburgerCollapse); + if (bsCollapse) { + bsCollapse.hide(); + } + }); + + // When hamburger opens, close DejaCode dropdown + hamburgerCollapse.addEventListener('show.bs.collapse', function() { + const bsDropdown = bootstrap.Dropdown.getInstance(dejaCodeDropdown); + if (bsDropdown) { + bsDropdown.hide(); + } + }); + } +}); diff --git a/dje/templates/includes/navbar_header.html b/dje/templates/includes/navbar_header.html index 90ca1343..9e0115f5 100644 --- a/dje/templates/includes/navbar_header.html +++ b/dje/templates/includes/navbar_header.html @@ -143,4 +143,5 @@ {% endblock %} {% endif %} + {% include 'includes/search_help_modal.html' %} \ No newline at end of file